Java(7)
-
[Java] 오브젝트(Object) 란? - 특징과 사용법
java.lang 패키지의 Object 클래스를 정리해보았다. java.lang 패키지의 모든 클래스와 인터페이스는 import 없이 사용 가능하다. 주요 클래스는 아래와 같다. Object 클래스 - 최상위 클래스 - 컴파일 시 extends Object 가 자동으로 붙는다. - Object 클래스에는 11개의 메서드가 존재하며, 어떠한 Class 에서도 자유롭게 사용 가능하다. - Object 클래스의 메서드는 아래와 같다. Object 클래스의 중요한 메서드를 몇 가지 알아보자. 1. equals() - equals 메서드는 원론적으로 == 연산자와 동일하게 메모리 번지를 비교한다. - Object 클래스의 equlas() 메서드를 확인해보면 메모리 주소를 비교 코드를 볼 수 있다. - 의문점이 있..
2021.06.17 -
[Java] 쓰레드(Thread) 란? 특징과 사용법
프로세스와 쓰레드 - 프로세스 : 실행 중인 프로그램으로 자원(CPU와 Memory 같은 Resource)과 쓰레드로 구성된다. - 쓰레드 : 프로세스 내에서 실제 작업을 수행 : 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. : 싱글 쓰레드 프로세스와 멀티 쓰레드 프로세스로 구분된다. ※ 1개의 new 프로세스를 생성하는 것보다 1개의 new 쓰레드를 생성하는 것이 더 적은 비용이 든다. ※ 과거 CGI 같은 경우 멀티 쓰레드를 지원하지 않아, 요청이 올 때마다 새로운 프로세스가 생성되었는데 이는 Web 수요가 늘어나는 시기에 멀티 쓰레드가 지원되는 Java에 밀려 사라지는 이유 중 하나가 되었다. 멀티쓰레드의 장점 및 단점 - 장점 : 시스템 자원을 보다 효율적으로 사용 가능 : 사용자에 대한..
2021.05.04 -
[Java] 예외처리(Exception) 란? - 특징과 사용법
오류의 종류 - 에러 (Error) : 에러 발생 시, 프로그램이 비정상 종료 된다. : 정상 실행 상태로 돌아갈 수 없다. - 예외 (Exception) : 사용자의 잘못된 조작 또는 개발자의 잘못된 프로그래밍으로 인한 오류 : 예외 발생 시, 프로그램이 종료되지만 예외처리를 해줄 경우 정상 실행 상태로 되돌릴 수 있다. => 예외처리의 목적은 프로그램을 정상 실행 상태로 돌리기 위함 Exception 의 종류 - 일반 예외 (= Complie Exception 또는 Checked Exception) : 컴파일 시점에 예외가 발생함 - 실행 예외 (=RuntimeException 또는 UnChecked Exception) : 실행 시점에 예외가 발생함 [RuntimeException] 자주 발생하는 E..
2021.04.25 -
[Java] 스트림(Stream) 이란? - 특징과 사용법
스트림 - 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 - 데이터 소스를 Stream 을 통해 순차적으로 처리 (데이터의 연속적인 처리) - 컬렉션 프레임워크(List, Set, Map)은 각자 성격이 달라 사용방법이 다름. 그래서 표준화라고 하기에는 거리가 좀 멀다. - JDK 1.8부터 Collection 그리고 Array 를 Stream 으로 만들어 표준화된 방법으로 다룰수 있음. 스트림의 작업순서 1. 스트림 만들기 2. 중간연산은 N번 : 중간연산이란? 연산결과가 스트림. 반복 적용 가능능 3. 최종연산은 1번 : 최종연산이란? 연산결과가 스트림이 아닌 연산이므로 단 한번만 적용 가능. (스트림의 요소를 소모) 스트림의 특징 - Stream 은 오직 ReadOnly 이다. (원본을 변..
2021.04.24 -
[Java] Java8 에 새롭게 추가된 기능을 알아보자
Java 8 새롭게 추가된 기능을 알아보자. - SAM interface - Lambda - Stream - DateTime - Optional - Default Method 함수형 인터페이스 - Abstract Method를 오직 1개만 가진 interface - SAM(Single Abstract Method) interface - 인터페이스에 @FunctionalInterface을 사용한다. (자바가 제공하는 어노테이션이라 import 필요 없음) - 즉 @FunctionalInterface 어노테이션이 붙어 있으면 함수형 인터페이스라고 생각하면 된다. 그러면 왜 SAM 으로 인터페이스를 만드는 걸까? 람다로 바꾸어 사용하기 위해서이다. 추상 메서드가 오직 1개만 존재하여야 람다로 사용할 수 있기 ..
2021.04.12 -
[Java] 리플렉션(Reflection) 이란?
리플렉션의 개념을 알아보자. 리플렉션은 투영, 반사라는 사전적 의미를 갖고 있으며, 프로그래밍적 의미는 다음과 같다. - 객체를 통해 클래스의 정보를 분석해 내는 기법 - 구체적인 Class Type을 알지 못해도, 그 Class의 생성자/메서드/변수에 접근할 수 있는 자바 API 말이 어렵고 햇갈리다. 차근차근 중요한 개념부터 파악해보면 먼저 구체적이지 않다고 했다. 아래 코드를 보면 Object dog = new Dog(); Object 타입의 dog 객체가 선언되었고, 이 객체는 Dog Class의 인스턴스이다. 인스턴스도 생성하였고, 이제 dog 객체를 사용해보자 ! Object dog = new Dog(); dog.// 어떻게 사용하라는건지 ??? 현재 우리는 Dog Class에 무슨 메서드/변..
2021.03.10