본문 바로가기

Java/Java 기본

(8)
SDKMAN 활용하여 JDK 버전 관리하기 JDK 버전 관리가 필요한 경우가 존재한다. 프로젝트에 참여하면 자바 버전 때문에 문제가 생기는 경우가 생긴다. 개별 프로젝트 스페이스 마다 다른 자바 버전을 사용하는 경우가 있기 때문이다. 그럴 경우 JDK 버전을 IDE 기능을 통해서 각 프로젝트 단위로 설정하는 방법도 존재하지만, SDKMAN 기능을 활용하여 JDK 버전을 관리하는 방법도 존재한다. 그 외에도 개별적으로 공부하는 컴퓨터에서도 기본 프로그램을 돌리기 위한 자바 8, 11을 사용하다가 최신 기능을 익히기 위해서 자바 17을 사용할 필요도 있다. 이런 다양한 경우의 수를 유연하게 대처하기 위해서는 JDK 버전을 유연하게 관리할 수 있는 방법을 알아두는 것 자체는 매우 유용하다고 본다. Chocolatey 설치하기 SDKMAN 프로그램은 자..
Reader 클래스 이것에 대해서 간단하게 알아보자 스프링 MVC 쇼케이스를 확인하다가 낯선 객체를 확인했다. public String requestReader(Reader requestBodyIs) Reader 클래스는 당최 무엇을 하는 녀석인고...? 생전 처음 보는 클래스에 당황했다. 들어가서 살펴보니 read() 메서드가 매개변수만 달리하여 여럿이 존재했다. 무엇인가 읽는 것인데... 키워드를 잡은 순간 생각을 멈추고 구글 신에게 도움을 요청했다. 그러자 연관 검색에서 InputStream 객체가 등장한 것을 보고, 아 입력을 받는 객체구나하고 깨달았다. 하지만 실제로 저 녀석을 쓴 것을 본 적이 없다. 비슷하게는 BufferedReader 클래스는 알고 있는데, 해당 객체의 원형에 해당하는 녀석인가? 찾아보니 실제로 그랬다. 여태껏 몰랐는데, R..
Java 5~18 핵심 변경점 간략하게 요약 관심이 있는 버전만 다룸. 깊이 있게 다루기 보다는 키워드만 제공하는 것을 목표로 함. 자세한 내용은 궁금한 내용을 키워드로 검색하면 세부적으로 잘 정리된 곳이 많으니 참고할 것. 또한 정식 버전이 아닌 Preview 버전 기능은 왠만해선 기입 안 하고 정식으로 등장한 버전 기능만 기입함. (예: 자바 12에 a라는 기능이 프리뷰로 선보임
8진수, 10진수, 16진수 표현방식 자바 및 C 언어에서는 숫자 앞에 특별한 기호를 붙여서 해당 숫자의 진수를 파악한다. 숫자 앞에 0 = 8진수 숫자 앞에 0x = 16진수 int a = 024 정수형 변수 a에 8진수 024를 할당하라. int b = 0x24 정수형 변수 b에 16진수 0x24를 할당하라. 간단하게 정리!
String 객체의 문자열만 비교하고 싶다면 자바에서 문자열 비교는 ==, !=를 사용하지 않음. String은 객체이므로 비교 연산자를 활용하면 참조하고 있는 주소값이 같은지 아닌지를 확인함. 따라서, 객체의 주소값은 관심없고 문자열만 비교하고 싶다면 equals() 메소드를 사용함. 다음은 예시임. public class S2_EqualsString { public static void main(String[] args) { String value01 = "A"; String value02 = "A"; String value03 = new String("A"); System.out.println(value01 == value02); // true System.out.println(value01 == value03); // false System..
타입 변환 자바에서 타입 변환은 두 가지로 나눌 수 있다. 자동 타입 변환 강제 타입 변환 (Casting) 비교시 크기가 작은 타입을 크기가 큰 타입에 넣을 경우 자동 타입 변환이 이뤄짐. 반대로 크기가 크 타입을 작은 타입에 넣을 필요가 있는 경우에는 강제 타입 변환을 해야함. boolean = byte < char = short < int = float(1 + 8 + 23) < long = double(1 + 11 + 52) 크기는 순서대로 1byte, 2byte, 4byte, 8byte만큼 차지한다. 실수값을 표현하는 float, doulbe은 각각 23bit, 52bit에 해당하는 부분을 가수라고 하며, 정수를 담을 수 있는 크기임. 따라서, float는 크기가 큰 int 값을 온전히 담지 못하므로 이런 ..
입력된 값에 NaN이 있는지 검사하기 실수를 사용하면 NaN 검사는 필수임. NaN 값은 아무리 연산해도 NaN이 출력되므로 데이터가 엉망이 되어버리기 때문임. 따라서 검사해보고 NaN이 있다면 값을 초기화하는 메소드가 필요함. 저 방식 외에도 NaN - NaN 같은 방법도 된다고 함. public class JavaStudy { public static void main(String[] args) { String userInput = "NaN"; double doubleValue = Double.parseDouble(userInput); double currentBalance = 10000.0; if (Double.isNaN(doubleValue)) { System.out.println("NaN이 입력됨"); doubleValue = 0...
자바 변수는 일곱 가지가 있음 자바 공부, 혹은 자바 면접을 준비하면 반드시 접하는 게 자바 변수의 종류 및 정의임. 영어로 적으면 명확하지만 한글로 적으면 하나의 변수를 다른 명칭으로 표현하기도 해서 잠깐 살펴볼 필요가 있음. 그냥 1~7번 외우는 것은 내 취향이 아니니 기준을 잡고 암기했음. 데이터 타입 기본형 변수 참조형 변수 선언 위치 멤버 변수 (=전역 변수) 지역 변수 기준점은 크게 두 개로 볼 수 있음. 데이터 타입에 따른 변수는 두 개 있으며, 선언 위치에 따른 변수가 두 개 있음. 데이터 타입에 따른 변수는 위에서 언급한 것이 끝임. 반면에, 선언 위치에 따른 변수에는 하위 변수가 존재함. 멤버 변수 (=전역 변수) 클래스 변수 인스턴스 변수 지역 변수 매개 변수 멤버 변수 하위에 둘, 지역 변수 하위에 하나. 앞선 ..