@ 인터페이스는 외부에서 변수가 접근 가능하기 위해 변수를
  
  final, static, public으로 하는게 보통

@ static void foo(int...x){ 비정형인자. 매개변수의 갯수를 정하지 않겠다는 의미
 x는 배열의 형태로 사용됨

@ 형변환은 메모리에 올라간 놈을 대상으로 가능하다.

@ Arrays.sort(정렬할 내용);  -- 정렬대상이 되려면 반드시  공통대상이 되어야 한다.

@ 임포트시에 static 으로 주면 임포트한곳의 static 영역을 소속관계 없이 사용가능

@ enum 열거형, 클래스들을 보유한 클래스??

@ 내부클래스는 위치 상관없이 생성할 수 있고, 같은 명의 클래스가 존재할경우
  
   그 클래스 호출시에 가장 까가운 놈을 찾아간다.

@ 각 클래스는 하나의 패키지만 가진다. 중복 클래스 X

@ 인터페이스를 상속할때도 역시 extends로...(implements 아님)

@ retrieve : 회수하다

@ 오버라이딩시 자식은 부모의 메서드보다 보안을 강화할 수 없다.

@ 어떤 인터페이스와 추상클래스를 동시에 상속받고 위의 둘이

   같은 명의 메서드를 가질경우 하나만 정의해준다.

@ 추상클래스가 추상클래스를 상속하고 상속받는 것 가능!

@ $ 와 _ 는 변수명 앞에 올 수 있다!!

@ 비정형인자를 포함한 메서드가 오버로딩되어 있고

   이 메서드를 정해진 인자를 가지고 호출하면 그 우선순위는

   일치하는 매개변수를 가진 메서드가 호출된다.

@ 자식 클래스가 생성될 때, 부모 클래스가 먼저 생성된다.

@ 생성자는 일반 메서드처럼 호출할 수 없고 this라는 예약어로 사용

@ Iterator는 개선된 포문에서의 대상이 될 수 없다!!!!

@ 예외처리 요건 : 상속관계에 있어서 자식이 부모의 메서드를 오버라이드 하고 있을때
  자식의 메서드에 throws가 던져지면, 부모의 메서드에 반드시
  throws나 try/catch같은 예외처리가 있어야 한다.

@ 위 원칙의 예외 사항으로 RuntimeException인 경우 상위클래스에서 명시적으로

  예외처리를 해주지 않아도 자바가상머신에서 알아서 throws 해준다.

@ 다형성으로 접근한 경우 예외처리 요건을 충족시켜야 한다.

@ 자식만으로 접근한 경우에는 그렇지 않다

@ 캐치문은 자세한 예외에서 큰 예외 상황 순으로 캐치문을 배치해야 한다.

@ throws와 catch문이 같이 있으면 catch가 에러를 잡아낸다.

@ ensue : ~를 찾다. 연이어 일어나다.

@ StringBuffer 는 Thread safe 하다 -> 동기화가 됨 -> 대량작업에서 부하가 걸림
     
   StringBuilder는 Thread safe하지 않다 -> 동기화 x -> 성능 up

@ 동기화 : 일관성을 유지하기 위한 방법

@ 인자값이 해당 메서드에 일치되는 매개변수가 없으면 상위 기본형을 찾아간다.
 
   일치되는 기본형이 없고, 상위 기본형도 없으면 대응되는 Wraper 클래스를 찾아간다.(오토박싱)

 ex) short형이 없으면 int형으로,  long형이 없으면 Long으로

  byte->short->int->long->float->double

@ 직렬화 : 메모리에 올라가 있는 인스턴스를 파일전송하듯이 다른 pc로 전송 가능하게 하는 기술

    대상 인스턴스는 동결화시켜서 1byte씩 쪼개서 전송하거나 파일로 만들 수  있다.

@ serialize한것을 deserialize할때 상위 객체가 있으면 그 상위 객체의 생성자가 한번 더 호출된다.(101번)

@ 쓰레드에서 start()메서드는 두번 사용이 불가능 하다.

@ 쓰레드의 우선순위는 장담할 수 없다. 스케쥴러에 의해서 조절됨

@ t.join(); 의 의미는 t가 run()의 수행을 마칠때까지 메인 쓰레드가 대기 상태에 빠진다.

@ Synchronized 동기화 : 객체나 메서드에 적용된다(128번)

@ 제어하는 변수가 static이면 메서드도 static으로 놓는게 좋다(129번)

@ 인터페이스는 extends 여러개가 가능하다 interface C extends A,B{}

@ static 메서드에서는 super나 this같은 예약어를 사용할 수 없다. (멤버가 아니기 때문에)

@ Queue : 터널같은 형태, FIFO(선입선출)

@ Stack : 프링글스 통, LIFO(후입선출)

@ HashSet : 순서가 없는 set 구조이고 중복을 허락하지 않는다. 스트링의 경우 명시적으로 생성

     하여 삽입해도 내용이 같은 경우 중복이 되지 않는다.

@ LinkedList는 퀵 랜덤 접근이 지원되지 않는다.

@ HashCode란 객체의 동일성을 효율적으로 식별하기 위한 숫자값이다.
 
   HashCode method는 객체의 내용을 숫자로 반환하는 Object class의 메서드 이다.

@ HashSet은 중복되지 않은 value만 저장되고, HashMap은 중복되지 않은 name과 value가 저장됨

@ Generic type을 설정한 컬렉션에 설정하지 않은 타입이 들어오면  Generic 타입의 속성이

   사라진다.

@ Generic type을 설정한 경우 다형성이 적용이 되지 않는다. 형이 결정되지 않은 <?>같은 형태는

   가능

 

Posted by Taoist
,