프로그래밍 언어/Java
프로젝트 시작할 때 자바 버전 고르기 Java 8 vs Java 11
1. 자바 업데이트 지원 기간 JDK는 6개월마다 다음 버전을 제공하며 이전 버전에 대한 유지보수와 보안 업데이트가 중지된다. 하지만 JDK 8 버전 이후로 3년마다 하나의 버전이 LTS(Long Term Supported)로 지정된다. 이 LTS 버전은 최소 4년 이상(벤더사마다 다름) 업데이트를 제공한다. 현재 LTS 버전은 8과 11버전이 있다. 그 다음으로는 17버전이 예정되었고 2021년 9월 14일에 오라클사가 LTS 출시 주기를 3년에서 2년으로 전환하는 것을제안하여 만약 이 제안이 받아들여진다면 다음 LTS 버전은 23버전이 아니라 21버전이 될 수 있다. 2. 스프링에서 지원하는 JDK 버전 스프링 5.1부터 JDK 최소사양은 1.8이며 권장사양은 JDK 11이다. JDK 8 패치 릴리즈..
[Effective Java] Item 1. 생성자 대신 정적 팩터리 메서드를 고려하라
생성자 대신 정적 팩터리 메서드를 고려하라 이펙티브 자바 챕터 2 아이템 1에서는 생성자 대신 정적 팩터리 메서드를 고려하라고 조언한다. 이는 클래스의 인스턴스를 얻는데 생성자를 사용하는 것이 아닌 정적 메서드를 통해 제공하는 것이다. 자신이 개발할 때 뿐만 아니라 다른 사람의 코드를 사용할 때에도 자주 볼 수 있기 때문에 알아두는 것이 좋다. 아래는 책에서 소개한 5가지 장점과 2가지 단점을 알아본다. 장점 1. 이름을 가질 수 있다. 우선 생성자의 단점은 클래스의 이름을 따라야한다는 조건이 있다. 하지만 메서드는 그러한 제약 조건이 없어 이름을 자유롭게 정함으로 어떻게 작용하지 유추하기가 쉬워진다. 장점 2. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. new 예약어로 객체를 생성하지 않기 ..
[JAVA 기초] Method Overriding이란 무엇인가
1.메서드 오버라이딩(Method Overriding)이란 메서드 오버라이딩이란 자바와 같은 객체 지향 프로그래밍에서 하위 클래스가 자신의 상위 클래스들, 또는 그 중 하나에 의해 이미 제공된 메서드를 특정한 형태로 재정의하는 것을 의미한다. 이는 동일한 시그니쳐(메서드 이름, 매개 변수의 개수와 데이터타입)와 리턴 타입이 같아야만 가능하다. 상위 클래스의 객체로 메서드를 호출한다면 상위 클래스 버전의 메서드가 실행되고, 하위 클래스의 객체로 메서드를 호출한다면 하위 클래스 버전의 메서드가 실행될 것이다. //탈 것을 정의한 클래스 public class Vehicle { //탈 것의 run 메서드를 정의 public void run(){ System.out.println("Run with Vehicle..
[JAVA 기초] Wrapper Class란 무엇인가
1. Wrapper Class란 Wrapper Class는 대응하는 primitive type을 필드로 가지고 있는 Class이다. 개발자는 Wrapper Class로 Primitive Type의 데이터를 Object로 만들 수 있으며 Object의 기능을 사용할 수 있다. java.lang 패키지에 포함되어있어 개발자가 import할 필요가 없다. 종류는 아래와 같다. Primitive Type Wrapper Class byte Byte short Short int Integer long Long double Double float Float char Character boolean Boolean 이중 Byte, Short, Integer, Long, Double, Float은 Number Class를..
[JAVA 참고] JCP, JSR, TCK란 무엇인가
JCP, JSR, TCK란 무엇인가 Java를 개발한 Sun Microsystems(현 Oracle에 인수됨)는 Java 기술 사양의 개발 및 개정을 위해 JCP(Java Community Process) 프로그램을 도입하였다. 이는 Java기술에 의존하는 전 세계 개발자와 조직을 위해 만들어졌으며 누구든 참여할 수 있다. JSR(Java Specification Request)은 JCP를 통해 Java플랫폼에 대한 기술 제안 및 최종 사양이다. JSR은 정해진 프로세스에 따라 진행되며 승인이 되면 표준이 되어 OpenJDK로 구현되며 Oracle을 포함한 여러 벤더사에서 OpenJDK를 기반으로 JDK를 구현을 한다. TCK(Technology Compatibility Kit)를 통해 해당 JDK가 J..
[JAVA 기초] JDK, JRE, JVM이란 무엇인가
0. Java 소스코드를 실행하는 과정 1. JDK란 무엇인가? 2. JDK 플랫폼 3. JDK 종류 4. JRE(Java Runtime Environment)란 무엇인가? 5. JCL(Java Class Library)이란 참고 1. Java11에서의 변화 6. JVM(Java Virtual Machine)이란 무엇인가? 7. JVM 구조 0. Java 소스코드를 실행하는 과정 1. 개발자는 에디터나 IDE를 통해 Java 소스코드를 작성한다. 확장자는 .java이여야한다. 2. JDK에 포함된 Java Compiler를 통해 소스코드를 바이트코드로 컴파일한다. 확장자가 .class로 된 파일이 생성된다. 3. .class파일을 JVM의 ClassLoader가 읽어 JVM 메모리에 적재하고 프로그램을 ..