목록Java (7)
손영배 블로그 누구나 쉽게 이해하고 습득하기
NullPointerException 대한 처리를 (번거롭지 않게) 단순히 처리할 수 있도록 자바 8에서 Optional 클래스가 만들어졌다. Optional 클래스의 기본적인 사용 방법 - Optional 클래스는 java.util 패키로 묶여 있으며, 다음과 같이 정의되어 있다. Optional 인스턴스의 생성 방법 - of, ofNullable 두 가지를 이용해서 Optional os1 = Optional.of(new String("Toy1")); Optional os2 = Optional.ofNullable(new String("Toy2")); of,..
List 타입이면서 사용자 지정 Class 타입의 List를 오름차순 or 내림차순으로 정렬하고 싶을 때 (코딩테스트에서 이런 상황이 나온다. Java로 푸시는 분들..) static class Node implements Comparable{ int value = 0; public Node(int value) { this.value = value; } //올름차순 @Override public int compareTo(Node obj) { if(this.value > obj.value) { return 1; } else if(this.value < obj.value) { return -1; } return 0; } } Collections.sort(list); - 인자로 전달된 obj가 작다면 양의 정..
당신은 직무면접에서 Java 접근제한자 public. protected, private, default의 차이가 뭐에요? 라고 물으면 얼마나 자신있게 대답할 수 있는가!! public : 공개한다는 의미를 가지고 있다. 외부클래스가 자유롭게 사용할 수 있는 공개 멤버를 만든다. protected : 같은 패키지 또는 자식 클래스에서 사용할 수 있는 멤버를 만든다. private : 단어의 뜻 그대로 개인적인 것이라 외부 노출되지 않는 멤버를 만든다. default : 같은 패키지에 소속된 클래스에서만 사용할 수 있는 멤버를 만든다.
int arr [] = {1,2,3,4,5}; int tmp [] = new int[5]; //System.arraycopy(src, srcPos, dest, destPos, length); System.arraycopy(arr, 0, tmp, 0, arr.length); for(int num : tmp) { System.out.println(num); } src : 매개값은 원본 배열이고 srcPos : 원본 배열에서 복사할 항목의 시작 인데스 dest : 매개값은 새 배열이고 destPos : 새 배열에서 붙여넣을 시작 인덱스이다 length : 복사 할 개수 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);..
참조 타입 변수들 간의 ==, != 연산은 동일한 객체를 참조하는지 (즉 주소가 같은지)를 알아볼 때 사용된다. 참조 타입 변수의 값은 힘 영역의 객체 주소이므로 결국 주소 값을 비교하는 것이 된다. null과 NullPointerException 참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null(널) 값을 가질 수 있다. null 값도 초기값으로 사용 할 수 있기 때문에 null로 초기화도니 참조 변수는 스택 영역에 생성된다. NullPointerException 참조 타입 변수가 null을 가지고 있을 경우, 참조 타입 변수는 사용할 수 없다. 참조 타입 변수를 사용하는 것은 곧 객체를 사용하는 것을 의미하는데, 참조할 객체가 없으므로 사용할 수가 없는 것이다. 그러나 프로그매러으..
JVM이 사용하는 메모리 영역. java.exe로 JVM이 시작되면 JVM은 운영체제에서 할당받은 메모리 영역(Rutime Data Area)을 다음과 같이 세부 영역으로 구분해서 사용한다. 1. 메소드(Methond) 영역 메소드 영역에는 코드에서 사용되는 클래스(~.class)들을 클래스 로더로 읽어 클래스별로 런타임 상수풀(runtime constant pool) 필드(field) 데이터 메소드(method) 데이터 메소드 코드 생성자(constructor) 코드 등을 분류해서 저장한다. 2. 힙(Heap) 영역 힙 영역은 객체와 배열이 생성되는 영역이다. /**/ 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM은 쓰레기 수집기(Garbage Collec..
자바의 데이터 타입 - 1. 기본타입(원시 타입: primitive type) 2. 참조타입(reference type) 참조타입 : 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다. 기본 타입으로 선언된 변수는 실제 값, 참조타입으로 선언된 변수의 차이점은 저장되는 값은 메모리 번지 값 변수 - 스택 영역, 객체는 힙 영역 String 클래스 변수인 name과 hoby는 힙 영역의 String 객체 주소 값을 가지고 있다. 주소를 통해 객체를 참조한다는 뜻에서 String 클래스 변수를 참조 타입 변수라고 한다.