JAVA

JAVA

JAVA 실행 과정

JAVA는 JVM(Java Virtual Machine)을 통해 OS에 종속적이지 않는 특징을 가지고 있다. 즉, 독립적인 형태로 어떤 OS에서도 실행 할 수 있다. 실행되는 과정은 아래와 같다. 개발자는 자바 프로그램을 만들기 위해 소스코드를 작성 한다. 소스코드는 텍스트 파일로 저장되며 확장자는 ".java"이다. 자바 컴파일러(javac)를 사용하여 소스코드(".java")를 문법적 오류가 없는지 확인하고 바이트 코드로 변환한다. 결과 파일은 ".class"의 확장자로 저장 된다. ".class"파일을 클래스 로더(Class Loader)에 의해 JVM내에 로드된다. 실행 엔진(Execution Engine)인 Interpreter와 JIT Compiler에 의해 실행 된다. Interpreter ..

JAVA/Design Pattern

Singleton Pattern

Singleton Pattern은 클래스의 인스턴스를 하나만 생성하도록 보장하고, 해당 인스턴스에 전역적으로 접근할 수 있도록 제공하는 패턴이다. 생성자의 호출이 다른 곳에서 일어난다고 가정할 때, 새로운 인스턴스를 반환하는 것이 아니라 최초에 생성된 인스턴스를 반환한다. 장점 메모리 낭비 방지 데이터 공유 용이 단점 데이터 추적의 어려움 SOLID의 OCP(개방-폐쇄 원칙)에 위배 가능성 높음 Multi-Thread 취약 (동시성 문제) 구현 방법에는 여러가지 방법이 있으나, 그 중 가장 많이 사용하고 공유되어지고 있는 예제이다. public class Singleton { private Singleton() {} private static class LazyHolder { private static ..

JAVA

[String] split

1. split(String regex) 평소 많이 쓰는 방법으로 특정문자를 기준으로 문자열을 나누어 String[]으로 return한다. String str = "a:b:c"; String[] strArr = str.split(":"); [결과값] strArr -> ["a", "b", "c"]; 하지만, 나누고자하는 데이터에 공백이 뒤에 있게 되면 배열에 담기지 않게 된다. String str = "a:b:c::"; String[] strArr = str.split(":"); [결과값] strArr -> ["a", "b", "c"]; 2. split(String regix, int limit) 위와 같은 부분을 해결하기 위해, 두번째 인자값으로 배열의 길이를 정 할 수 있다 String str = "a..

dolzi
'JAVA' 카테고리의 글 목록