본문 바로가기
반응형

학습146

자바 시간 Millisecond 다루기 *시간 계산하기 1. 시간은 String 형으로 저장되어 있어야 하며, 2. SimpleDateFormat의 parse를 통해 Date형으로 변환한다. 3. Calendar의 setTime을 통해 시간을 정하고 add를 통해 원하는 시간만큼 더하고 뺄 수 있다. ( 시, 분, 초, 밀리초) 4. SimpleDateFormat의 format을 통해 Date를 다시 원하는 모양의 String으로 변환한다. package kakao; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; public class Main { public static void main(String[] args) throws Pa.. 2020. 10. 23.
실수 소수점 다루기 ( Math & String.format) 목차 1. 소수점을 나타내는 JAVA의 자료형은? ( float, double ) 2. 소수점 자르는 함수 1) Math.round() , Math.ceil() , Math.floor() 2) String.format 코딩테스트를 풀던 중, 시간 계산과 관련한 문제들이 많이 등장한다. 소수점은 몇자리까지 필요한지, 나타내야 하는 실수는 어떤 형태인지 자유자재로 다루는 기술이 필요하다. 자바에서 제공하는 소수점과 관련한 함수들을 살펴보고 필요한 것을 골라 써보자. 1. float vs double 실수 형을 나타내는 데이터 타입은 float, double 2가지 종류가 있다. 세세한 기능과 원리의 비교보다는 소수점을 다루는 관점에서 살펴보고자 한다. 크게 구분하는 방법은 소수점 자리의 표현 갯수이다. fl.. 2020. 10. 22.
static vs non-static 개요 static 변수들이 어떻게 생성되고 어디에 저장되는지 알아보겠습니다. 또한 static의 장단점을 알아보겠습니다. 목차 static의 생성 과정과 저장 위치 static 장점 static 단점 non-static 특징 static의 생성 과정과 저장 위치 static은 JVM Runtime Data Area의 Method Area에 위치하며 Class Variable로 분류됩니다. class파일이 JVM에 의해 ClassLoader에 들어오면 Loading 이후에 Linking 과정 중 Prepare에서 static 변수에 메모리를 할당하고 초기값을 가집니다. Linking 이후 Initialization에서, 모든 static 변수들은 자신이 가지고 있는 해당 값이 할당됩니다. 이 공간이 Met.. 2020. 9. 21.
URI vs URL vs URN 개요 URI와 URL의 개념이 다른데 어떤 차이가 있는지 궁금했습니다. 따라서 URI, URL, URN 내용을 정리합니다 목차 URI URL URN 집합모형 URI(Uniform Resource Identifier) URI는 resource들을 구별해주는 "식별자" 역할입니다. (A URI is an identifier of a specific resource. Like a page, or book, or a document.) ... Each URI begins with a scheme name ... ... A URI can be further classified as a locator, a name, or both ... ... The URI itself only provides identifica.. 2020. 9. 6.
TreeMap vs HashMap vs LinkedHashMap 개요 Java의 Collections 중에 Map이 있습니다. 평소에는 코딩 테스트에서 HashMap만 주로 사용하다보니 다른 Map은 접할 기회가 적었는데, 이번 시간에 한번 정리해보겠습니다. 목차 Map의 특징 key 저장순서 Map 종류별 특징 시간복잡도, 구현방식 Map의 특징 기본적으로 Map은 한 쌍으로 저장하는 방식이며 key를 통해서 value를 조회하는 구조입니다. Map은 구현방식에 따라 크게 3가지로 나뉘는데, key를 저장하는 순서와 조회 / 저장 시간복잡도에 따라서 갈립니다. 먼저 key의 저장순서를 먼저 알아보겠습니다. void insertAndPrint(AbstractMapmap){ int[] array = {1,-1,0}; for(int x: array){ map.put(x,.. 2020. 8. 25.
Interface vs Abstract Class 개요 Interface와 Abstract class는 쓰임새와 모양이 비슷합니다. 이번 기회에 2개의 문법적인 차이가 어떤 것이 있는지 알아보도록 하겠습니다 Interface 특징 interface PlayingCard { public static final int SPADE = 4; final int DIAMOND = 3; //항상 앞에 public static final이 붙는다 public abstract String getCarNumber(); String getCardKind(); // 항상 앞에 public abstract가 붙는다 default void newMethod() {} // default 메서드 static void something() {} // static 메서드 } - 추상 .. 2020. 8. 23.
JIT Compiler 개요 흔히 개발자들이 작성하는 고수준 언어를 컴퓨터가 알아듣는 이진법의 저수준 기계어로 변환할 때 Compiler와 Interpreter 방식을 사용한다고 알고 있습니다. 그 중에서도, 자바의 JVM에서는 Interpreter 방식 뿐만 아니라 JIT 방식도 있다고 하는데, 정확한 차이를 잘 알지 못했습니다. 따라서 그 방식이 왜 나오게 돼었는지 이번 글에서 확인해보고자 합니다. JIT Compiler JIT은 Just In Time을 의미하는 용어로 JVM이 Byte-code를 해석할 때 사용하는 방식 중 하나로 Interpreter의 단점을 보완하기 위해 만들어진 Compiler입니다. 그렇다면 먼저 기존의 Interpreter 방식을 알아볼까요? Interpreter 방식은 Runtime 시, "명.. 2020. 8. 16.
Hash 충돌 회피 알고리즘 개요 Hash 충돌에는 다양한 회피 알고리즘이 있습니다. 더 나은 성능을 위해서 계속 성능이 좋은 방식으로 진화하고 있으며, 대표적으로 HashMap에서 사용됩니다. 하지만 항상 최신 방법이 좋은 것은 아니며, 트레이드오프(trde-off)를 잘 따져보고 사용해야 합니다. 목차 Direct-Address Table Hash & HashTable 이란? Hash Function 나눗셈 방법 Collision 1. Chaining 2. Open Addressing - Linear Probing - Quadratic Probing - Double Hashing Open Addressing 성능 Direct-Address Table Direct-Address Table은 배열을 사용해서 실제 key값이 바로 해.. 2020. 7. 24.
Iterator & Enumeration & ListIterator 개요 Enumeration, Iterator 둘 다 java.util pacakage에 있는 인터페이스이고 컬렉션 객체들의 요소들을 조회할 때 사용합니다. Enumeration과 Iterator의 차이점은 Iterator는 remove()를 제공한다는 것입니다. Enumeration은 legacy이며 Iterator를 쓰는 것이 더 좋습니다. Iterator와 Enumeration 메소드 Iterator와 Enumeration의 메서드를 표로 알아보겠습니다. 메서드명으로 직관적으로 해석이 되므로 따로 설명을 넣지 않았습니다. Iterator Enumeration hasNext() hasMoreElements() next() nextElement() remove() - 과연 어떤 인터페이스를 사용하는 것이.. 2020. 7. 23.
반응형