본문 바로가기

스터디12

[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.
[Java] 상속(Inheritance) 상속 class A { String name; void printName() { System.out.println(name) }; // ... } class B { String name; void printName() { System.out.println(name) }; // ... } class C { String name; void printName() { System.out.println(name) }; // ... } 같은 기능이나 비슷한 변수를 가지는 클래스가 많다고 할 때, 그 클래스들의 변수 이름이나 공통된 기능을 하는 함수의 구현이 달라질 때 모든 클래스들의 내용을 바꿔야 하는 단점이 있다. -> 유지보수가 어렵다. class SuperClass { String name; void prin.. 2020. 12. 24.