본문 바로가기

자바14

[JAVA] 자바 정리노트(7) [JAVA] 자바 정리노트(7)-람다식, 스트림- 1. 람다식은 메소드를 하나의 식으로 표현한 것으로, 메소드를 변수처럼 다루는 것이 가능해졌다. 2. 람다식에 선언된 매개변수 타입은 생략이 가능하다. 또한 매개변수가 하나인 경우 괄호를 생략할 수 있다. 반환타입도 생략이 가능하다. 다만 반환타입 return을 생략하지 않을 경우 람다식의 {}를 생략할 수 없다.(int a, int b) -> a>b ? a b (a, b) -> a>b ? a:b // 매개변수의 타입이 생략된 경우 a - > a + a // 매개변수가 하나인 경우 (a , b) -> {return a>:b ? a:b} // 반환타입이 있을 경우 {}괄호 생략 불가 3. 람다식을 다루기 위해 만들어진 함수형 인터페이스에는 오직 하나의 추상.. 2019. 1. 27.
[JAVA] 자바 정리노트(6) [JAVA] 자바 정리노트(6)-쓰레드- 1. 쓰레드를 구현하는 방법으로는 Thread 클래스를 상속하거나, Runnable인터페이스를 구현하는 것이다. 전자의 경우 다른 클래스를 상속받을 수 없기에 후자의 경우가 보다 일반적이다. 2. 한 번 실행을 종료한 쓰레드는 다시 실행할 수 없다. 3. 멀티 쓰레드가 무조건 싱글 쓰레드로 작업한 시간보다 덜 걸리는 것은 아니다. 이유인즉 쓰레드간 작업 전환시간이 소요되기 때문이다. 이 소요시간을 'context switching'이라 한다. 4. 쓰레드는 OS의 프로세스 스케줄러의 영향을 받는다. OS 종속적이다. 5. 쓰레드는 우선순위를 지정할 수 있으며, 우선순위의 범위는 1~10까지로, 숫자가 높을수록 우선순위가 높다. 또한 쓰레드를 생성한 쓰레드로부터 우.. 2019. 1. 27.
[JAVA] 자바 정리노트(5) [JAVA] 자바 정리노트(5)-지네릭, enum- 1. 지네릭에서 static멤버에 대해서 타입 변수를 사용할 수 없다. 타입 변수는 인스턴스 변수로 간주되기 때문이다. 2. 지네릭 배열 타입의 참조변수를 선언하는 것은 가능하지만 지네릭 타입의 배열을 생성하는 것은 허용하지 않는다. 굳이 배열을 생성한다면 동적으로 객체를 생성하는 메소드를 이용하거나, Object 배열을 복사하여 형변환 하는 방법등이 사용된다. 3. 참조변수와 생성자에 대입된 타입이 일치해야 한다. 상속관계이어도 허용하지 않는다.또한 대입된 타입이 같기 때문에 아래와 같이 대입타입을 생략할 수 있다.Room conferenceRoom = new Room(); // error Room conferenceRoom = new Room(); .. 2019. 1. 26.
[JAVA] 자바 정리노트(4) [JAVA] 자바 정리노트(4)- 시간, 날짜 관련 클래스와 컬렉션 프레임웤 - 1. Calendar클래스는 추상클래스이므로 인스턴스를 생성할 수 없다. 그래서 getInstance() 메소드를 이용하여 인스턴스를 얻어야 한다. 이 때 시스템의 국가를 확인하여 BuddhistCalendar(태국에만 해당) 혹은 GregorianCalendar의 완성된 인스턴스를 자동 반환해준다. (추상클래스에 사용되는 getInstance() 메소드는 당연히 static이다.)Calendar cal = Calendar.getInstance(); 2. 'java.time' 패키지에서 날짜를 표현할 때에는 LocalDate 클래스를 사용하며, 시간을 표현할 때에는 LocalTime 클래스를 사용한다. 혹은 날짜와 시간을 모.. 2019. 1. 26.
[JAVA]날짜와 시간 클래스, Date의 Calendar간의 변환 날짜와 시간 관련 클래스, Date와 Calendar클래스간의 변환 날짜와 시간을 다루기 위해서 Date클래스가 JDK 1.0부터 사용되었다. 그러나 지금 돌이켜보면 Date 클래스의 기능은 다소 부실했다. Date의 기능이 부족하여 Calender 클래스가 이후(JDK 1.1) 등장했다. Date와는 훨씬 좋은 기능들을 제공했지만 여러 단점들이 발견되었다. ...이후 'java.time' 패키지가 등장(JDK 1.8)하여 이 단점들을 개선한 새로운 클래스들을 선보였다. 그러나, 자바가 오랜 세월 사용된 만큼 아직까지도 Date, Calender 클래스를 계속해서 사용하는 곳이 있다.때때로 이 둘간의 변환 작업이 필요하다. #Date 클래스를 Calendar 클래스로 변환하기Date d = new Dat.. 2019. 1. 25.
[JAVA] 자바 정리노트(3) [JAVA] 자바 정리노트(3) 1. 모든 클래스는 하나 이상의 생성자가 꼭 정의되어야 한다. 생성자를 정의하지 않을 경우 컴파일러가 기본 생성자를 제공한다. 2. 상속과 포함관계의 구분은 A는 B이다(상속), A는 B를 갖고 있다(포함)으로 구별할 수 있다. 3. 한 소스파일에는 단 한번의 패키지 선언만을 허용한다. 4. 변수의 초기화 단계는 "기본값->명시적초기화->초기화블럭->생성자(생성자는 인스턴스 변수 초기화에만 해당" 순이다. (http://markim94.tistory.com/138 자세한 초기화 단계의 내용은 게시물 참고) 5. 하나의 소스파일에는 public클래스가 하나만 존재해야 하며 소스이름은 public 클래스 이름과 반드시 같아야 한다. 6. 생성자의 접근제어자를 사용하여 인스턴스.. 2018. 12. 19.
반응형