
[Java]Generics(제네릭),Collection Framework,Thread(2)_10/06
2022. 10. 6. 17:56
Java
DeadLock(데드락) DeadLock(데드락)이란? 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 의미한다. 무한히 다음 자원을 기다리게 되는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생한다. ex) 프로세스1,2가 있고 자원3, 4를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원3을 얻음 / 프로세스2가 자원4를 얻음 t2 : 프로세스1은 자원4를 기다림 / 프로세스2는 자원3을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 데드락을 방지하기 위해서는 => 싱크로나이즈는 블록을 적게 , 열쇠는 개별로 만들어 주는게 좋다. Enum 타입 enumerated t..

[Java]debug, Thread,예외처리(2),간단로그인_10/05
2022. 10. 5. 17:06
Java
복습 P434 페이지 복습해보기! debug 모드 디버그 모드 사용해서 ExceptionTest5 흐름 파악하기 main 매서드의 catch문에서 Exception에서 UpCasting 되어서여기서 잡힌거다. f5 : stepInto f6 : stepOver f7 : step Return f8 : resume 산술연산 예외 발생 잡아주는 catch 블록을 추가해보자 예외처리 throw : 원하는 시점에 예외처리를 강제로 발생시킬 때 또다시 근본적인 물음을 가져보자... 왜 예외를 강제로 발생시킬까? =>특정 상황을 예방차원에서 예외를 강제로 발생시킨다. 메서드를 호출하는 쪽에서 예외처리를 할 수 있게 미룬다. Throw로 예외를 던지면 던진 시점에서 예외가 발생하고 catch문으로 넘어가게 된다. 사용자..

[Java]이너클래스, 예외처리(1)_10/04
2022. 10. 4. 17:45
Java
복습 자바는 타입 체크에 굉장히 민감한 언어이다. instanceof : 다운캐스팅 할때 인스턴스 확인용으로 많이 사용 object클래스의 equals와 String 타입의 equals는 다르게 동작한다. 추상 클래스라고 무조건 추상 메서드를 가진건 아니지만 추상 메서드는 무조건 추상 클래스 안에 있어야 한다. 이너클래스 인스턴스 멤버 클래스 : 클래스 안의 클래스(이너 클래스)를 의미한다. 정적 멤버 클래스 : 클래스 안의 스태틱 클래스를 의미한다. 지역이너클래스 : 클래스 안의 메서드 안의 클래스를 의미한다. 아우터 클래스와 이너클래스는 컴파일 파일이 따로 만들어 진다. 메서드 안의 클래스(=지역 클래스)는 숫자를 붙여서 구별하면서 컴파일 파일이 생긴다. 인스턴스의 이너클래스에서는 아우터 클래스의 모..

[Java]상속/casting/다형성
2022. 9. 29. 15:21
Java
상속/다형성 왜 상속과 다형성이라는 개념을 쓸까? 근본적인 이유부터 생각해 보자. 예를 들어 생각해 보자. 과일 밑에 포도,사과,딸기 가 있다고 해보자 과일에 해당되는 것의 정보를 바꾸고 싶을때 상속을 시켜 놓지 않았다면 일일히 다 바꿔야 한다. 하지만 과일이라는 부모클래스로부터 자식클래스로 상속을 시켜 놓으면 부모 클래스에서만 수정을 하면 공통된 상속시킨 부분을 한번에 수정이 가능하다. 코드를 통해 확인해 보자 Shape에서 상속받는 클래스 Circle Rectangle Triangle이 있다. printArea(new Circle()); printArea(new Triangle()); printArea(new Rectangle()); private static void printArea(Circle ..

[Java]클래스/ 객체/메서드
2022. 9. 28. 20:55
Java
클래스와 객체 OOP Object Oriented Programming -Class 기반 oop ex) Java -Prototype 기반 oop ex)javaScript Class -> 설계도 Object --> 제품 Instance --> 메모리 상에 존재하는 실체 자바 객체 지향 프로그래밍의 특징 1. Encapsulation, Information Hiding 2. Inheritance 3. Polymorphysm Point2D Point3D 예제로 해보기 스텍메모리에 저장되는 변수는 떄가 되면 자바가상머신이 자동으로 삭제하지만 힙영역에 저장되는 필드는 객체가 사라지지 않는 한 절대 삭제되지 않는다. 클래스 파일 안에 class 가 여러개 있으면 bin 폴더로 컴파일 될때 알아서 분리된다. 메서드 ..

[Java]생성자/프로젝트 import/Amateras
2022. 9. 28. 18:04
Java
교재에서는 Object와 Instance는 같은 의미로 많이 쓰인다. Polymorphysm : 다형성 os에서 자바로 전달 될때 무조건 문자열로 전달된다. constructer static memory 구조 gc 클래스의 형변환(upcasting,downcasting) **중요 access modifier 생성자(constructer) 생성자란? 인스턴스의 초기 모양을 결정해 주는 것이다. (=처음 메모리 상에 올라갈때 초기 모양을 결정) 생성자는 웬만하면 pulbic 으로 시작한다.(다른 경우는 나중에 알려주신다니 그냥 알고 있자.) public Point2D(){ } 매개변수가 없고 중괄호{} 안에 아무 내용이 없는 껍데기 생성자는 default 생성자라고 부른다. PointTest.java 초기값..

[Java]String 클래스 / 문자열 형변환
2022. 9. 27. 17:59
Java
복습 2차원 배열은 => 행렬 3차원 배열은 => 표,행,렬 이라고 생각하면 된다. 3차원 배열 예제 비정방 행렬이 있을 수도 있다. 크기 선언 할때 열의 개수만 비워둘 수 있다. int[][]a = new int[3][] 한글은 자바에서 2바이트 (그래서 사진에 보면 5글자이므로 10바이트= 인덱스가 9까지 해서 총10칸이 있는거다.) utf - 8 에서는 3바이트 이다. /* *실제 메모리 상의 순서 * 9번의 좌변에서 객체가 생성된다(힙영역에) 그리고 우변에 있는 * * * 2에서 안녕하세요를 만든후 3에서 안녕하세요를 만드려고 할때 * 기존에 안녕하세요 가 있다면 * 3이 기존의 주소인 2를 참조하게 된다.(실질적으로 안녕하세요는 하나만 있는 것이다.) * * */ 기존 hello에 world를 ..

[Java]제어문/달력/메모리 구조
2022. 9. 26. 17:58
Java
복습 자바의 아버지 : 제임스 고슬링 자바의 특징 자바는 플랫폼 독립성을 위해 만들어진 언어이다. 장점 : 바이트 코드로 번역해서 JVM에 읽히기 때문에 플랫폼의 독립성이 있다. 단점 : 바이트 코드를 기계어로 재번역해야 하기 때문에 살짝 느리다. 필드폭이 작은쪽에서 넓은쪽으로 갈때는 자동 형변환 필드폭이 넓은쪽에서 작은쪽으로 갈때는 명시적 형변환 for 제어문 for(i=0; i k에는 2 4 6 이 순서대로 들어간다. } debug 모드 작업 관리자 - 세부 정보 - javaw 갯수로 지금 실행되고 있는 콘솔들을 확인할 수 있다. 디버그 모드 f5 : f6 : f7 : 시스템을 다 확인하고 빠져나오는경우 f8 : 그다음 브레이크 포인트로 이동 달력그리기 Calendar 은 달력그릴때 포인트 1. 1일..