[TIL] JAVA - 7일차

배고픈메꾸리·2021년 1월 27일
0

SSAFY

목록 보기
6/22

제어자

private , default , protected , public , abstract , final static
제어자의 순서는 상관없다.

final

변수 - 상수
메서드 - 오버라이딩 금지
클래스 - 상속 금지

abstract

클래스 : abstract 메서드를 보유할 수 있다. (선언부만 있는 메서드)

class B{
    int a;  // 전역 변수 , 인스턴스 변수
    static int b; // 전역 변수 ,  static 변수
    int c;
    void pp(){
    int i ;
    }
}

전역변수 , 인스턴스 변수

  • 클래스 안쪽 && 메서드 밖에 선언한 변수
  • 객체 생성시점에 변수가 생성됨.
  • 참조변수가 없어지면 GC 메모리를 반환, 시점은 알 수 없음

전역변수 , static 변수

  • 클래스의 정보가 메모리에 올라간 시점부터 사용 가능
  • 프로그램 종료시까지 사용

지역변수

  • 메서드 안쪽에 선언한 변수
  • 사용가능 시점 : 선언문이 실행된 이후 ~ 선언문이 포함된 블록 까지
  • 블록을 빠져나가면 즉시 삭제
  • 초기화 한 후에 참조가능
//static 멤버는 non static 멤버를 접근할 수 없다. => 메모리의 생성시점이 다르다

class CC{
    int a ;
    static int b = a;
}


1. 메인문이 콜 스택에 저장되고
2. class Area에 클래스의 정보가 저장된다. 이 때 static 변수가 메모리에 올라감
3. heap영역에 지역변수가 올라간다.
4. heap영역의 정보가 전달된다.

Array List

//ArrayList : 배열의 크리극 변경할 수 없는 문제를 해결
// 제네릭 (String만 넣을거야) 꺼낼때도 입력한 타입으로 리넡
ArrayList<String> al = newArrayList<String>();
//ArrayList al = newArrayList();
al.add("호랑이");
al.add("사자");
al.add("토끼");
al.add("기린");
al.add("코끼리");
//al.add(3.14);  제네릭 쓰면 오류
//al.add(new Integer(3)); 

//Object o = al.get(2);
//String s= (String) o;
String s = al.get(2);

System.out.println("크기 " + al.size()); 크기 5
System.out.println(al.get(2));
System.out.println(al.contains("토끼"));
System.out.println(al.isEmpty());
System.out.println(al.indexOf("사자"));
al.set(2,"소");
System.out.println(al);
al.remove(3);
System.out.println(al);
al.clear();

최고조상 클래스로 만들때 객체타입만 가능함
기본형타입 => 클래스로 변경 (Wrapper Class)
int -> Integer


꿀팁

  • alt shit r 리팩토 변수이름 일괄변경
  • System.err 는 오류 메시지 (빨간색 뱉음) 입력 스트림 , 오류 출력 , 출력 스트림 3개있음
    • ctrl + spacebar 자동완성
      Ctrl + click : 소스코드로 이동
      alt 좌/부 방향키 : 이전/이후 화면이로 이동
      F3 : 선언된 소스코드화면으로 이동
      Ctrl + 아래방향키 : 복사

text.contains(a) ; text에 a가 들어있나??

profile
FE 개발자가 되자

0개의 댓글