
JVM (Java Virtual Machine) JVM이란? 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다. 모든 자바 프로그램은 JVM 에서 실행 가능하다. JVM은 OS로부터 메모리를 할당받아 자바 프로그램을 실행시킨다. 자바 프로그램은 JVM을 거쳐야 하므로 OS에 직접 제어받는 방식의 프로그램(ex. C, C++)보다 속도가 느리다. 자바 프로그램은 OS에 종속적이지 않고 JVM에 종속적이다. JVM 구조 자바 프로그램이 실행되면 JVM은 OS로부터 자바 프로그램 실행에 필요한 메모리(Runtime Data Area)를 할당받고, 할당받은 메모리를 용도에 따라 여러 영역으로 나눈다. JAVA 컴파일러 java 소스로 작성된 코드를 Byte Code로 변환시킨다. 확장자명이 .jav..

1. 스트림 API란? 스트림이란 함수형 프로그램에서 단계적으로 정의된 계산을 처리하기 위한 인터페이스이다. 즉, 컬렉션, 배열 등에 저장된 요소를 하나씩 참조하며 함수형 인터페이스(람다식)를 적용하며 반복적으로 처리할 수 있도록 해주는 기능이다. 스트림 API는 입력과 출력에(I/O) 사용되는 스트림과는 전혀 다른 개념이다. 자바에서는 주로 많은 양의 데이터를 저장하기 위해서 배열이나 컬렉션을 사용한다. 이렇게 저장된 데이터에 접근하기 위해서는 반복문이나 반복자(iterator)를 사용하여 매번 새로운 코드를 작성해야 한다. 하지만 이렇게 작성된 코드는 길이가 너무 길고 가독성도 떨어지며, 코드의 재사용이 거의 불가능하다. 이러한 문제점을 극복하기 위해 나온 개념이 바로 스트림 API이다. 스트림 AP..

1. 람다식이란? 람다식은 간단히 말해서 메서드를 하나의 '식(expression)' 으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수 (anonymous function)' 이라고도 한다. 자바에서의 모든 메서드는 클래스에 포함되어 있어서 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 해당 메서드를 호출할 수 있다. 그러나 람다식은 이 모든 과정없이 오직 람다식 자체만으로도 이 메서드의 역할을 대신할 수 있다. 또한, 람다 표현식은 메소드의 매개변수로 전달될 수도 있으며, 메소드의 결과값으로 반환될 수도 있다. 따라서 람다 표현식을 사용하면, 기존의 불필요한 코드를 줄..

1. 열거형이란? 자바에서 상수를 표현할때 사용하는 방식이다. enum을 사용하면 상수라는 것을 명확히 표현할 수 있고 코드의 가독성이 증가 한다. 자신만의 네임스페이스를 갖고 있으며 형 안정성을 보장 해준다. 또한, 원시 데이터 타입인 int와 char과 같이 switch 문에서 사용이 가능 하다. 열거형의 장점 1. 열거형를 비교할 때 실제 값뿐만 아니라 타입까지도 체크합니다. 2. 열거형의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없습니다. enum 열거형이름 { 상수명1, 상수명2, ... } 열거형에 정의된 상수를 사용하는 방법은 '열거형이름.상수명' 이다. (클래스의 static 변수를 참조하는 방법과 동일하다.) 열거형 상수간의 비교에는 '=='를 사용할 수 있다. equals()가 아닌..
1. 제네릭스란? 제네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에서 컴파일 시 타입체크(compile-time type check)를 해주는 기능이다. 예를들어, ArrayList와 같은 컬렉션 클래스는 다양한 종류의 객체를 담을 수 있긴 하지만 보통 한 종류의 객체를 담는 경우가 더 많다. 그런데도 데이터를 꺼낼 때 마다 타입체크를 하고 형변환을 하는 것은 불편할 수 밖에 없다. 또한 원하지 않는 종류의 객체가 포함될 가능성도 있다. 이러한 문제들을 제네릭스가 해결해 준다. 즉, 다룰 객체의 타입을 미리 명시해줌으로써 번거로운 형변환을 줄여준다. 제네릭스의 장점 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다. 2. 제네릭 클래스의 선언 ..

컬렉션 프레임워크란? 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 컬렉션(collection)은 다수의 데이터, 즉 데이터 그룹을, 프레임워크는 표준화된 프로그래밍 방식을 의미한다. 컬렉션 프레임워크의 핵심 인터페이스 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 이 중에서 List와 Set 인터페이스는 모두 서로 많은 공통부분이 있어서 Collection 인터페이스를 상속받지만, 구조상의 차이가 많은 Map 인터페이스는 Collection 인터페이스를 상속받지 않는다. 따라서 List 인터페이스와 Set 인터페이스의 공통된 부분은 Collection 인터페..

1. java.lang 패키지 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 해당 패키지의 클래스들은 import 없이 사용할 수 있게 되어있다. ex) String, System, Object 클래스 등 2. Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 모든 클래스에서 Object 클래스의 멤버들을 사용할 수 있다. Object 클래스는 멤버변수가 없으며 11개의 멤버메서드로 이루어져 있다. ※ Object 클래스의 대표적인 메서드들 1. equals(Object obj) 메서드 매개변수로 객체의 참조변수르 받아서 비교하여 그 결과를 boolean 값으로 리턴하는 역할을 하는 메서드 두 객체의 같고 다름을 참조변수의 값 (주소값) 으로 판단하기 때문에 서로..

1. 프로그램 에러 또는 오류 프로그램이 실행 중 어떤 원인에 의하여 오작동을 하거나 비정상적으로 종료되는 경우를 말한다. 발생시점에 따라 '컴파일 에러' 와 '런타임 에러' 로 나눌 수 있다. 이 외에도 '논리적 에러' 가 있다. 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 2. 런타임 에러 컴파일러에 의해 소스코드의 기본적인 사항의 에러는 걸러질 수 있지만 실행 도중에 발생할 수 있는 잠재적인 오류 (런타임 에러) 까지 검사할 수 없다. 자바에서는 런타임 에러를 '에러(Error)' 와 '예외(Exception)' 두가지로 구분한다. 에러는 메모리 부족(OutOfMemoryError) 이나 스택오버플로우..
- Total
- Today
- Yesterday
- JVM 메모리 구조
- 그래프 순회 알고리즘
- 자바의 정석
- 스프링
- 멀티 프로세스
- 리버스 프록시
- git
- 인텔리제이
- 회원가입
- 포워드 프록시
- 가상 회선 방식
- 람다식
- Servlet
- 전자정부프레임워크
- 스프링부트
- 메서드 참조
- github
- connectionless
- 제네릭 메서드
- jvm
- 객체
- stateless
- AJAX
- 유효성검사
- 클래스
- 웹 서버
- 싱글톤 레지스트리
- 상속
- http
- 스프링 부트 시큐리티
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |