자바(Java) 프로그래밍에서 매우 중요한 개념인 'Try-with-resources'에 대해 깊이 있게 탐구해보려 합니다. 이 기능은 자바 7부터 소개되었으며, 코드를 더 깔끔하고 안전하게 만드는 데 큰 도움이 됩니다. 특히 파일 입출력, 데이터베이스 연결과 같은 자원을 사용할 때 이 기능의 중요성이 더욱 부각됩니다. Try-with-resources란 무엇인가요? Try-with-resources는 자바에서 'AutoCloseable' 인터페이스를 구현하는 객체들을 자동으로 닫아주는 구문입니다. 이는 개발자가 명시적으로 자원을 해제하는 번거로움을 줄여주며, 예외 발생 시에도 안전하게 자원을 해제할 수 있도록 도와줍니다. 예제로 바로 알아봅시다. 우선 Try-with-resources를 미사용 해보죠...
자바
VM명세서를 자꾸 까먹어서 간단하게 기록해두려고한다 우선 HelloWorld.java 를 작성 후 컴파일을 해서 뜯어보자 javap -v 명령어를 이용해서, 역어셈블리를 해보면 클래스파일의 자세한 정보를 확인 할 수 있다. 위의 클래스 구조를 표로 정리 한 것이다. VM 명세서라고도 한다. 매직넘버 (magic number) 0xCAFEBABE 클래스 파일 포맷 버전 (version) 클래스 파일의 메이저/마이너 버전 상수 풀 (constant pool) 클래스 상수들이 모여 있는 곳 액세스 플래그 (access flag) 클래스 종류를 표시 this 클래스 (this class) 현재 클래스명 슈퍼 클래스 (super class) 부모클래스명 인터페이스 (interface) 클래스가 구현한 모든 인터페..
String vs StringBuilder vs StringBuffer 공통점은 문자열을 다루는 객체이다 차이점은 간단하게 정리하자면 아래와 같다 String - 불변 StringBuilder - 가변 StringBuffer - 가변 + 스레드 안전(동기화 지원) 특성 String StringBuilder StringBuffer 변경 가능성 불변 (Immutable) 가변 (Mutable) 가변 (Mutable) 스레드 안전성 X X O (동기화 지원) 1. String 객체부터 살펴보자 java.lang.String을 살펴보면, final이 붙어있어서 값을 바꿀 수 없음을 알 수 있다. 하지만 아래 예제를 보면 값이 변할 수 있다? String data = "합쳐"; data = data + "지는데오..