본문 바로가기

반응형

공부 정리

(141)
Framework vs Library vs API 라이브러리는 다양한 함수를 제공하는 코드들을 의미한다. 반복적인 작업을 처리하기 위해서 자신만의 코드를 호출할 수 있다. 예를 들어, math 라이브러리는 삼각법이나 로그 함수같은 반복적인 수학적 기능을 제공한다. 프로그래밍 언어들(java, c , python)은 데이터 가공, 그래프 조작, 문자열 파싱 등의 작업을 위한 라이브러리들을 가지고 있다. 라이브러리가 있다면, 모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결해 줄 수 있다. Application Programming Interface의 축약어이다. Interface는 상호작용, 중개라는 사전적 해석처럼 서로 다른 응용프로그램에서 사용할 수 있도록 제어할 수 있도록 만들어진 것이다. 프로그래머가 쉽게 접근할 수 있으며 라이브러리의 "표면"..
자바 시간 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..
실수 소수점 다루기 ( 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..
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..
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..
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,..
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 메서드 } - 추상 ..
JIT Compiler 개요 흔히 개발자들이 작성하는 고수준 언어를 컴퓨터가 알아듣는 이진법의 저수준 기계어로 변환할 때 Compiler와 Interpreter 방식을 사용한다고 알고 있습니다. 그 중에서도, 자바의 JVM에서는 Interpreter 방식 뿐만 아니라 JIT 방식도 있다고 하는데, 정확한 차이를 잘 알지 못했습니다. 따라서 그 방식이 왜 나오게 돼었는지 이번 글에서 확인해보고자 합니다. JIT Compiler JIT은 Just In Time을 의미하는 용어로 JVM이 Byte-code를 해석할 때 사용하는 방식 중 하나로 Interpreter의 단점을 보완하기 위해 만들어진 Compiler입니다. 그렇다면 먼저 기존의 Interpreter 방식을 알아볼까요? Interpreter 방식은 Runtime 시, "명..

반응형