Java -cheatsheet (WIP)

Shaun·2021년 7월 29일
1

JAVA

목록 보기
3/30

equals=문자열비교 (내용만비교)
== 는 완전히 같은 것인지 비교할떄(주소까지)
equalsIgnoreCcase() = 대소문자 구별 x

조건, 반복문

swithc(조건식){
case 값1:
break;
}

do{
}while(); (끝에 ; 잊지 않도록 주의)

break = 해당 메서드 빠져나온다.
break: (이름)= 둘다 빠져나옴. /ex) loop:for ~~
continue = 반복문 끝으로 이동, 다음 반복으로 넘어간다.

배열

1.int [] arr= new int[5] = 01234 index
2. int 배열 기본 0으로 초기화
3. 길이가 0 인 배열도 생성 가능.(배열 길이는 양의정수(0포함))
4.배열의 길이는 변할수 x / 더큰배열 새로생성 or 기존 새로운 배열에 복사
5. Arrays.toString(배열이름)/char배열은 구분자 없이 출력된다
6. System.arraycopy(num, 0번쨰부터 , newNum에복사, 0번쨰부터, num.length만큼);
7. 배열에는 실제 데이터가 아닌 주소 가 들어있다.

String

1.읽을수만 있을 뿐 변경 x
2. 주요 메서드

JVM구조**


-메서드 영역

  • 어떤 클래스가 사용되면 해당클래스의 클래스파일을 읽어서 클래스 정보를 이곳에 저장

-힙

  • 인스턴스가 생성되는 공간

-호출스택(call stack)

  • 메서드 작업에 필요한 메모리공간 제공, 메서드를 위한 메모리 할당,작업 마치면 메모리공간 반환.

static

※ 인스턴스 변수나,메서드를 사용하지 않는 메서드 =static 메서드
※ 클래스의 맴버변수 중 모든 인스턴스에 공통된값을 유지해야 하는것
※ static 메서드 인스턴스변수 사용 x

가변인자

  1. '타입...변수명' 으로 선언
  2. 가변인자를 매개변수 중에서 가장 마지막에 선언해야한다.
  3. 내부적으로 '배열' 을 이용한다./ 메서드 호출할떄마다 배열 새로 생성

생성자

  1. new가 인스턴스 (힙메모리)에 생성 하는거지 생성자가 인스턴스 생성 x
  2. 생성자는 초기화에 사용되는 조금 특별한 메서드일뿐
  3. 생성자에서 다른 생성자 호출
  • 반드시 첫줄
  • 클래스 이름대신 this
  • this= 인스턴스 자기자신, 인스턴스의 주소

초기화블럭

  • 생성자 보다 인스턴스 초기화블럭이 먼저 수행
  • 모든 생성자에서 공통으로 수행되는 코드
  • 클래스 초기화 블럭은 한번만, 인스턴스 초기화 블럭은 인스턴스가 생성 될떄마다.

포함관계

  • 한 클래스의 맴버변수로 다른 클래스 참조변수 선언

포함 vs 상속 (2개 한꺼번에 가능)

~은 ~이다 (is-a) = 상속
~은 ~을 가지고 있다(has a)= 포함

오버라이딩 조건

1.조상 클래스 메서드 접근제어자보다 좁은범위 x
2. 조상 클래스의 메서드보다 많은 예외 선언 x

super()

모든 생성자의 첫줄은 super() or this () 이다

접근제어자

1.private = 같은 클래스 내에서만 접근 가능
2.protected = 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근 가능
3. 생성자에도 접근제어자 가능

매개변수의 다형성

매개변수로 조상형이 오면 그 자식들 대입 가능하다.

객체를 배열로

Product p1 = new Tv();
Product p2 = new Radio();
Product p3 = new Computer();

product p[]=new product[3];
p[0] = new TV();
p[1]= new Radio();
p[2]=new Computer();

추상클래스

-추상클래스 상속받은 자손클래스는 오버라이딩을 통해 메서드 모두 구현해야함

-추상클래스도 생성자가 있다.

인터페이스

-다중상속 가능
-static 메서드와 default 메서드,private 메서드 사용 가능.
-추상메서드와 상수로만 이루어짐
-서로 관계없는 클래스들에게 관계를 맺어줄수 있다.


-private 메서드는 정적메서드,디폴트메서드 를 통해 사용한다.

※리턴 타입이 인터페이스라는 것은 메서드가 해당 인터페이스를 구현한 클래스의 인스턴스를 반환한다는 것을 의미한다.

디폴트 매서드와 조상클래스의 메서드 간의 충돌

-조상 클래스의 메서드가 상속되고, 디폴트는 무시된다

익명클래스

-오로지 단하나의 클래스를 상속받거나 / 단하나의 인터페이스만 구현

-조상클래스 이름이나 /인터페이스 이름을 사용하여 정의
-일회용

EX) Action=추상클래스
Action ac= new Action(){
@override
메서드
}

profile
호주쉐프에서 개발자까지..

0개의 댓글