반응형

Java 17

[Java] String = ""; vs new String("");

보통 자바를 처음 배울 때 String hello = "Hello, World"; 이렇게 작성 한 후 이걸 출력하는 예제를 따라칠 것 입니다. 그래서 자바를 처음 배우시는 분들은 new String()에 대해 생소하실 수 도 있습니다. 오늘은 두 방법의 차이점을 알아보겠습니다. public static void main(String[] args) { String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); String str4 = new String("Hello"); String str5 = new String("Hello").intern(); System.out.println(str1 == str2); // "Hel..

Java 2020.07.01

[Java] 배열을 ArrayList로 변환

배열을 ArrayList로 변환 하는 방법을 알아보고 그 반대의 경우도 알아보겠습니다. 배열 => ArrayList ```java public static void main(String[] args) { String[] arr = {"The", "URL", "of", "my", "blog", "is", "https://dhlee.dev"}; List list1 = java.util.Arrays.asList(arr); System.out.println(list1); List list2 = new ArrayList(Arrays.asList(arr)); System.out.println(list2); List list3 = new ArrayList(); Collections.addAll(list3, arr);..

Java 2020.06.30

[Java] LocalDateTime

JDK 8 이전에는 java.util.Date, java.util.Calendar클래스를 대체하기 위해서 Joda-Time 같은 오픈소스 라이브러리를 사용했었다고 합니다. 간단하게 위 두 클래스의 문제점을 알아보고 JDK 8부터 바뀐 Java의 날짜와 시간 API를 알아보겠습니다. 기존 날짜 API의 문제점(Naver D2블로그에서 참고하였습니다. ) 불면 객체가 아님(Not Immutable) : set으로 값 변경이 가능 int상수의 남용 : calendar.add(Calendar.SECOND, 2); 헷갈리는 월 지정 : 1월을 0으로 표현, 12월은 11 => 개발자들의 실수 유발 일관성 없는 요일 상수 : Calendar 클래스(일요일이 1)와 Date클래스(일요일이 0)간의 요일 지정값에 일관..

Java 2020.06.28

[Java] 배열을 복사하는 방법

복사의 종류 객체를 복사하는 유형은 객체의 주소를 복사하는 얕은 복사(Shallow Copy)와 객체를 완전히 복사하는 깊은 복사(Deep Copy)가 있습니다. 얕은 복사 객체의 주소를 복사하기 때문에 여러 객체가 같은 주소를 참조합니다. 그렇기 때문에 한 객체의 값을 변경하면 다른 객체의 값도 변경됩니다. 그렇기 때문에 대개 복사한다는 말은 깊은 복사를 의미합니다. int[] a = {1, 2, 3}; int[] b = a; print(b); a[0] = 100; print(b); Output 1, 2, 3 100, 2, 3 깊은 복사 객체의 실제 값을 새로운 객체로 복사합니다. 값만 같고 완전히 다른 객체이기 때문에 한 객체를 변경해도 다른 객체에 영향이 없습니다. 1차원 배열의 깊은 복사 방법으로..

Java 2020.06.17

[Java] Wrapper class와 Auto Boxing

Wrapper class ArrayList nubmers = new ArrayList(); // Invalid ArrayList numbers = new ArrayList(); // Valid primitive type의 데이터를 객체로 취급해야 하는 경우가 있습니다. 이럴 경우 primitive type의 데이터를 객체로 포장해주어야 하는데 이때 사용하는 클래스를 Wrapper class라고 합니다. 기본형 타입의 래퍼 클래스는 java.lang 패키지에 포함되어있습니다. 기본타입 래퍼클래스 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean Integert와 Characte..

Java 2020.06.16

[Java] java.util.Date와 java.sql.Date의 차이점 및 변환

차이점 java.util.Date 유닉스 시간(1970년 1월 1일 00:00:00 GMT)으로 부터 지정된 시간(milliseconds)을 년/월/일/시/분/초의 형태로 갖고 있습니다. java.sql.Date java.util.Date를 상속받으며 SQL Date 값으로 식별할 수 있도록 년/월/일의 정보를 갖고 있습니다. 변환 1. 생성자 java.util.Date utilDate = new java.util.Date(); long currentMilliseconds = utilDate.getTime(); java.sql.Date sqlDate = new java.sql.Date(currentMilliseconds); System.out.println("utilDate = " + utilDate);..

Java 2020.06.14