Object Oriented Programming객체지향 프로그래밍이란, 기능이 아닌 객체가 중심이 되어, 객체에 따른 역할과 서로 다른 객체 간의 관계를 정의하여 개발하는 기법을 말한다.객체라는 작은 단위로 쪼개어 개발하기 때문에 확장성과 유지보수에 용이하다.객체의
정말 많은 사람이 사용하는 언어이다.오류 해결을 위한 레퍼런스를 찾기 쉽다.2023년 2월 Pypl( PopularitY of Programming Language ) 기준, 2위이다.운영체제에 의존적이지 않다. ( 독립적이다 )JVM(Java Virtual Machi
Java Virtual MachineOS에 종속받지 않고 CPU가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터프로그래머가 .java 파일 구성Java Compiler ( JDK - javac.exe )가 .class라는 Java Bytecode로 변환JVM이 .
GC: Garbage Collection, Collector > 특징 Heap 영역에 동적으로 할당된 변수, 메소드, 클래스들 중 필요 없어진 것을 주기적으로, JVM이 알아서 삭제하는 프로세스 C, C++는 프로그래머가 수동으로 메모리 할당과 해제를 해줘야 하는
함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다.임시 공간 : JVM - Runtime Data Area - JVM Stack함수 호출 시 인자로 전달되는 변수(매개변수)의 값을 복사하여 함수의 인자로 전달한다.함수 안에서 인자 값이
새로운 값을 할당할 때마다 새로 클래스에 대한 객체가 생성된다.String에서 저장되는 문자열은 private final char\[]의 형태이기 때문에 바꿀 수 없다.각각의 String 주소값이 Stack에 쌓이고, GC가 호출되기 전까지 Heap에 쌓인다.메모리 관
abstract 키워드와 함께 원형만 선언하고, 내부를 구현하지 않은 메서드abstract 키워드로 선언된 클래스추상 메서드를 최소 한 개 이상 가지고 abstract로 선언된 클래스추상 메서드가 없어도 abstract로 선언한 클래스구현자식 클래스에서 부모 클래스의
JDK 1.5에 등장C++의 Templete, Typescript의 Generic 과 비슷하다.일반화된 타입 매개 변수로 클래스나 메서드를 선언하는 기법Stack<T>, Map<T, K> 등이 있다모든 타입을 대신할 수 있는 와일드카드 타입Stack<?
Java에서 제공하는 Generic한 자료구조 프레임워크대표적인 선형 자료구조순서가 있는 데이터를 이용할 수 있도록 만들어진 인터페이스배열 + 동적 크기 할당Object\[] 배열을 사용흔히 사용하는 원시 타입 배열 Object\[] arr = new Object\[1
자바에서 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩하여 생성자, 맴버 필드, 맴버 메서드 등을 사용할 수 있는 기법이다.클래스의 패키지 정보, 접근 지정자, 슈퍼 클래스, 애노테이션 등을 얻을 수 있다.컴파일 시간이 아니라 런 타임에 동적으로 특정
직역하자면 주석이라는 의미를 가진다.자바 소스 코드사이에 @ 기호를 붙여 사용하는데, Java 5에서 추가된 기능이다.컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공런타임동안 특정
어떤 객체가 사용을 마치고 나면 연결을 끊기 위해 close() 라는 메서드를 호출해야 한다고 가정하자.그런데 이 객체에 logic()을 실행하던 도중, 에러가 발생하여 close() 메서드가 호출되지 않고 프로그램이 종료 되어버렸다.예제 코드에서는 실제 DB와 연결되
What's New in JDK 8Java 8 이전의 익명 클래스 대신 람다를 이용하여 간결하고 직관적으로 구현 가능특정 메서드만을 호출하는 람다의 축약형인터페이스에서 메소드를 구현할 수 있는 default 키워드 추가.NPE( Null Pointer Exception
함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고, 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. - 위키백과람다를 이해하기 위해선 먼저, 함수형 프로그래밍에 대한 개념의 이해가 필요하다.함수형 프로그래밍은 절차지향과 객체지향처럼 하나의
Java 8에서 추가된 인터페이스 중 하나이다.기존에 배열과 Collection 들을 다룰땐, for이나 foreach를 통해 반복하는 방법을 사용했다.간단한 경우라면 상관없지만, 로직이 복잡해질수록 코드의 양이 많아지고 섞이게 되면서 한눈에 알아보기도 쉽지 않고, 메
Null을 직접 다룰때 NPE( Null Point Exception )이 발생하는 위험성이 있다.이 문제를 보완하기 위해 null이 등장할 위험이 있는 객체에 대해 Optional을 감싸(Wrapper) 해결하기 위해 등장했다. 그런데 이 과정에서 오버헤드가 발생하