profile
이것저것하고 싶은 개발자

[JAVA] Diamond Type과 Non reifiable vararags 타입

JAVA7에서는 Generic을 사용할 때 아래 처럼 생성자에 해당 타입을 상세하게 명시하지 않아도 된다.왜냐하면, 이미 변수를 선언할 때 필요한 타입들을 지정해 놓았기 때문이다. 그래서 "<>"로 표시하면 컴파일러가 알아서 해당 생성자 타입을 지정해버린다.이처럼

2일 전
·
0개의 댓글
·

[JAVA] JAVA9에서 추가된 내용

JAVA 9에서의 중요한 업데이트와 기능들을 정리하였다.모듈 시스템(Project Jigsaw)Java 9의 가장 큰 변경 사항 중 하나는 Java Platform Module System (JPMS)의 도입임이 모듈 시스템은 애플리케이션을 더 작고, 관리하기 쉬운 구

3일 전
·
0개의 댓글
·

[JAVA] JAVA8에서 추가된 내용

JAVA 8에서의 중요한 업데이트와 기능들을 정리하였다.람다 표현식(Lambda Expressions)JAVA8에서 가장 주목 받는 기능 중 하나가 바로 람다 표현식.간결한 코드 작성을 가능하게 하며, 함수형 프로그래밍을 지원함.람다 표현식을 사용하면 간단한 클래스들

3일 전
·
0개의 댓글
·

[JAVA] Fork/Join Framework

JAVA7에서 병렬 작업을 쉽게 작성할 수 있도록 새로 추가된 프레임워크이다.Unix/Linux에서의 fork() 함수와 이름만 비슷할 뿐, 기본적인 동작 방식과 사용 목적에서 상당한 차이가 있다.JAVA의 Fork/Join FrameworkJAVA의 Fork/Join

4일 전
·
0개의 댓글
·

[JAVA] JAVA7에서 추가된 내용

JAVA 7에서의 중요한 업데이트와 기능들을 정리하여 보았다.언어 개선 프로젝트(Project Coin)이진 리터럴과 숫자 리터럴의 밑줄 사용 : 숫자를 더 쉽게 읽을 수 있도록 밑줄("\_")을 사용하여 숫자를 구분할 수 있게 되었음다중 예외 처리 : 아래와 같이 하

4일 전
·
0개의 댓글
·

[JAVA] try-with-resources

JAVA7에서 추가된 try-with-resources 구문은 자원을 효율적으로 관리하기 위한 방법 중 하나이다. 이 구문은 파일, 네트워크 연결 또는 데이터베이스 연결과 같은 자원을 사용한 후 자동으로 해제하도록 설계되었다. 이전에는 'finally'블록에서 자원을

5일 전
·
0개의 댓글
·

[JAVA] TCP/UDP

JAVA에서 네트워크 통신을 하기 위해서는 기본으로 제공되는 클래스는 TCP 통신을 위한 Socket 클래스와 UDP 통신을 위한 Datagram 관련 클래스로 나뉜다.또한 간단하게 웹에 접속하고 데이터를 처리하는 URL 클래스가 있긴 하지만, 섬세한 설정이 불가능하기

2024년 4월 23일
·
0개의 댓글
·
post-thumbnail

[JAVA] Serializable와 NIO

JAVA 개발을 하다보면 데이터를 파일, 데이터베이스 또는 다른 컴퓨터로 전송할 때 중요한 기술이 있는데, 그 중에 하나가 바로 객체직렬화(Serializable)이다.객체직렬화는 객체의 메모리 상태를 포함한 모든 정보를 바이트스트림(stream of bytes)형태로

2024년 4월 23일
·
0개의 댓글
·
post-thumbnail

[JAVA] Thread

어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말함( 위키백과, 스레드 )일반적으로 하나의 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라서 둘 이상의 스레드를 동시에 실행할 수 도 있다. 이러한 실행 방식을 멀티 스레드라고 함자

2024년 4월 22일
·
0개의 댓글
·

[JAVA] Generic

자바에서 제너릭은 코드의 유연성과 타입 안전성을 향상시키는 중요한 기능이다. 제너릭을 사용하면 클래스, 인터페이스, 메소드를 다양한 타입의 객체들과 함께 사용할 수 있다. 이러한 특성은 코드 재사용성을 증가시키고, 컴파일 시간에 타입 체크를 통해 안정성을 높인다.제너릭

2024년 4월 16일
·
0개의 댓글
·

[JAVA] Lombok

getter, setter, 생성자, toString(), equals()와 hashCode() 메소드 같은 표준 자바 코드는 필수적이지만, 매번 작성하기는 번거롭다. 이런 문제를 해결하기 위해, Lombok 라이브러리는 자바 개발을 단순화하고, 보다 깔끔한 코드로 유

2024년 4월 16일
·
0개의 댓글
·

[JAVA] String에서의 equals(), compareTo() 차이

String 클래스의 equals()와 compareTo() 메소드의 차이를 알아보자.이 두 메소드는 비슷한 기능을 수행하는 것 처럼 보일 수 있지만, 사용 목적과 동작 방식에 있어서 중요한 차이점이 있다.'Object' 클래스에서 상속받은 메소드로, 두 객체의 동등성

2024년 4월 16일
·
0개의 댓글
·
post-thumbnail

[JAVA] 익명 클래스

자바에서 익명 클래스는 이름없이 선언되고 인스턴스화되는 클래스로, 일반적으로 단일 인스턴스가 필요한 경우에 한정해 사용된다. 이러한 특성 때문에, 익명 클래스는 주로 인터페이스의 구현이나 추상 클래스의 확장에 사용되며, 콜백메서드, 이벤트 리스너 설정, 일회성 작업의

2024년 4월 16일
·
0개의 댓글
·

[JAVA] 내부 클래스

내부 클래스는 그 이름에서 알 수 있듯이, 하나의 클래스 안에 또 다른 클래스가 정의되어 있는 형태를 말한다. 이 구조는 특정 클래스 내에서만 사용되는 보조 클래스를 그 범위 내에서만 유지하여 외부에는 노출시키지 않는 캡슐화를 강화할 수 있다. 내부 클래스는 주로 외부

2024년 4월 16일
·
0개의 댓글
·

[JAVA] Annotaion

JAVA에서 어노테이션은 코드에 대한 메타데이터를 제공하는 강력한 매커니즘이다.이들은 컴파일 타임에 처리될 수도 있고, 런타임 시에 리플렉션을 통해 조회될 수도 있다. 어노테이션은 코드의 가독성을 높이고, 오류의 가능성을 줄이며, 반복적인 코드를 줄이는 데 도움을 준다

2024년 4월 10일
·
0개의 댓글
·

[ JAVA] try-catch-finally

오류와 예외는 JAVA 프로그램 실행 중 발행할 수 있는 문제점들을 나타내지만, 그 성격과 대응 방법에 있어서 차이가 있다.시스템 레벨에서 심각한 문제를 나타낸다. ( 예를 들어 "OutOfMemoryError", "StackOverflowError" 와 같은 에러 )

2024년 4월 10일
·
0개의 댓글
·

[JAVA] JAVA8에서의 Interface

JAVA8에서 인터페이스와 관련해 크게 변화된 점은 바로 디폴트 메서드(Default Methods)와 정적 메서드(Static Methods)를 인터페이스 내에 추가할 수 있게 된 것이다. 이러한 변경은 JAVA의 인터페이스에 더 많은 유연성을 부여하고, 람다 표현식

2024년 4월 10일
·
0개의 댓글
·

[JAVA] StringBuffer와 StringBuilder

아래와 같이 Literal 하게 String 변수인 strA, strB를 선언한 뒤, 이 두개의 변수를 "+"연산으로 합치면 어떻게 될까? 물론 strC가 "test1test2"로 될 것이다. 실행 결과strA : test1strB : test2strC : test1t

2024년 4월 10일
·
0개의 댓글
·

[JAVA] 추상클래스와 인터페이스

추상 클래스와 인터페이스는 객체 지향 프로그래밍에서 중요한 역할을 하며, 둘 다 추상화를 제공한다. 그러나 사용하는 시나리오와 제공하는 기능에 차이가 좀 있는데, 이를 선택하는 기준을 이해하기 위해서 추상클래스와 인터페이스가 뭔지 소개한다.추상 클래스는 하나 이상의 추

2024년 4월 10일
·
0개의 댓글
·
post-thumbnail

[JAVA] Inheritance(상속)과 Composition(조합)

한 클래스가 다른 클래스의 속성과 메소드를 물려받는 매커니즘이를 통해서 기존 소스코드를 재사용하고 확장할 수 있으며, 계층구조를 통해 클래스 간의 관계를 명확히 할 수 있음장점코드 재사용 : 공통적인 로직을 부모 클래스에 정의하고, 여러 자식 클래스가 이를 상속받을 수

2024년 4월 2일
·
0개의 댓글
·