Java - Locale 클래스

Locale은 지역의 언어, 국가 등의 정보를 갖고 있는 객체입니다. Locale 객체 생성 및 Locale이 지원하는 메소드들에 대해서 알아보겠습니다. Locale 객체 생성, Locale 정보 출력, Default Locale, 사용 가능한 모든 Locale. 다음과 같이 Locale을 생성할 수 있습니다. 인자 language로 전달되는 en은 Enlgish를 의미하고, country로 전달되는 인자 US는 미국, GB는 영국을 의미합니다.

30 Jan 2021

Java - List와 Set의 차이점

List와 Set의 차이점에 대해서 소개합니다. List는 순서가 있는 Collection입니다. List에 데이터를 넣는 순서가 보장되며, 그렇기 때문에 index로 특정 아이템을 가져올 수 있습니다. Set는 순서를 보장하지 않는 Collection입니다. 그렇기 때문에 index로 특정 아이템을 가져올 수 없습니다. List의 경우 순서가 보장되는 Collection이기 때문에, 다음과 같이 index로 특정 아이템을 가져올 수 있습니다.

05 Jan 2021

Java - split()으로 문자열을 자르기

Java의 String은 split() 메소드를 제공하며, 이 메소드로 문자열을 자를 수 있습니다. split()으로 문자열을 자르는 방법을 알아보겠습니다. String은 다음과 같은 split() 메소드들을 제공합니다.

05 Jan 2021

Java - substring()으로 문자열을 자르기

Java의 String은 substring() 메소드를 제공하며, 이 메소드로 문자열을 자를 수 있습니다. substring()으로 문자열을 자르는 방법을 알아보겠습니다.

05 Jan 2021

Java - forEach 사용 방법

forEach는 Java8에서 추가된 메소드이며, List, Map 등을 순회(Iterate)하는데 사용됩니다. List, Map, Set, Array에서 forEach를 사용하는 방법을 알아보겠습니다. List와 같은 Collection에서 forEach()는 다음과 같이 `Consumer`라는 함수형 인터페이스를 인자로 받습니다.

05 Dec 2020

Java - Thread.join()

Thread가 종료될 때까지 기다릴 때 Thread.join()을 사용할 수 있습니다. 예를 들어, Thread A는 Thread B에게 어떤 작업을 실행시키고 완료될 때까지 기다려야 할 때가 있습니다. 이럴 때 join()을 호출하면 A는 B의 쓰레드가 종료될 때까지 기다립니다.

04 Dec 2020

Java - getPath(), getAbsolutePath(), getCanonicalPath()

Java에서는 다음과 같이 File의 path를 가져오는 API를 제공합니다. getPath() File에 입력된 경로 리턴, getAbsolutePath() File에 입력된 절대 경로 리턴, getCanonicalPath() Resolved된 절대 경로 리턴. 이 API들을 소개하고 차이점에 대해서 알아보겠습니다.

30 Nov 2020

Java - Timer, TimerTask

Timer를 이용하여 TimerTask(Runnable)이 특정 시간에 실행되도록 만들 수 있습니다. 또는 일정 주기로 실행되도록 만들 수 있습니다. 이 글에서는 Timer를 사용하는 방법을 소개합니다. 일정 시간이 지난 뒤에 Task 실행, 정해진 시간에 Task 실행, 일정 시간 간격으로(주기적으로) Task 실행

30 Nov 2020

Java - Number Class

Number 클래스는 Abstract 클래스로, Short, Integer, Double 등의 클래스들은 Number 클래스를 상속합니다. Number 클래스는 다음 메소드들을 Abstract로 정의하였고, Number를 상속하는 클래스들은 intValue, doubleValue 등의 메소드들을 구현하였습니다. 이 메소드들은 Long, Double 등이 갖고 있는 value를 primitive type으로 변환하는 역할을 합니다.

18 Nov 2020

Java - Float을 Byte 배열로 변환, Byte배열을 float으로 변환

Float을 Byte array로 변환하거나, Byte array를 Float으로 변환하는 방법을 소개합니다.

25 Oct 2020

Java - instanceOf 연산자

instanceOf 연산자는 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용하는 연산자입니다. instanceOf를 어떻게 사용하고, 어떻게 동작하는지 알아보겠습니다.

25 Oct 2020

Java - printf()로 문자열 포맷 출력

Java에서 System.out.printf()으로 어떤 형식의 문자열을 출력할 수 있습니다. 예를 들어, 다음과 같이 인자로 format과 변수들을 전달하면 형식에 맞게 출력됩니다. %s는 순차적으로 world와 java의 값으로 변환되어 문자열이 출력됩니다. `%s`외에 다양한 지시자들은 제공합니다.

25 Oct 2020

Java - 변수의 유효 범위 (Variable Scope)

Java에서 변수를 선언했을 때, 그 변수가 접근이 가능한 범위가 있습니다. 예를 들어, for문 내에서 선언한 변수는 for 밖에서 접근할 수 없습니다. 변수에 접근할 수 있는 유효 범위를 나타내는 Variable Scope에 대해서 알아보겠습니다.

25 Oct 2020

Java - 익명 클래스(Anonymous class)

익명 클래스는 Inner class로, 이름이 없는 클래스를 말합니다. 클래스 정의와 동시에 객체를 생성할 수 있습니다. Interface, Class 모두 익명 클래스로 객체를 만들 수 있습니다.

24 Oct 2020

Java - 객체 비교 (==, equals, Comparable, Comparator)

Java에서 다음과 같은 operator 또는 메소드로 객체를 비교할 수 있습니다. == 연산자, equals(), Objects.equlas(), Comparable, Comparator

24 Oct 2020

Java - List에서 특정 문자열이 들어있는지 확인

ArrayList에 특정 String이 있는지 확인하는 방법을 소개합니다. List.contains()를 이용하면 간단히 특정 문자열을 찾을 수 있습니다. for를 이용하여 간단히 구현할 수도 있습니다. Stream을 이용하여 리스트에서 특정 문자열을 찾을 수 있습니다. for처럼 Iterator를 이용하여 Loop를 만들고 원하는 문자열을 찾을 수 있습니다.

24 Oct 2020

Java - Method Signature

Method signature는 자바에서 메소드를 정의할 때 메소드를 구별하는 기준입니다. 메소드의 이름이 같더라도 인자가 다르면 메소드 정의가 가능하며(Method Overloading), 이것은 Method signature가 다르기 때문입니다. 만약 Method signature가 같으면, 이미 정의된 메소드라는 에러와 함께 컴파일이 실패합니다.

24 Oct 2020

Java - Primitive Type Casting (형변환)

Primitive type은 int와 같은 자바에서 기본적으로 제공해주는 타입을 말합니다. 이런 타입들은 클래스가 아니며, 상속으로 재가공이 불가능한 타입입니다. 여기서는 Primitive type의 Casting(형변환)에 대해서 알아보겠습니다.

24 Oct 2020

Java - 삼항연산자

Java는 삼항연산자를 제공합니다. 삼항 연산자는 if else를 간단히 한줄로 표현할 수 있게 합니다. 경우에 따라서 if else보다 삼항연산자를 사용하여 가독성이 좋아지는 경우도 있습니다. 이 글에서는 삼항연산자를 사용하는 방법에 대해서 알아보겠습니다.

24 Oct 2020

Java - 문자열을 연결하는 방법(concat, StringBuilder, format)

Java에서 문자열을 서로 연결하여 합쳐진 문자열을 만드는 방법을 소개합니다. + 연산자를 이용한 방법, StringBuilder, String.concat, String.format을 이용하는 방법이 있습니다.

22 Oct 2020

Java - 문자열 공백제거 (trim, replace)

문자열의 공백을 제거하는 방법을 소개합니다. String.trim()은 문자열 앞 뒤의 공백을 제거합니다. 문자열 중간에 있는 공백은 제거하지 못합니다. replace()를 이용하면 문자열 가운데 있는 공백을 제거할 수 있습니다.

20 Oct 2020

Java - 반올림해서 소수점 n번째 자리까지 출력

반올림해서 소수점 n번째 자리까지 출력하는 방법을 소개합니다. 가장 간단한 것은 String.format()을 이용하는 방법입니다. Math.round()를 이용하여 소수점 n번째 자리까지 출력할 수 있습니다.

20 Oct 2020

Java - BufferedReader, BufferedWriter 예제

BufferedReader, BufferedWriter는 Buffer를 이용하여 데이터를 읽거나 쓰도록 구현된 클래스입니다. 데이터를 읽거나 쓸 때마다 I/O에 접근하지 않고 Buffer에 저장해둔 것을 읽거나 Buffer에 쓰기 때문에 I/O 작업 빈도가 적습니다. I/O에 접근하는 빈도가 적기 때문에 이로 인해 Application의 성능이 좋아집니다.

18 Oct 2020

Java - Generics (제네릭)

Java의 Generics는 여러 타입을 지원하는 클래스를 정의하는, 추상화하는 방법입니다. 컴파일될 때 Type checking을 하기 때문에 형변환을 하지 않아도 되고, 버그를 줄일 수 있습니다.

18 Oct 2020

Java - throw와 throws의 차이점

throw와 throws 키워드는 비슷하지만 다른 용도로 사용됩니다. throw는 Exception을 발생시킬 때 사용하는 키워드입니다. 만약 어떤 연산을 하다가 예상치 못한 일이 발생했을 때 Exception을 발생시켜 예외가 처리될 수 있도록 합니다. 반면에 throws는 메소드를 정의할 때 사용하며, 이 메소드에서 발생할 수 있는 Exception을 명시적으로 정의할 때 사용합니다.

20 Sep 2020

Java - 접근제어자(Access Modifier)

Java의 접근제어자(Access Modifier)에 대해서 알아봅니다. 접근제어자는 클래스 내부 또는 외부에서 어떤 메소드나 필드(변수)에 접근을 제어합니다. 여기서 접근은 메소드를 호출하거나, 변수의 값을 읽거나 설정하는 것을 말합니다. 심지어 클래스도 접근을 제어하여, 외부에서 생성하게 하거나 못하게 하거나 결정할 수 있습니다.

15 Sep 2020

Gson - Java Object, JSON Object 변환

Gson은 JSON 구조의 객체를 Java 객체로 직렬화(Serialize), 역직렬화(Deserialize)를 도와주는 라이브러리입니다. 즉, JSON 객체를 Java 객체로, 또는 그 반대로 변환해주는 라이브러리입니다. Array를 Json으로, Map을 Json으로, Set을 Json으로 변환도 가능합니다. 또는 그 반대도 가능합니다.

12 Sep 2020

Java - final, finally, finalize의 차이점

Java의 final, finally, finalize는 전혀 다른 내용이지만, 이름이 비슷하여 헷갈릴 수도 있습니다. 이 글에서는 다음 내용들이 무엇인지, 어떻게 사용하는지 알아보겠습니다. final 키워드는 클래스, 메소드, 변수, 인자를 선언할 때 함께 사용할 수 있습니다. finally 키워드는 try-catch가 종료될 때 수행되는 block입니다. finalize()는 GC에 의해 호출되는 메소드입니다.

18 Jul 2020

Java - Static 키워드 이해하기

Java의 static keyword는 field, method, class에 적용할 수 있습니다. static 키워드의 공통점은 객체와의 분리입니다. 객체를 생성하지 않고 접근할 수 있습니다. 또한, 어떤 클래스 아래에 static 변수, 메소드, 클래스를 선언하여 관련있는 내용들을 한 곳에 모을 수 있습니다. static keyword를 사용하여 선언하였을 때 어떤 차이점이 있는지 알아보겠습니다.

18 Jul 2020

Java - Final 키워드에 대한 이해

클래스, 메소드, 변수에 final을 붙이면 시간이 지나도 처음 정의된 상태가 변하지 않는 것을 보장한다는 의미입니다. static 변수에도 final을 붙일 수 있으며, final 변수를 선언할 때 바로 초기화를 하지 않고 if문이나 생성자에서 초기화할 수 있습니다. Java8에서는 Effective final 기능이 추가되었으며 어떤 상황에서 일반 변수를 암묵적으로 final로 취급합니다.

04 Jul 2020

Java - Lambda, 익명 클래스에서 final 변수를 참조해야하는 이유

Lambda 또는 익명 클래스(Anonymous class)에서 외부에 정의된 변수를 참조할 때는 꼭 final, 또는 effective final 변수만 참조해야 합니다. non-final 변수를 참조하려고 하면 컴파일 에러가 발생하기 때문에 사용할 수도 없습니다. 왜 final을 써야 하는지에 그 이유에 대해서 알아보려고 합니다.

04 Jul 2020

Java - split, substring으로 문자열을 자르기 & 분리하기

String.split(), String.substring()으로 문자열을 자를 수 있습니다. 또한 Commons-io 라이브러리를 이용하여 문자열을 자를 수 있습니다. split은 정규표현식을 인자로 받으며, 그 문자열을 기준으로 String을 자를 수 있습니다. substring()는 index를 기준으로 문자열을 자릅니다.

24 May 2020

Java - Generics에서 Covariance, Contravariance 개념 이해하기

Generics에서 Invariance, Covariance, Contravariance의 개념을 설명하고 어떤 상황에서 이런 개념을 사용하는지 설명하려고 합니다. 이런 개념들은 클래스들의 상속관계에 따라서 Generics에서 객체의 관계를 결정하는 것을 의미합니다.

10 Apr 2020

Java의 Effectively final이란 무엇인가?

Java8에서 final이 붙지 않은 변수의 값이 변경되지 않는다면, 그 변수를 Effectively final이라고 합니다. Effectively final은 익명 클래스 내부에서 접근할 수 있습니다. 개발자의 의도를 알 수 있게 명시적으로 final을 붙여주는 것이 좋을 것 같은데요. 요즘 트렌드에 맞춰 추가된 기능인 것 같습니다.

09 Apr 2020

Java - 정규표현식(regex), 다양한 예제로 쉽게 이해하기

정규표현식(Regular expressions), Regex는 문자열에서 어떤 패턴을 찾는데 도움을 줍니다. Regex의 Metacharacters, Quantifiers, Grouping에 대해서 정리하였고 다양한 예제로 설명합니다. Regex는 대부분 알고 있지만, 적용할 표현들이 헷갈렸다면 이 글을 참고하시면 좋을 것 같습니다.

26 Jan 2020

Java - Thread 우선순위(Priority)를 설정하는 방법

쓰레드(Thread)마다 우선순위(Priority)를 다르게 설정할 수 있습니다. 시스템이 busy할 때 우선순위가 높은 쓰레드에게 먼저 CPU를 할당해 줍니다. 우선순위는 1부터 10까지의 숫자로 설정할 수 있으며 MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY의 static 변수를 제공합니다.

17 Nov 2019

Java - Runnable과 Callable의 차이점 이해하기

Thread는 Runnable과 Callable의 구현된 함수를 수행한다는 공통점이 있습니다. 하지만 Runnable은 어떤 객체도 리턴하지 않지만 Callable은 특정 타입의 객체를 리턴한다는 차이점이 있습니다. Thread 외에 ExecutorService도 이 둘을 구현 메소드를 수행할 수 있습니다.

03 Nov 2019

Java - Reflection 쉽고 빠르게 이해하기

자바의 리플렉션(Reflection)은 클래스, 인터페이스, 메소드들을 찾을 수 있고, 객체를 생성하거나 변수를 변경할 수 있고 메소드를 호출할 수도 있습니다. Reflection은 Class, Constructor, Method, Field와 같은 정보를 가져올 수 있습니다. 정보를 찾는 방법과 메소드 호출 및 변수를 변경하는 방법에 대해서 알아보겠습니다.

14 Oct 2019

Java - Try-with-resources로 자원 쉽게 해제하기

try-with-resources는 try(...)에서 선언된 객체들에 대해서 try가 종료될 때 자동으로 자원을 해제해주는 기능입니다. 객체가 AutoCloseable을 구현하였다면 Java는 try구문이 종료될 때 close()를 호출해 줍니다. 코드를 간결하게 만들어 읽기 쉽고 유지보수가 좋은 코드를 작성할 수 있게 도와줍니다.

01 Oct 2019

Java - indexOf(), lastIndexOf()으로 문자열의 위치 찾기

자바 String의 indexOf()와 lastIndexOf()의 사용 방법에 대해서 정리하였습니다. indexOf와 lastIndexOf는 String에서 특정 문자열의 인덱스를 찾는데 사용하는 메소드입니다.

18 Jul 2019

Java - String의 startsWith(), endsWith() 사용 방법

자바 String의 startsWith(), endsWith() 메소드의 사용 방법 및 예제를 소개합니다. startsWith()는 어떤 String이 특정 문자열로 시작하는지를 boolean 타입으로 리턴해줍니다. 반대로 endsWith()는 특정 문자열로 끝나는지 boolean 타입으로 리턴해줍니다.

18 Jul 2019
codechachaCopyright ©2019 codechacha