본문 바로가기
명품자바 7장 제네릭,컬렉션 Vector : 가변 배별 컬렉션 클래스이다 벡터 중간에 요소를 삽입시 해당 인덱스에 요소를 삽입하고 기존 인덱스와 그 뒤에 있는 요소들을 모두 뒤로 이동시킨다 v.add(2,100); 형태로 중간에 삽입가능하다 벡터에 get을 사용하면 존재하는 요소를 리턴한다 int i = v.get(1); 컬렉션에 값을 넣을때는 자동 박싱을, 값을 가져올때는 자동 언박싱을 한다! ArrayList : 벡터와 거의 동일하고, 멀티스레드간에는 동기화가 되지 않지만, 단일 스레드일때는 벡터보다 빠르다 add,get,indexof,toarray 등의 메서드가 있다 Iterator : 순차 검색을 이용해서 사용한다 Vector v = new Vector(); Iterator it = v.iterator(); 이렇게 해서 벡터.. 2023. 12. 31.
명품자바 6장 모듈, 패키지 default로 선언하면 같은 패키지 않에서만 작동한다 package test;형태로 어느 패키지에 속하는 지 알 수 있고 import test.클래스명 형태로 가져올 수 있다 toString() 을 클래스 안에서 오버라이딩 한 후 자기만의 문자열을 리턴할 수 있다 String의 값을 비교할 때는 equals로 문자열을 비교하고 같은 레퍼런스 인지 비교할때 ==를 사용한다 wrapper 클래스 int, char 등의 기본 타입을 객체로 만들어서 사용할 수 있게 래퍼 클래스를 사용한다 Wrapper 객체는 Integer i = Integer.valueOf(10); 형태로 valueOf() 메서드를 통해서 생성한다 ! 숫자를 다루는 래퍼 클래스는 Integer i = Integer.valueOf("10");.. 2023. 12. 31.
명품자바 5장 상속 서브 클래스는 슈퍼 클래스의 private 이외의 멤버에 접근 가능 animal, person 클래스가 잇을때 super(x, y) 로 person 클래스의 상위 클래스인 animal(x,y)를 호출할 수 있다 업캐스팅 - 서브 클래스의 객체에 대한 레퍼런스를 슈퍼 클래스 타입으로 변환 업캐스팅은 슈퍼 클래스가 서브 클래스 객체를 가리킨다 Peroson p; Student s = new Student(); p = s; 위에서 만든 p는 s를 가리키지만 Person 클래스의 멤버만 접근 가능하다 업캐스팅시 명시적으로 타입을 변환 하지 않아도 된다, Student 객체는 Person 타입이기 때문이다 다운캐스팅 - 업캐스팅과 반대로 슈퍼 클래스 레퍼런스를 서브 클래스 레퍼런스로 변환 다운캐스팅을 하면 .. 2023. 12. 26.
명품자바 4장 default - 다른 패키지에서는 접근 불가능 static - static 메서드는 static 멤버만 접근 가능하다, 객체 없이도 static 메서드는 존재하기때문에 this를 사용 불가능하다 final 클래스 앞에 사용하면 상속 불가능한 클래스 final 메서드는 오버라이딩 하지 못하고 무조건 상속받아서 사용하는 메서드 final 필드는 한번 초기화되면 값을 변경할 수 없는 상수가 된다 ShareClass 클래스에서 pi라는 상수를 만들면 다른 클래스에서는 ShareClass.pi 로 사용할 수 있다 자바 이론 문제 3번 Book [] book = new Book [10]; 으로 객체 배열을 만들면 바로 Book이 10개 생성되지 않는다, book은 배열에 대한 레퍼런스이고 new로 할당을 해줘야 .. 2023. 12. 23.
가비지 발생시점 public static void main(String[] args) { Main T = new Main(); Scanner in = new Scanner(System.in); String a = "good"; String b = a; a = null; System.out.println(a); System.out.println(b); } 기존에는 b가 a를 가르킨 상태에서 a를 널로 초기화하면 b도 널이 될줄 알앗지만 실행하면 a는 null이 되고 b는 good을 출력한다 책 212 쪽 예제 4-9 참고 2023. 11. 17.