선언한 객체에 최초로 값을 넣어주는 것이유 : 클래스 영역에서 선언할 경우, 컴파일러가 자동으로 값을 할당을 해주나메소드 영역에서 선언할 경우, 자동으로 값이 할당 되지 않기 때문클래스 영역에서 정의한 변수는 필드, 전역변수라로 부르고메소드 안에 있는 변수는 지역변수라
공통 속성일 경우 static을 붙인다.읽기만 가능읽기와 변경 가능(참조한 객체의 값 자체를 바꿀 수 있음)메서드 앞에 static이 붙은것객체생성없이 클래스이름.메서드이름()으로 호출인스턴스 멤버와 관련없는 작업을 하는 메서드static메서드 안에서 인스턴스 메서드
기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용)두 클래스를 부모와 자식으로 관계를 맺어주는 것조상의 변경은 자손에 영향을 끼친다자손의 변경은 조상에 영향을 끼치지 않는다.클래스의 멤버로 참조변수를 선언하는 것java는 단일 상속만을 허용부모가 없는 클래스
사용할 수 있는 멤버의 갯수를 조절하는 것조상 - 자손 관계일 때 만 참조변수는 서로 형변환 가능\-> 형 변환 시 실제 객체가 무엇인지 중요함실제 객체보다 참조변수의 멤버가 더 많다면 에러가 발생할 수 있어 위험참조변수의 형변환 가능여부 확인에 사용.가능하면 Tru
내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
List - 순서가 있는 목록Set - 순서가 중요하지 않은 목록Map - KEY-VALUE의 형태로 저장되는Queue - 먼저 들어온 것이 먼저 나가는
배열
불필요한 코드를 줄이고, 가독성을 높히기 위함.람다식 내에서 사용되는 지역변수는 final이 붙지 않아도 상수로 간주람다식으로 선언된 변수명은 다른 변수명과 중복될 수 없다.람다식으로 만든 무명함수는 재사용이 불가디버깅이 어렵다람다를 남발하면 비슷한 함수가 중복 생성되
null 또는 값을 감싸서 NPE(NullPointerException)로부터, 부담을 줄이기 위해 등장한 Wrapper 클래스이다.단, 잘못사용하면 성능저하된다.즉 결과가 null이 될 수 있으며, null에 의해 오류가 발생할 가능성이 매우 높을 때 반환 값으로만
메서드 레퍼런스는 람다식과 함께 사용될 수 있다.ClassName::MethodName 형식Custom 인터페이스인 Executable를 Java에서 기본으로 제공하는 함수형 인터페이스인 Consumer로 대체은 String 1개를 인자로 받아 void를 리턴하는 메소
객체지향 프로그래밍(OOP)필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 그 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.객체지향 프로그래밍의 장점코드 재사용의 용이남이 만든 클래스를 사용할수있고 상속을 통해 확장해서 사용할 수 있다
자바 파일을 컴파일러로 컴파일하면 확장자가 .class인 바이트 코드 파일이 생성되는데 이 바이트 코드 파일을 해석하여 기계어로 번역 해 주는 역할을 한다.JDK에는 JVM, 라이브러리 API, 컴파일러 등의 개발 도구가 포함되어있다.JDK 내부에 bin디렉토리가 있는
자동 타입 변환은 작은 크기를 가지는 타입이 큰 크기를 가지는 타입에 저장될 때 발생.byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)자동 타입 변환이 발생되면 변환 이전의 값과 변환
절대값 반환 메서드0.0 ~ 1.0 사이 임의의 double형 데이터를 생성하여 반환.a, b중 max값 또는 min값 반환
1 ~ 6까지의 랜덤 수를 출력할 때 조건에 부합하는 case일 경우 실행하고 break로 빠져나온다.마지막에 default:로 나머지 경우에 대한 실행도 가능하고케이스마다 묶어서 동일한 처리를 할 수 있다.
객체지향 프로그래밍에서 일반적으로 객체의 데이터를 외부에서 직접적으로 접근하는것을 막는다. 이유는 객체의 무결성이 깨질 수 있기 때문이다.이러한 이유로 객체지향 프로그래밍에서는 메서드를 통해 데이터를 변경하는 방법을 선호한다. 이러한 역할을 하는것이 Setter이다.외
같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질.다형성을 위해 자바에서는 부모 클래스로 타입 변환을 허용한다.이것은 객체가 부품화 될 수 있는 이유!부모: 타이어자식: 한국 타이어, 금호 타이어타이어 클래스를 상속한 실제 타이어들은 어떤 것이든 상관없이
공통되는 특성을 추출한 것추상 클래스는 실체 클래스의 공통되는 필드와 메서드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다.즉, new 연산자로 인스턴스를 생성하지 못한다.또한 새로운 실체 클래스를 만들기 위해 부모 클래스로만 사용된다.즉, exten
String 객체끼리 더하는 방법은 메모리 할당과 해제를 발생시키는데, 덧셈 연산이 많아진다면 성능적으로 좋지 않다.Java는 변경 가능하고 일반적인 문자열로 인한 성능 문제를 해결하도록 설계된 StringBuilder 클래스를 제공한다.생성자
자바에서 인터페이스는 객체 사용 방법을 정의한 타입이다.개발 코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 메서드를 호출시킨다.개발 코드가 직접 객체의 메서드를 호출하지 않고 중간에 인터페이스를 두는 이유는 개발 코드를 수정하지 않고 사용하는 객체를 변경할
다중 인터페이스 구현 클래스 인터페이스 A와 인터페이스 B가 객체의 메서드를 호출할 수 있으려면 객체는 이 두 인터페이스를 모두 구현해야 한다. 만약 실체 메서드가 하나라도 없으면 추상 클래스로 선언해야 한다. 인터페이스 사용 예를들어 RemoteControl 인