java 11

[4과목 프로그래밍 언어 활용] 프로그래밍 언어 활용 - 142. 절차적 프로그래밍 언어 ~ 143. 객체지향 프로그래밍 언어

142. 절차적 프로그래밍 언어1. 절차적 프로그래밍 언어의 개요일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해나가는 언어프로그램이 실행되는 절차를 중요시함데이터를 중심으로 프로시저를 구현하며, 프로그램 전체가 유기적으로 연결되어 있음자연어에 가까운 단어와 문장으로 구성됨과학 계산이나 하드웨어 제어에 주로 사용됨2. ⭐ 절차적 프로그래밍 언어의 장 · 단점장점컴퓨터의 처리 구조와 유사하여 실행속도가 빠름같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용 가능모듈 구성이 용이하며, 구조적인 프로그래밍이 가능단점프로그램을 분석 어려움유지보수나 코드 수정이 어려움3. ⭐ 절차적 프로그래밍 언어 종류C1972년 미국 벨 연구소의 데니스 리치에 의해 개발됨시스템 소프트웨어를 개발하기 편리하여 시스템 프..

[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