본문 바로가기

JAVA13

[Java] Annotation Annotation 정의 java5에서 추가된 기능. 주석이라는 뜻이지만 메타데이터(데이터에 대한 추가 데이터) 역할을 한다. 클래스, 함수 등에 사용할 수 있다. 정의 방법 package encrypt; @Documented @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface EncryptTarget { String name(); } @interface을 클래스 앞에 붙여서 정의해준다. 어노테이션 종류 package name since (java version) description java.lang (표준) Override 1.5 부모 클래스의 메서드 오버라이드 Deprecated 1.5 더 이상 개선이.. 2021. 2. 5.
[java] Enum 열거타입이다. 타입을 가지기 때문에 타입도 같이 체크할 수 있다. Enum 또한 클래스이기 때문에 멤버변수, 함수를 가질 수 있다. 정의하는 방법 public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } enum 키워드를 사용하여 정의한다. public enum Week { MONDAY("월요일"), TUESDAY("화요일"), WEDNESDAY("수요일"), THURSDAY("목요일"), FRIDAY("금요일"), SATURDAY("토요일"), SUNDAY("일요일"); private String desc; Week(String desc) { this.desc = desc; } public String getD.. 2021. 1. 30.
[Java] 멀티쓰레드 프로세스(Process), 스레드(Thread) 동작중인 프로그램을 프로세스(Process)라 한다. 스레드(Thread)는 프로세스의 작업 단위이다. 하나의 프로세스는 복수개의 스레드를 가질 수 있으며 이 스레드들은 자원을 공유한다. Thread 클래스 // ThreadImpl.java public class ThreadImpl extends Thread { private static int threadCnt = 1; private int cnt; public ThreadImpl() { super(); cnt = threadCnt++; } @Override public void run() { System.out.println(cnt + " run"); try { Thread.sleep(500); } c.. 2021. 1. 23.
[Java] 패키지 Package 비슷한 기능을 하는 클래스들을 모아 둔 폴더. 물리적으로 클래스들을 모아둔다. 클래스들을 계층구조로 관리하는데 유용하다. 접근지시자 인터페이스, 클래스, 함수, 멤버변수 등을 선언 시 접근지시자로 접근 범위를 제한시킬 수 있다. 접근지시자 같은 클래스 내 같은 패키지 내 서브클래스 내 import한 클래스 내 private O X X X package private O O X X protected O O O X public O O O O package 키워드 package 키워드로 패키지를 지정하지 않으면 default package(unnamed package)에 들어간다. 현재 자바 클래스를 특정 패키지로 지정하고 싶으면 package 키워드를 사용한다. 코드의 최상단에 위치한다. na.. 2020. 12. 27.
[Java] 데이터, 변수, 배열 Primitive Type 종류 범위 크기 기본 값 byte -128 ~ 127 1 byte 0 short -32,768 ~ 32,767 2 byte 0 int -231 ~ 231-1 4 byte 0 long -263 ~ 263-1 8 byte 0L float 1.40239846E-45 ~ 3.40282347E+38 4 byte 0.0f double 4.94065645841246544E - 324 ~ 1.79769313486231570E + 308 8 byte 0.0d boolean true, false 1 byte false char '\u0000'(0) ~ '\uffff'(65,535) 2 byte '\u0000' 참고 : https://docs.oracle.com/javase/tutorial/jav.. 2020. 12. 27.
[Java] JVM java 프로그램 실행 방법 컴파일 [name].java -> [class name].class javac [name].java 컴파일 결과물인 class 파일은 자바 바이트코드이다. 실행 java [class name].class 자바 바이트코드는 JVM으로 실행된다. 자바 바이트코드 확장자는 .class 기계어가 아니라 OS는 이를 해석할 수 없다. JVM이 OS가 이를 실행할 수 있게 기계어로 번역해준다. JVM (Java Virtual Machine; 자바 가상 머신) 다양한 OS 위에서 자바 바이트코드를 실행할 수 있게 해주는 역할. JVM을 한 번 더 거치기 때문에 네이티브 언어 보다 속도가 더 느리지만 JVM이 자바 바이트코드와 OS와 사이의 통역 역할을 하기 때문에 자바는 OS에 독립적이다.. 2020. 12. 27.