Back-end 100

열거 타입

한정된 값만을 갖는 데이터 타입이 열거 타입(하나의 상수를 저장하는 데이터 타입 ) 열거타입 이름으로 소스파일 생성 public enum 열거타입이름 {} 파일명과 열거타입이름이 같아야한다 열거상수는 모두 대문자로 작성, 여러 단어 구성시 단어 사이를 밑줄(_) 연결하는것이 관례 public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY} 열거 변수 사용시 열거타입 변수 = 열거타입.열거상수; Enum 메소드 name() 메소드 : 열거 객체의 문자열을 리턴 ordinal(): 열거 객체의 순번 리턴 compareTo(): 열거 객체를 비교해서 순번 차이를 리턴 valueOf(String name) : 주어진 문자열의 열거 객체를 리턴 values() : 모든 열..

배열 타입

배열 변수 이미 선언한 후에 다른 실행문에서 중괄호를 사용한 배열 생성은 허용되지 않는다. 타입[] 변수; 변수 = {1,,3,2,3,4} -> 컴파일 에러 변수 = new 타입[] {값1, 값2, 값,3 } 메소드의 매개값이 배열 일 경우에 new 연사자로 이용해 값을 전달해야 한다 int add(int[] scores){...} int result = add(1,3,2,3,4}) -> X 컴파일 에러 int result = add(new int[] {95,99,04}); 타입[] 변수 = new 타입[길이] 가능 인덱스 초과해서 사용 -> ArratIndexOutOfBoundException 커맨드 라인 입력 public static void main(String[] args){...} "java 클..

JVM 내부구조

메소드 영역 클래스들을 클래스 로더로 읽어 클래스 별로 런타임 상수풀(runtime constant pool), 필드(field), 데이터, 메소드(method) 데이터, 메소드 생성자(constructor) 코드 등을 분류해서 저장 힙 영역 객체와 배열이 생성되는 영역, JVM 스택 영역에서 병수나, 다른 객체의 필드에서 참조, 참조되는 것이 없으면 GC 실행 자동 제거 JVM 스택(영역) 각 스레드 마다 하나씩 존재 스레드가 시작될때 할당, 추가적 스레드 생성 하지 않았다면 , main 스레드만 존재 JVM 스택도 하나 JVM스택은 메소드를 호출할때 마다 프레임(Frame) 추가 (Push) 하고 메소드가 종료되면 해당 프레임을 제거(Pop) 하는 동작을 수행 예외 발생시 printStackTrace..

Java 연산자

연산자 단항 : 부호 증감 연산자 ex) x++ 이항 : 나머지 삼항 : 조건 연산자 ex) (sum>90) ? "A" : "B" 단항 연산자 부호연산자 short s = 100 short result = -s // 컴파일 에러 -> 부호 연산자 산출 타입 => int 증감연산자 ++,-- 피연산자 다른연산 수행하기 전 피연산자 ++,-- 다른 연산 수행한 후 * .class 파일은 -> Navigator 뷰 추가후 bin 폴더이 바이트 코드 파일 열어보기 비트 반전 연산자 byte v1 = 10 byte v2 = ~v1 // 컴파일 에러 --> ~ 연산자는 수행전 int 형으로 변환 ~v1 + 1; => -v1은 -11, -> 산출값 1 더하면 부호가 반대인 정수 얻음 산술 연산자 byte byte1 ..