분류 전체보기(394)
-
static 키워드
오브젝트 생성 전 초기화나 사용이 필요할 때 사용한다. 1. static 변수로 선언되면? 클래스 로드 시 변수 초기화 오브젝트 별로 동일 변수 공유 가능 값을 변경하지 않는 경우라면 static 변수로 선언하면 메모리의 이점을 얻을 수 있다. (같은 곳의 주소만을 바라보며 값을 공유하기 때문에) 2. static 메서드로 선언되면? 다른 static 메서드만 호출 가능 속한 클래스 내부 static 변수만 접근 가능 this 키워드 사용 불가 오브젝트 생성 없이 호출 가능(new로 생성안해도 호출가능)
2022.12.09 -
제네릭
1. 제네릭: 하나의 코드를 다양한 타입의 객체에 재사용하는 객체 지향 기법 장점: 컴파일 할 때 타입을 점검-> 실행 도중 발생할 오류 사전 방지 불필요한 타입 변환이 없음-> 프로그램 성능 향상 class Gen { T ob; //Integer ob; Gen(T o) { ob = o; //Integer ob=88; String ob="Generics Test"; } T getOb() { return ob; } void showType() { System.out.println("Type of T is " + ob.getClass().getName()); //오브젝트의 클래스 타입의 이름을 출력 } } class GenDemo { public static void main(String[] args) { ..
2022.12.09 -
기타 자바 키워드
1. transient 자바에서 자원에 관한 특별한 키워드 오브젝트를 디스크에 저장 시 특정 변수를 제외 주로 직렬화 시 특정 값을 은닉하기 위해 사용 직렬화? 오브젝트를 바이트 스트림으로 변환하는 것(다른 자바 시스템에서도 사용할 수 있도록) ->오브젝트를 네트워크로 전송할 때 사용 class T { transient int a; //변수 a의 값은 저장이 안됨 int b; } 2. volatile //thread safety 보장 위한 키워드 thread safety? 다수 스레드가 접근해도 실행에 문제가 없음 지정된 변수가 스레드에 의해 변경될 수 있음을 표시 두 스레드가 하나의 변수를 조작할 때 지정안하면 ->각 스레드는 변수의 복사본을 유지해 변수를 변경해도 실제 값은 변경이 안되고 복사본만 변..
2022.12.08 -
try-with-resources문
try(FileInputStream fin = new FileInputStream(args[0]))//괄호 안에 사용할 자원 초기화 {... } catch(IOException e) { System.out.println("An I/O Error Occurred"); } try 블록이 끝난 후 자원이 자동으로 릴리즈 됨 try ( FileInputStream fin = new FileInputStream(args[0]); FileOutputStream fout = new FileOutputStream(args[1]) ) //두 개 이상의 자원을 명시 할 때는 세미콜론으로 구분 {... } catch(IOException e) { System.out.println("I/O Error: " + e); }
2022.12.08 -
입출력 기본
java. io // java의 I/O 시스템으로 관련 API 제공 1. 특징 자바는 입출력을 스트림을 통해 처리 스트림: 정보를 순차적으로 접근하도록 추상화 , 선입선출 구조 자바 I/O 시스템이 디바이스와 스트림으로 연결 자바 프로그램은 스트림을 통해 정보를 교환 2. 사용방법 데이터의 출발지와 목적지를 연결하여 사용 - 한번에 열수 있는 개수는 제한 - 동일한 파일은 둘 이상의 스트림으로 열 수 없음 - 스트림은 사용 전 열고, 사용 후 닫아야 함 3. 종류 1) 바이트 스트림: 입출력을 바이너리 데이터로 다룰 때 바이너리 데이터? 컴퓨터가 이해하는 데이터 InputStream, OutputStream 2) 문자 스트림: 입출력을 문자 단위로 다룰 때 Reader, Writer 표준 입출력 스트림 ..
2022.12.07 -
열거형, 박싱, 어노테이션
1. 특징 - 이름을 가진 상수들의 리스트, 각 상수들을 열거형 상수라고 함, public static final 멤버로 간주 (final 멤버: 값 할당을 딱 한번 할 수 있다.) - 각 상수들은 특정 값을 가짐 enum fruit{ Apple,banana,melon} fruit ap; ap=fruit.Apple; switch(ap){ case Apple: //.. case banana: //.. } //case문에서는 ap.Apple같은 '.' 연산자 생략 가능 - 새로운 데이터 타입으로 사용 가능 -> fruit이라는 새로운 데이터 타입 선언됨. - 열거형은 클래스 타입으로 간주됨(그러나 오브젝트를 생성하지는 않음, new 키워드 미사용) - 열거형도 클래스 내에 인스턴스 변수, 생성자, 메서드 등..
2022.12.07