Java Plan Archive
-plan 이 붙은 jar 파일이며 에플리케이션 실행에 필요한 모든 의존성이 포함되지 않는 파일이며 소스코드와 리소스 파일만 포함된다. 이런 jar 파일을...
54 posts in this category
-plan 이 붙은 jar 파일이며 에플리케이션 실행에 필요한 모든 의존성이 포함되지 않는 파일이며 소스코드와 리소스 파일만 포함된다. 이런 jar 파일을...
equals를 재정의 하지 않아도 되는 상황 equals는 재정의 하지 않는 것이 최선이다. 각 인스턴스가 본질적으로 고유하다. ex. singleton 객체, enum...
최초의 Java에서는 GC작업에 애플리케이션의 사용자 코드가 관여하지 않도록 구현되어 있었지만 GC작업에서 좀 더 다양한 방법으로 객체를 처리하기 위해 JDK1.2부터 java.lang.ref...
더 이상 사용하지 않는 객체를 GC할 때 자동으로 삭제해주는 Map
: 오래된 방식의 간단한 자바 오브젝트
//todo: heap pollution
객체지향에서 객체를 만드는 인스턴스화를 막는다니 이게 뭔소리인가 싶지만, 주로 유틸리티성 클래스같이 정적 메소드로만 이루어져 있는 클래스들은 객체를 생성할 필요가 없다....
Java Object Serialization Spec
1. 문제의 발생과 배경 알고리즘을 풀다가 리스트를 enhanced for loop(for each)를 통해 순회하며 List.remove()연산을 해야 하는 상황이 있었다. 필자는 아무렇지...
향상된 for 루프 - Enhanced for loop
장점 객체 생성에 대해 이름을 가질 수 있다. 동일한 시그니처의 생성자를 여러개 가질 수 없다.
Array 배열 선언 ```java ///////////1차원/////////// int[] arr1 = new int[100]; int[] arr2 = new int[]{1, 2, 3, 4}; int[] arr3...
열거타입을 이용하면 변수를 선언할 때 변수타입으로 사용가능 특정 값만 가져야 한다면 열거형 사용 상수를 열거형 대신해서 사용했던것
종류 기본형 타입(primitive data type) 총 8가지의 기본형 타입(Primitive data type)을 미리 정의하여 제공 기본값이 있기 떄문에 Null if null...
특징 1. 객체 지향 프로그래밍(OOP) JAVA는 상속, 캡슐화(은닉성), 다형성, 추상화를 제공한다. OOP참고
서로 연관됨 클래스 또는 인터페이스들을 묶어 놓은 묶음 클래스들이 필요할 때만 사용될 수 있도록 함 클래스를 패키지 이름 과 함께...
해당 문법은 try(...)에서 선언된 객체들에 대해 try가 종료될 떄 자동으로 자원을 해제해주는 기능히다.
Annotation은 그자체로 주석이라는 의미를 가진다. 하지만 일반 주석이랑 다르다! JDK5 버전부터 사용할 수 있다. @를 붙여서 사용한다. Reflection을 이용해 Class의...
java.util.concurrent.atomic에 정의 되어 있고 멀티 쓰레드 환경에서 동기화에 의존하지 않고, 원자성을 보장하게 해주는 Atomic API에 대해 소개하려고 한다.
Callable과 Future Callable은 Runnable과 다르게 작업(task)의 결과를 받을 수 있다. 그리고 ExecutorService를 이용해 Callable의 작업물을 Future객체로 감싸서 받을 수 있다....
로딩 → 링크 → 초기화
비동기 - Asynchronous 프로그래밍에 대한 여러 기능을 제공하는 인터페이스. 공식 문서
Enumeration 와 Iterator는 서로 동작하는 것이 비슷하다. 먼저 이 두 개를 알기 전에 Fail-fast 방식에 대해 알아야 한다.
오류(Error)와 예외(Exception)
배경
: Java Programing 언어에서 class들이 구현해야 하는 동작을 지정하는데 사용하는 추상 자료형이다. interface라는 키워드를 사용하여 선언한다. 메소드 시그니처(Method sigature), 상수...
Java Beans
1. 현재 동작하는 java의 버전을 확인한다.
Java8 이전
JCF - Java Collection Framework
JVM - Java Virtual Machine WORA - Write Once Run Anywhere JVM으로 Java byte code(.class파일)를 OS 특화된 코드로 변환(인터프리터, JIT컴파일러)하여...
이 md는 Java7버전 기준으로 작성되었습니다.
등장 배경
: 연속적인 요소(element)들에 대한 순차/병렬 aggregate operations를 지원하는 API이다. Sequence of elements supporting sequential and parallel aggregate operations 데이터를 담는...
Java를 만든 사람들은 객체지향 언어를 설계할 때 모든 것을 객체로 만들지 않고 원시형 - Primitive Type를 보유하여 성능을 개선했다. 원시형은...
synchronized 키워드는 Multi-Thread 환경에서 여러개의 쓰래드가 하나의 공유 변수에 동시에 접근할 때 경쟁상태 - Race Condition이 발생하지 않도록 한다.
volatile 키워드는 Java "변수를 Main Memory에 저장하겠다"라는 것을 명시하는 것이다.
왜 사용할까? 객체지향 프로그래밍에서 모든 것은 객체로 다루어져야 한다. 그렇지만, Java는 성능상의 이유로 8개의 기본형(Primitive Type)을 객체로 다루지 않는다.
런타임에 특정 인터페이스들을 구현하는 클래스 또는 인스턴스를 만드는 기술 공식문서
람다 표현식 : 간단히 메소드를 하나의 식으로 표현한 것이다.
: 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩(Dynamic Loading)하여 생성자(Constructor), 멤버 필드(Member Variables) 그리고 멤버 메서드(Member Method) 등을...
: Lambda 표현식을 더 간단하게 표현하는 방법이다. 메소드 레퍼런스를 이해 하려면 Lambda를 먼저 이해해야 한다. 람다식이 구현되어있는 경우 사용할 수...
바이트코드 조작 활용 예시 1. 프로그램 분석 코드에서 버그 찾는 툴 시간 복잡도 계산
: 스레드 단위로 로컬 변수를 할당하는 기능을 제공하는 클래스이다 JDK1.2 부터 지원하고 java.lang패키지에 있다.
Oracle 공식문서
ByteBuddy와 CGlib로 class기반 생성을 할 수 있다.
추상 메서드가 1개만 있으면 모두 함수형 interface이다. 정적(static) 메서드, 디폴트(default) 메서드가 있을 수 있다. SAM(Single Abstract Method) @FunctionalInterface : Java...
: Spring IOC(Inversion Of Control)컨테이너가 관리하는 Java객체이며, Spring Bean Container에 존재하는 객체를 말한다. Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화,...
only buildscript {} and other plugins {} script blocks are allowed before plugins {} blocks, no other statements are allowed...
Java 진영에서 사용하는 Build Tool이다.
: 엔터프라이즈급 환경에서 사용하는 프로그램을 만드는데 적합한 자바 개발 버전이다. J2EE라고도 불렸다. (Java 2 Enterprise Edition) 지금은 JAVA EE라고 불린다....
LogBack은 SpringBoot에서 기본적으로 제공하는 logging(로깅)라이브러리다. log4j를 토대로 새롭게 만들었다 여러 단점 및 성능이 log4j보다 향상됐다.
: Java를 이용하여 웹페이지를 동적으로 생성하는 server side 프로그램이다. 웹 프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet...