목록Java (22)
Rootable의 개발일기
Java 7에 추가된 구문으로, try-catch-finally 문을 통한 자원 해제 코드가 길어지고 지저분해졌던 점을 개선했다. 자바에서 외부자원에 접근하는 경우, 외부자원을 사용한 뒤 반드시 닫아줘야 한다. try-catch-finally문은 아래와 같이 해제한다. FileOutputStream out = null;try { out = new FileOutputStream("exFile.txt"); ...} catch (FileNotFoundException e) { e.printStackTrace();} finally { if (out != null) { try { out.close(); } catch (IOException e) {..
📌 리플렉션(Reflection)이란 구체적인 클래스 타입을 알지 못해도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API 🔎 예시 아래 코드처럼 Object라는 클래스로 A라는 클래스를 다형성을 통해 받을 수 있다. 하지만 Object 클래스의 참조 변수 o는 A의 특정 메서드에 접근할 수 없다. Object o = new A();o.function(); //Compile error 그 이유는 자바는 컴파일 타임에 타입을 결정하는데, 이미 컴파일 시점에 결정된 타입에 대한 인스턴스 변수와 메서드만 사용할 수 있기 때문이다. 하지만 Reflection API가 있어 구체적인 정보를 모르는 클래스에 접근할 수 있다. Class A_class = A.class;Method fun..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/94cw3/btstsQJmWzN/Ld7rLO1VUOzZL66xL9wEj0/img.png)
📌 운영체제에 독립적이다. JVM(Java Virtual Machine)은 OS에 맞게 재컴파일하므로, Java 프로그램은 OS에 독립적으로 실행할 수 있다. Java application은 JVM 하고만 상호작용하므로 OS와 하드웨어에 독립적, JVM은 OS에 종속적 (해당 OS에서 실행가능한 JVM이 필요) 📌 객체지향언어 객체지향언어의 특징은 다음 글에 정리되어 있다. https://dev-rootable.tistory.com/13 객체 지향 프로그래밍(Object Oriented Programming) 📌 객체 지향 프로그래밍이란 객체 지향 프로그래밍(OOP)은 컴퓨터 프로그램을 객체들의 모임으로 파악하고자 하는 것으로, 각각의 객체는 서로 협력할 수 있다. 또한, OOP는 상속, 다형성 등으로 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bm0eAi/btstrRu2wBw/X3aJujMCc4bRRJWUBM5kv0/img.png)
📌 JVM(Java Virtual Machine) 자바를 실행하기 위한 가상 기계라는 의미로, 자바 프로그램을 실행하는 환경을 만들어 주는 소프트웨어를 말한다. JVM은 자바 실행 환경 JRE(Java Runtime Environment)에 포함되어 있다. 📌 자바 컴파일 과정 소스 코드 작성 (.java)자바 컴파일러(javac.exe)가 자바 소스 코드를 바이트 코드(.class)로 컴파일바이트 코드는 아직 컴퓨터가 읽을 수 없는 JVM이 읽을 수 있는 코드컴파일된 바이트 코드를 JVM의 클래스 로더(Class Loader)에게 전달클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역(Runtime Data Area의 Method Area), 즉 JVM의 메모..