java

· Java
자바를 플랫폼 독립적인 언어라고 부르는 이유 자바는 JVM 위에서 동작하는데 이 JVM이 OS에 독립적이다. 자바의 실행 원리 코드를 javac라는 명령어를 통해 컴파일을 한다. 이를 완료하면 .class라는 바이트코드가 생성되는데 이 파일은 java라는 명령어를 통해 실행할 수 있다. .class를 실행하면 JVM이 클래스 파일을 읽어 프로그램을 실행하게 된다. JVM, JRE, JDK의 차이 JVM은 자바 클래스 파일을 실행하는 역할, JRE는 JVM이 실행될 수 있는 환경을 만들어줌, JDK는 개발할 수 있는 여러 툴들을 제공 JVM은 컴파일 된 클래스 파일을 구동하는 역할을 한다. JRE는 클래스 파일을 읽는 class loader, 로딩된 클래스 파일을 검증하는 bytecode verifier,..
· Java
JDBC DBCP라는 것에 대해 알아보기 전에 먼저 JDBC에 대해 알아보자. JDBC는 Java DataBase Connectivity의 약자로 자바에서 데이터베이스에 연결하기 위해 사용되는 인터페이스이다. Oracle, MySQL, Postgresql 등 여러 데이터베이스에서는 JDBC를 사용하기 위해 필요한 각각의 Driver를 제공하는데 우리는 이것을 이용해 DB에 접속할 수 있다. JDBC를 이용해 DB에 접속하는 순서는 다음과 같다. DB접속을 위해 JDBC 드라이버 로드 getConnection 메소드로 DB 커넥션 객체를 얻는다. 쿼리 수행을 위해 PreparedStatement 객체 생성 excuteQuery 를 실행해 쿼리 실행 결과를 받는다. 이때 DB 연결마다 1번과 2번의 과정(D..
· Java
자바 8버전 이후부터 인터페이스에 기본 메소드(default method)와 스태틱 메소드(static method)를 사용할 수 있다. 기본 메소드(Default Method) 여러 구현체들이 한 인터페이스를 구현하고 있을 때, 인터페이스에 어떤 기능을 추가하기 위해서는 그것을 구현한 구현체들 모두에서 기능에 대해 정의해주어야 한다. 이런 불편함 때문에 자바 8 버전 이후부터 인터페이스 내부에 default method를 구현할 수 있게 됐다. (때문에 함수형 인터페이스(Functional Interface)에 여러 개의 default method와 static method가 있어도 추상 메소드가 하나인 경우 함수형 인터페이스로 본다. 즉, 추상 메서드의 개수가 기준이 된다.) 기본 메소드란 인터페이스..
· Java
Lambda Capturing 람다(Lambda)의 바디에서는 파라미터가 아닌 바디 외부에 있는 변수를 참조할 수 있다. 유사하게 로컬 클래스, 익명 클래스에서도 참조가 가능하다. public class VariableCapture { private void run() { // 로컬 클래스, 익명 클래스, 람다에서 이 변수를 참조하면 effective final로 변경 int baseNumber = 10; // 람다 IntConsumer lambda = (i) -> System.out.println(i + baseNumber); // i + 10 // 로컬 클래스 class LocalClass { void printBaseNumber() { System.out.println(baseNumber); // ..
· Java
Java에는 Checked Exception과 Unchecked Exception(Runtime Exception)이 있다. Exception 처리 예외 복구 예외 처리 회피 예외 전환 예외 복구 예외 상황 파악 후 문제를 해결하는 방법 예외를 catch해서 일정 시간, 조건만큼 대기 후 다시 재시도 반복 최대 재시도 횟수를 넘길 경우 예외 발생 예외 처리 회피 예외 처리를 직접 담당하지 않고 호출한 쪽으로 throws하는 방법 보통의 경우 예외를 그냥 던지는 것은 무책임한 방법일 수 있다. (로그라도 출력하는 것을 권장) 예외 전환 예외 회피와 비슷하게 throws를 하지만, 적절한 예외로 전환하여 던지는 방식 더 명확한 의미로 전달하기 위해 전환 단순하게 만들기 위해 wrap할 수도 있다. Check..
dongb
'java' 태그의 글 목록