[Kotlin] 변수와 자료형 (2) 까지 갈 생각은 없었으나 좀 길어질 것 같아서 나눴다. 지금 작성하려는 부분이 코틀린에서 자랑(?) 하는 nullable에 관한 이야기인 것 같아서이다. 코틀린을 구글에 검색해봐도 항상 나오는 이야기가 NullPointerException(NPE) 에 대한 예외를 예방할 수 있다는 장점이 있다. 프로그래머라면 NPE 오류는 한번 쯤은 겪어봤을 만한 이야기이다. 코틀린에서는 아예 이런 오류를 미리 방지할 수 있다. null을 허용한 변수 검사 코틀린은 변수를 사용할 때 반드시 값이 할당되어 있어야 한다는 원칙이 있다. 만약 값이 할당되지 않은 변수를 사용하려고하면 컴파일 오류가 발생한다. 코틀린에서도 값에 null을 할당할 수는 있지만 특별한 기호를 사용해야 한다. 바..
이 글은 그동안 자바만 공부했던 내가 코틀린 기본서를 읽으면서 자바와의 다른 점과 코틀린에 대해서 알게 된 점에 대해서 작성 즉 전체를 아우르지는 않는다.. 나만 알아보게 쓴다는 말임..ㅠㅠ_ㅠ 목표 변수 선언 방법 val과 var의 차이 자료형 (정수형, 문자형) 자료형 검사 is 연산자 코틀린에서 변수 선언하기 코틀린에서 변수를 선언할 때는 val, var라는 키워드를 이용해서 선언할 수 있다. val과 var이 차이점 val - 읽기 전용 변수로 선언 마치 자바에서 final로 선언한 것과 같다. 선언과 동시에 값을 초기화 해야하고 그 이후에 바꿀 수 없다. var - 최초에 값이 할당되었더라도 이후에 값을 변경할 수 있다. 가변 변수 선언 방법 val username: String = "코틀린" ..
작성하다가 보니 시간 변경과 비교하는걸 안 한 거 같아서 여기에 다시 작성함. 시간을 더하거나 빼는 것은 1편에서 plus** 또는 minus** 로 할 수 있음. 시간을 변경할 때는 with** 메서드로 변경할 수 있다. 시간 변경 private static void modifyDate() { LocalTime localTime = LocalTime.of(1, 15, 30) .withHour(1) //시간 변경 .withMinute(10) //분 변경 .withSecond(25) //초 변경 .withNano(100); //나노초 변경 System.out.println("localTime = " + localTime); LocalDate localDate = LocalDate.of(2021, 3, 25..
2021.03.25 - [Java] - JAVA8 java.time 훑어보기 - (1) 지난번에 이어 이번에는 날짜와 시간을 비교하고 간격을 나타낼때 사용하는 클래스와 날짜를 포매팅하는 방법에 대해서 작성 시간 간격을 알기 위해서는 Duration과 Period를 사용할 수 있는데 Duration을 시간 간격을 Period는 날짜 간격을 구할 때 사용한다. Duration Duration은 두 시간 객체사이의 간격을 알고싶을 때 사용한다. between 정적 메서드를 사용한다. private static void DurationPrint() { LocalTime startTime = LocalTime.of(15, 42); LocalTime endTime = LocalTime.of(16, 42); Dura..
java8 이전부터 사용된 Date 객체와 Calendar를 사용하지 말아야 할 이유 (직관적이지 않고 불변이 아닌 가변..)는 찾아보고 이미 java8이 나온지 엄청 지났고 여러 블로그에 정리가 잘 되어있지만 나도 java8부터 추가된 java.time 패키지에 추가된 클래스를 살펴보기로 함. 날짜와 시간 객체에는 크게 5가지가 있다. LocalDate - 날짜 정보만 제공 LocalTime - 시간 정보만 제공 LocalDateTime - 날짜와 시간 정보를 모두 제공 ZonedDateTime - 특정 타임존(TimeZone)의 날짜와 시간을 제공 Instant - 특정 시점의 Time-Stamp 그리고 이러한 클래스들은 모두 불변 객체이고 Thread-safe 하다. LocalDate 로컬 날짜 클..
java의 컬렉션인 List에 관한 예제에서 기본값을 넣어줄 때 List integerList = List.of(1, 2, 3, 4, 5); List integerList2 = Arrays.asList(1, 2, 3, 4, 5); of() 정적 메서드는 자바 9부터 추가된 메서드이다. 어쨌든 List 값을 넣어주는 것은 동일한 것 같은데 무슨 차이일까 궁금해서 검색해봄. Arrays.asList returns a mutable list while the list returned by List.of is immutable: asList는 불변객체가 아니고 of는 불변객체로 만들어준다. 크게 뭔가 와닿는건 없는데 stackoverflow를 첨부 나중에 더 깨닫게되면 다시 씀. stackoverflow.com..
기본형 특화 스트림인 IntStream과 LongStream에는 정적 메서드인 range와 rangeClosed가 있다. 특정 범위의 숫자를 차례대로 생성해주는 기능을 가진다. 두 메서드 모두 시작 값과 종료 값을 인수로 받는다. public static IntStream range(int startInclusive, int endExclusive) { ... } public static IntStream rangeClosed(int startInclusive, int endInclusive) { ... } 단 하나의 차이점이라면 함수의 인자값에도 힌트가 있듯이 range 메서드는 종료 값을 포함하지 않지만 (endExclusive) rangeClosed 메서드는 종료값을 포함해서 반환한다. (endIn..
Java8부터 추가된 Math 클래스의 정적 메서드를 실습해본다. 기본적으로 자바에 있는 클래스들의 정적 메서드를 많이 알고 활용하는 것이 소스코드의 가독성에서도 좋은 것 같다. 개발자가 구현하려고 하면 할수있지만 괜한 수고를 할뿐더러 예외처리까지 다 적용되어있는 정적 메서드를 쓰는 편이 마음이 편하다. 전부는 아니지만 몇가지만 살펴본다. 더하기 Math.addExact addExact 메서드로 덧셈을 실행한다. 인수값으로 int형 또는 long형 값이 들어올 수 있다. int형과 long형으로 오버로딩 되어있다. MAX값을 넘어서는 값을 보내면 ArithmeticException overflow가 발생한다. @Test @DisplayName("더하기") void addExactTest() throws ..
- Total
- Today
- Yesterday
- k8s
- 북리뷰
- JavaScript
- Mac
- input
- LocalDateTime
- Spring
- jQuery
- oracle
- rocky
- intellij
- localtime
- 베리 심플
- Kotlin
- mybatis config
- Spring Security
- LocalDate
- springboot
- Java
- Github Status
- elasticsearch
- mybatis
- docker
- Linux
- maven
- window
- config-location
- 오라클
- svn
- Bash tab
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |