Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 즉, 구체적인 소프트웨어가 아니라 그 소프트웨어의 설계도라고 할 수 있다.
IntelliJ로 새로운 프로젝트 만들기를 하면 이러한 선택옵션이 뜬다. Maven과 Gradle이란 무엇일까?
결론부터 이야기하자면 ==과 equals는 비교하려는 대상에서의 차이가 발생한다. 연산자인 ==은 비교하려는 대상이 저장되어있는 주소의 값을 비교하고, 메소드인 equals는 비교하려는 대상의 내용 자체를 비교한다.

Java에서는 메소드와 변수 앞에 static이라는 키워드를 붙일 수 있다. 그렇게 되면 무엇이 달라질까?
생성자(constructor)는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다. 이때, 인스턴스 초기화는 인스턴스변수들을 초기화하는 것을 뜻한다. 이외에 인스턴스 생성 시 실행되어야 할 작업을 위해서도 사용한다.
오버로딩(overloading)이란 한 클래스 내에 같은 이름을 가진 메소드를 여러 개 정의하는 것이다. 한 클래스 내에 같은 이름을 가진 메소드가 이미 존재하더라도 매개변수의 개수 또는 타입이 다르면 같은 이름을 사용해 메소드를 정의할 수 있다.
자바 인터페이스에서 default 메서드가 도입된 후에는 인터페이스와 추상 클래스 간에 더 이상 차이가 없는 것처럼 보이기도 한다. 그러나 둘 사이에는 몇 가지 차이점이 존재한다.