Language/Java 10

[Java] Singleton pattern

1. Runtime MemoryMethodstatic상수 ⇒ Unique한 값프로그램 ㅌ코드Class → 실행 시, Stack → new 연산자를 통해 Instance가 됨.StackFunctionHeapInstance2. Singleton Pattern클래스 하나 당 하나의 Instance를 만든다.재사용단점사용하지 않으면 GC가 처리할 수 있다.3. staticInstance 생성없이 필드와 메소드를 생성하고자 할 때 활용필드와 메소드를 객체마다 다르게 가져야 한다면 인스턴스로 생성공통 변수, 인스턴스 필드를 포함하지 않는 메소드를 선언하고자 할 때 사용객체없이 바로 사용 가능public class PlusClass{ static int field1 = 15; static int plusMetho..

Language/Java 2024.05.29

[Java] ⭐JVM내부구조 & 메모리 영역

1. JVM의 동작 방식자바 애플리케이션을 클래스 로더를 통해 읽어 자바 API와 함께 실행1) 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당 받는다. 2) 자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 Byte Code(.class)로 컴파일 한다. 3) Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크 하여Runtime Data Area(실질적인 메모리를 할당 받아 관리하는 영역)에 올린다. 4) Runtime Data Area에 로딩 된 Byte Code는 Execution Engine을 통해 해석된다. 5) 이 과정에서Execution Engine에 의해Garbage Collector의 작동과Thread 동기화가 이루어진다. 2. JVM 구조C..

Language/Java 2024.05.29

[Java] ⭐ JDK & JRE & JVM

※ Java 프로그램을 개발 → JDK / Java 프로그램 실행 → JRE1. JDK (Java Development Kit)자바로 개발하는데 사용되는 SDKSDK (Software Development Kit)하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴ex) 안드로이드 스튜디오자바 개발 시 필요한 라이브러리, javac, javadoc 등 개발도구들이 포함버전 표기Java SE (Java Standard Edition)가장 기본적인 클래스 패키지PC에 설치해 사용할 수 있는 모든 프로그램 개발PC용 어플리케이션, 애플릿개발, 응용 프로그램 개발, 웹개발, 안드로이드 개발Java EE (Java Enterprise Edition)대규모 기업용 데이션, SE 확장판기업환경을 위한..

Language/Java 2024.05.28

[Java] OOP (Object Oriented Programming)

1. 객체지향프로그래밍 (Object Oriented Programming)객체Instance생성자new 연산자 ⇒ 객체 초기화 담당void 생략동일 이름의 생성자 가능 ⇒ Parameter가 다르다.class Car { // 속성(변수) 정의 String company; String color; // 기본 생성자(생략 가능) public Car() { } // 생성자 정의 public Car(String company, String color) { this.company = company; this.color = color; }}public static void main(String[] args) { Car car1 = new Car(); // 기본 생성자를 이용해서 생성..

Language/Java 2024.05.28

[Java] 기본함수

1. printSystem.out.println("Hello world");System.out.println("Hello world");System.out.println("=============================");System.out.print("world ");System.out.print("world ");// %s: 문자열 // %d: 정수 // %f: 실수 // \n: 줄바꿈 System.out.printf("저는 %s입니다. 나이는 %d살이고요, 키는 %fcm입니다.\n", "홍길동", 20, 180.5f);String str2 = String.format("저는 %s입니다. 나이는 %d살이고요, 키는 %fcm입니다.\n", "신사임당", 20, 180.5f); System.out..

Language/Java 2024.05.28

[Java] 조건문 & 반복문

1. 조건문1) if elseint i = 10; if (i 3항 연산자조건 ? 참 : 거짓boolean isMarried = true; String str = isMarried ? "Yes" : "No";System.out.println(str);// 3항 다항식을 if else문으로 변경 if (isMarried) { str = "Yes";} else { str = "No";}System.out.println(str);조건and : &&or : ||not : !boolean isMarried = true; boolean isOld = false;String str; if (isMarried && isOld) { // 결혼을 했으면서, 나이가 많음 str = "1";} else if (i..

Language/Java 2024.05.28

[Java] 문법

1. 변수 : 변하는 수2. 자료형 & 형변환// 정수형 (long, int, short, byte)long l = 30L;int x = 30;short s = 30; // 잘 사용하지 않음 byte b = 30; // 잘 사용하지 않음 int i = (int) 30L; // 형변환을 해야 함!!long ll = 30; // long이 int보다 큰 범위를 표현할 수 있으므로 형변환을 할 필요 없음 (자동 형변환)// 실수형 (double > float)double dd = 30.0;float ff = 30.0f; // f를 빼면 double로 인식!!dd = ff; // 자동 형변환 ff = (float) dd; // 형변환 필요!! // 불리언형 boolean bool = true; bool = f..

Language/Java 2024.05.28

[Java] 기초

1. JDK / JRE / JVMJDK (Java Development Kit)자바 개발java, javac, jar…JRE (Java Runtime Environment)자바 어플리케이션 실행 라이브러리 모듈JVM (Java Virtual Machine)자바 가상머신모든 OS에서 실행될 수 있게 한다.2. Java 실행과정java 파일을 class 파일로 컴파일을 하고, 그 이후에 JVM이 컴퓨터 운영체제가 이해할 수 있는 바이너리 코드(0100100....)로 변환하는 과정을 통해서 실행하게 된다.3. Garbage Collection메모리 관리자동적으로 관리메모리 누수 방지메모리 해제 시점을 알 수 없다.힙영역에 필요없는 것을 제거

Language/Java 2024.05.28