본문 바로가기

JAVA

(8)
Thread 생성 방법 Thread 생성 방법은? 1. Thread 클래스 상속 public class MyThread extends Thread { @Override public void run() { // 스레드가 수행할 작업을 여기에 정의 System.out.println("Thread running."); } public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); // 스레드 시작 }}Thread class 상속 시  장점: - run을 재정의만 하면 된다. -> 간단 - 쓰레드 기능 다 쓸 수 있다. 단점: - 상속 제한: 단일 상속..
thread join 아아 테스트 하는데왜 조인하는 것인가가 명확히 기억이 안난다   스레드 join은 왜 필요한가?  main thread의 코드 실행은 sub thread를 기다리지 않는다. [ main] [RUNNABLE] task1.result>> 0 [ main] [RUNNABLE] task2.result>> 0 이미 계산 되었는데 0으로 출력된다.이게 문제다 즉 2초가 지나야 thread-1, thread-2에 있는 코드가 수행되면서[ thread-1] [RUNNABLE] result>> 1275 [ thread-2] [RUNNABLE] result>> 3775heap 메모리에 있는 task1, task2의 result의 값을 대입한다. thread-1, thread-2의 계산이 끝날 때까지 main은 기다려야 한..
Map 함수 compute(K key, BiFunction remappingFunction)--> 키 존재, 키 안존재 둘 다 --> 수정, 삭제, 추가 키가 존재하는 경우:리매핑 함수가 null을 반환하면: 그 키는 맵에서 삭제리매핑 함수가 다른 값을 반환하면: 그 값으로 기존의 값을 업데이트합니다. 키가 존재하지 않는 경우:리매핑 함수가 null을 반환하면: 그 키는 맵에 추가되지 않습니다. 리매핑 함수가 다른 값을 반환하면: 그 값으로 맵에 새로 추가됩니다. import java.util.HashMap;import java.util.Map;public class ComputeExample { public static void main(String[] args) { Map map = new Ha..
14장 예외 예외 종류1. Error자바 프로그램 바깥에서 발생한 예외서버의 디스크 고장메인보드 맛이 감Error: Processor에 영향을 준다Exception: thread에만 영향을 준다 2. Exception  3. Runtime Exception == Unchecked Exception예외가 미리 발생할 것을 미리 감지 못한다.코드를 실행 시키고 값을 넣어봐야 에러가 발생할 수 도 있고, 아닐 수 도 있다. 4. Compile Exception == Checked Exception예외가 미리 발생할 것을 알 수 있다.코드 작성 시 compile 에러가 발생해서 코드를 수정해야줘야 한다.  throws 선언method 선언부에 throws 을 선언하면, 이 method를 호출하는 코드에서는반드시 try-ca..
4장 변수 지역 변수, local variables중괄호 내에 선언된  매개 변수, parametersmethod에게 전달 해주는method가 호출될 때 생명 시작, method가 끝나면 소멸 인스턴스 변수, instance variablesmethod 바깥에, class 내부에 선언된 변수,  static 안 붙어 있다.객체가 생성될 때 생명 시작, 그 객체를 참조하는 다른 객체가 없으면 소멸.  클래스 변수, class variablesmethod 바깥에, class 내부에 선언된 변수, static 붙어 있다.클래스가 처음 호출 될때 생명 시작, 자바 프로그램이 끝날 때 소멸.   상수, constant value이름이 대문자값이 변하지 않는다.
3장 객체지향 자바는 객체지향 언어Object Oriented Language 코드는 class  실제 사물을 나타내기 위한 것:객체 또는 인스턴스 기본 생성자는 javac Car.java 하면.. 컴파일 할때 Car.class 안에 자동으로 코드가 생성된다.  클래스와 객체의 차이점?클래스:객체를 생성하기 위한 청사진.클래스는 데이터의 구조, 기능을 정의.추상적 개념. 메모리에 존재하지 않는다.구성 요소: field 변수, method 함수, 생성자 객체:클래스로부터 생성된 실체 instance.객체는 클래스에서 정의된 구조, 기능을 실제로 구현.작업을 수행.메모리 상에 존재하며, 구체적 값을 가짐.구성 요소: 클래스 멤버 변수, 클래스 method 사용 가능.  객체를 생성하기 위해 사용되는 예약어?new   객체..
2장 컴파일 소스 -> 컴파일러 -> 바이트 코드 -> 디스크 -> 바이트 코드 -> jvm -> 기계어 -> 운영체제 내가 작성한 코드가 컴퓨터가 이해할 수 있게 변경 == 컴파일작성한코드.java ------컴파일  javac. -------> 작성한코드.class (바이너리 파일)  main 메소드의 메소드 이름 앞에는 어떤 예약어들이 들어가나요?public static void main접근제어자, 정적선언, 리턴타입, 메서드이름 static으로 선언되지 않으면, 클래스의 인스턴스를 생성해야만 메소드를 호출할 수 있습니다.그러나 프로그램이 시작될 때는 아직 어떤 인스턴스도 존재하지 않기 때문에인스턴스를 생성하지 않고도 호출할 수 있어야 합니다. 요약독립적 호출: static으로 선언된 메소드는 객체 생성 없이 ..
1장 프로그래밍이란 무엇인가? Programming?컴퓨터에게 할 일을 가르치는 것. 메소드?접근제어자 리턴타입 이름 (매개변수) {}  자바의 작은 단위 == 클래스접근제어자 class 이름 {} 클래스는 상태를 가져야 한다클래스는 상태, 행동 있어야 한다.상태: 변수(variable)행동: 메소드(method)  프로그래밍 가장 기본 =    세미콜론: 한줄 의미    모든 프로그래밍 언어에는 예약어 예약어는 public, class, int, return 이다예약되어 있으니까 쓰지 못한다.예약어는 클래스, 메소드, 변수 이름으로 사용할 수 없다.    클래스가 뭔가?클래스는 자바의 작은 단위이다. 클래스 안에는 상태와 행동이 들어있다.상태는 변수, 행동은 메서드이다. 메소드가 무엇인가?접근제어자 리턴타입 이름 매개변수로 코드가 ..