Lambda Expression
Lambda Expression java 8부터 추가된 Lambda Expression(람다식)이란 함수를 하나의 식(expression)으로 표현한 것이다. 람다식 이전 ```java public interface Goods { public void doSome(); } public class Computer implements Go...
Lambda Expression java 8부터 추가된 Lambda Expression(람다식)이란 함수를 하나의 식(expression)으로 표현한 것이다. 람다식 이전 ```java public interface Goods { public void doSome(); } public class Computer implements Go...
Immutable(불변) 자바의 객체의 타입에는 Immutable(불변) 타입과 mutable(가변) 타입이 있다. new 연산자로 객체를 생성하면 heap 영역에 객체가 생기고 래퍼런스 값을 가지는 변수가 stack에 생길 것이다. 불변 객체라는 것은 이 객체의 값을 heap영역에서 바꿀 수 없다는 뜻이다. 오직 새 객체를 만들어 래퍼런스 값을...
마샬링과 직렬화 직렬화와 마샬링은 거의 비슷하게 사용된다. 위에 사진과 같이 마샬링이 직렬화보다 더 큰 범위를 가지며, 직렬화는 마샬링의 한 부분이다. 마샬링 (Marshalling) 마샬링은 직렬화와 거의 비슷한데 다른점은 코드베이스를 포함하여 객체를 직렬화 한다. 코드베이스? 코드베이스는 객체를 받는이에게 이 객체의 구현을 어디...
컬렉션 프레임워크(Collection Framework) 자바에서 컬렉션 프레임워크란, 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. (배열의 단점을 보완해준다) JDK 1.2 이전까지는 컬렉션 클래스들을 서로 각자 다른 방식으로 처리해야 했으나 JDK 1.2부터 컬렉션 프레임워크가 등장하면서 ...
type 형 변환 연산을 수행하는 코드에서는 같은 타입끼리만 가능하다. 그래서 연산을 수행하기 전에 같은 타입으로 만들어야 하는데 타입 변환을 하는 것을 형변환 이라고 한다. Promotion 자동 형변환, 묵시적 형변환 이라고도 부른다. 작은 데이터 타입에서 큰 데이터 타입으로 형 변환 자바는 타입이 서로 일치하지 않는 경우에도 타입끼리 서...
JVM (Java Virtual Machine) Java 프로그램이 플랫폼에 의존하지 않고, 어디서든 동작 가능하도록 하기 위한 Java 가상머신이다. C/C++ 언어는 CPU 아키텍처, 운영체제 등 플랫폼 환경에 의존성을 가지기 때문에, 플랫폼이 바뀌면 제대로 동작하지 않는 문제가 있다. (크로스 컴파일을 통해, 타겟 플랫폼에 맞춰서 컴파일 해줘야...
자바 데이터타입 java에서는 기본적으로 제공하는 8가지 기본 데이터타입(primitive type)이 있다. byte 데이터 타입 정수 타입 메모리 사용 크키 : 1byte (8bit) 저장되는 값의 범위 : -128 ~ 127 위 그림에서 표현된 1byte(8bit)의 공간 중 가장 좌측의 최상위비트(부호비트)를 제외하고 ...
Call by value 메소드 호출 시에 사용되는 인자의 메모리에 저장되어 있는 값(value)을 복사하여 보낸다. int a = 3이 있으면 메소드에서 인자값을 받을 때 a라는 자체에 주소를 받는게 아니라 a의 값인 3을 받아 처리하는 방식이다. 아래에 예시는 call by value에 대한 설명이다. public class Diffrenc...
정규화 정규화란 이상 문제를 해결하기 위해 속성들 끼리의 종속 관계를 분석하여 여러개의 릴레이션으로 분해하는 과정이다. 일반적으로 테이블을 여러개로 분해하면 속도는 상대적으로 느려질 수 있지만, 분해하지 않으면 이상 문제들이 발생하게 된다. 이상(Anomaly)의 종류 정규화를 거치지 않아 데이터베이스내에 데이터들이 불필요하게 중복되어 릴레이션 ...
가상머신(Virtual Machine) 하나의 하드웨어(CPU, Memory등)에 다수의 운영체제를 설치하고, 개별 컴퓨터 처럼 동작하도록 하는 프로그램 하드웨어를 소프트웨어로 에뮬레이터하여(모사) 마치 여러개 처럼 보이도록 하는 기술 가상머신을 사용하는 이유 다른 운영체제를 사용해야 하는 경우 (맥OS에서 윈도우, 윈도우에서 리눅스) ...