Coding 45

Java Wrapper Class

■ Java Wrapper Class * 기본형 타입을 객체로 쓰기 위해 있는 클래스 기본형 Wrapper Class byte Byte char Character short Short int Integer long Long float Float double Double boolean Boolean • Wrapper Class 생성 방법 valueOf() 이용 Integer integer1 = Integer.valueOf(10); new 키워드 이용 Integer integer = new Integer(10); • Autoboxing & unboxing 1. Autoboxing * 기본 자료형을 Wrapper Class로 자동 변환 시킴 Integer integer2 = 10; Character chara..

Coding/Java 2020.10.12

Java Collection Framework

■ Java Collection Framework * java.utils에 속한 일련의 클래스로, 자료구조를 담당 * 잘 짜인 인터페이스를 기반으로 다양한 자료구조를 구현 * 제네릭 클래스로 되어있어, 다양한 객체를 요소로 담을 수 있다. • JCF 인터페이스 1. List 인터페이스 * Collection 인터페이스를 상속 * 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용 * 데이터의 순서(index)가 유일한 데이터의 구분자(identifier)로 사용 - Ex> [1, 3, 2, 5, 6, 2, 1] : 같은 값이 있으나, index가 다름 2. Set 인터페이스 * Collection Interface 상속 * 순서가 없는 데이터 {집합}을 다루는 인터페이스 * 중복되는 데이터를 효율적으로..

Coding/Java 2020.10.08

Java I/O Stream

■ Java I/O Stream * Decorator Pattern으로 구현되어 있다. * Java의 I/O 방식은 Node - Stream * Node : 데이터의 소스 또는 데이터의 목적지 - Node는 키보드(입력), 모니터(출력), 파일(입출력) 등을 말한다. * Stream : Node로부터 데이터를 주고받는 통로 - 입력으로 사용되는 스트림과 출력으로 사용되는 스트림은 별개 - 입출력을 함께하는 것을 채널(Channel) : NIO(New Input/Output) • I/O Stream 구분 * I/O 대상 기준 : Input Stream, Output Stream * 자료의 종류 : Byte 단위 Stream, 문자 단위 Stream * Stream 기능 : 기반 Stream, 보조 Stre..

Coding/Java 2020.10.08

Java 코드 작성 습관

1. 반복문을 줄여야 한다. => 리소스를 계속 사용하기 때문에 2. Dynamic Lookup을 줄인다. => instanceOf()와 같은 메서드 3. 필요시 순수 함수 형식으로 코드 짜기(객체뿐만 아니라 함수도 모듈화가 된다) => 당연히 필요시에는 OOP 준수(Real-Time과 같은 쓰레딩 부분 등 Critical 한 부분) 4. Stream과 Collection, 기본적인 속도는 for 문이 Stream 보다 빠르다. => 기존 Collection을 재사용해야 되는데, Collection의 변경이 필요한 경우 => Prototype으로 5. Object 클래스의 메서드 Overriding => 자주 사용하는 메소드 : equals(), hashCode(), clone(), toString() ..

Coding/Java 2020.10.08

java.lang 패키지

■ java.lang 패키지 - Java에서 가장 기본적이며, 자주 사용되는 클래스를 모아놓은 패키지 - 별도로 import를 하지 않아도 사용이 가능한 기본 중의 기본 • Object Class - 모든 클래스의 조상 클래스 - 클래스의 기본 기능을 제공 - 필요한 경우, Object 클래스에 구현된 메서드를 Override 메소드 설명 public final native Class getClass() 현재 객체의 클래스를 반환한다. public native int hashCode() 현재 객체의 해시코드 값을 반환한다. public boolean equals() 현재 객체와 대상이 같은 객체를 참조하는지 여부를 반환한다. public String toString() 객체를 문자열로 변환하여 반환한다...

Coding/Java 2020.09.29

Java Stream API

■ Stream API - Java 8에 추가된 java.util.stream 패키지 - 컬렉션 요소를 람다식으로 처리할 수 있도록 돕는 함수형 프로그래밍 도구 • Stream API 특징 - 간결한 코드로 작성할 수 있다. - 하지만 일반적으로 Stream으로 반복문을 실행하는 것보다 for문을 이용하는 방법이 빠르기 때문에, 무작정 사용하는 것은 속도를 느리게 만들 수 있다. // JAVA 7 List list = Arrays.asList("fast", "campus", "rocks"); List newList = new ArrayList(); for (String s: list) { newList.add(s.toUpperCase()); } for (String s: newList) { System...

Coding/Java 2020.09.28

Java Comparator & Comparable

■ Java Comparator & Comparable - 객체의 정렬 기준을 제공하는 Interface로, Comparator, Comparable을 이용하여 객체를 정렬할 수 있다. • Comparator Interface - 정렬하는 규칙을 정의하는 Interface - 정렬 규칙이 여러 군데에 사용된다면 Interface를 구현한 클래스를 구현하지만, 한 번씩만 사용된다면 익명 내부 클래스 또는 람다식을 이용하여 구현한다. - 일반적으로 String, Integer 등 Java에서 제공하는 타입에 대해서는 Comparator을 사용한다. * Integer, Double : 오름차순 정렬 * String : 사전 순 정렬 - compare(T o1, T o2) 메서드 1) 오름차순 정렬 a. o1이..

Coding/Java 2020.09.22

Java Lambda Expression(람다식)

■ Java Lambda Expression(람다식) - Java 1.8에서 추가된 함수형 프로그래밍(Functional Programming)을 구현하는 방식 - 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행 - 병렬 처리가 가능함 - Lambda를 이용하면, 함수를 변수처럼 사용할 수 있다 (Use funcation like variable) - Java에서 '메소드'를 '함수'처럼 사용하는 방식 * Java에는 '함수'라는 게 없음. * 함수형 프로그래밍을 하려면 '1급 함수'라는 개념이 필요 • Functional Programming - 순수 함수(Pure Function)를 구현하고 호출 * 순수 함수 : 외부의 상태를 변경하지 않으면서, 동일한 인자에 대해 항상 똑같은 값을 리턴하는 ..

Coding/Java 2020.09.18

Java Inner Class(내부 클래스)

■ Java Inner Class (내부 클래스) - Outer(Class, Method) 내부에 선언하는 클래스로 중첩 클래스(Nested Class)라고도 부름 - 보통 해당 Outer(Class, Method)에서만 사용하기 위해서 사용된다. • Inner Class Type - Instance Inner Class - Static Inner Class - Local Inner Class - Anonymous Inner Class • Compile 시, Class Name Instance, Static Inner Class : {OuterClass}${InnerClass}.class Local Inner Class : {OuterClass}$1{InnerClass}.class (1은 해당 Class..

Coding/Java 2020.09.18