목록2023/09 (12)
Rootable의 개발일기
📌 final 변수 final 키워드가 붙은 변수는 초기화 후 변경할 수 없다. final int a = 10; a = 50; //compile error 📌 final arguments (인자) 인자를 선언할 때 final 키워드를 붙일 수 있다. final로 선언된 인자는 메서드 내에서 변경할 수 없고, 읽기만 가능하다. public void method(final String arg) { System.out.println(arg); //arg = "not changing"; compile error } 📌 final class 클래스에 final을 붙이면 다른 클래스가 상속할 수 없는 클래스가 된다. final class A { ... } class B extends A { //compile err..
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..
📌 운영체제에 독립적이다. 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는 상속, 다형성 등으로 ..