CS/Java
-
JAVA - Wrapper ClassCS/Java 2021. 2. 27. 17:19
Wrapper Class 자바의 자료형 기본 타입) char, int, float, double, boolean등. 참조 타입) class, interface 등. 기본 타입의 데이터를 객체로 표현해야 하는 경우 래퍼 클래스를 사용한다. Wrapper Class란? 기본 타입의 자료를 객체로 다루기 위해 사용하는 클래스를 Wrapper Class라고 한다. 기본 타입 Wrapper Class byte Byte char Character int Integer float Float double Double boolean Boolean long Long short Short 박싱: 기본 타입의 값을 래퍼 클래스로 만드는 과정을 말한다. 언박싱: 래퍼 클래스에서 기본 타입의 값을 얻어내는 과정을 말한다. 래퍼 ..
-
JAVA - JDK , JRECS/Java 2021. 2. 26. 19:20
JDK, JRE 요약 JDK = JRE + @ JRE란? Java Runtime Environment JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다. 컴파일된 자바 프로그램을 실행시킬 수 있는 자바 환경으로 JVM의 실행 환경을 구현했다고 할 수 있다. 자바 프로그래밍 도구는 포함되어 있지 않기 때문에 자바 프로그래밍을 하기 위해서는 JDK가 필요하다. JDK란? Java Development Kit 자바 프로그래밍시 필요한 컴파일러 등을 포함한다. 개발을 위한 도구(javac, java등)들을 포함한다. JDK를 설치하면 JRE도 같이 설치된다. reference goodgid.github.io/Java-JDK-JRE/
-
JAVA - RamdaCS/Java 2021. 2. 26. 01:09
Ramda Ramda함수란? JAVA8부터 지원이 되며, 익명함수 라고도 한다. 함수형 인터페이스를 사용한다. 불필요한 코드를 줄이고 가독성을 향상시키기 위해 나왔다. 람다의 표현식 (파라미터) -> {몸체} 몸체 부분이 단일 행일 경우 중괄호와 return을 생략할 수 있다. 기본 자바 문법 (문자열 내림차순 정렬) Arrays.sort(arr, new Comparator() { @Override public int compare(String o1, String o2) { return o2 - o1; } }); 람다식 문법 Collections.sort(arr, (o1, o2) -> o2 - o1); 람다식의 장, 단점 장점 불필요한 반복문을 줄일 수 있어 코드가 간결해 진다. 가독성이 향상된다. 단점..
-
JAVA - GenericCS/Java 2021. 2. 26. 00:47
Generic Generic이란? JDK 1.5에 처음 도입되었다. 데이터의 타입을 일반화 한다는 것을 의미한다. 클래스으로 선언한다. 이때 사용되는 타입으로는 래퍼 클래스만 가능하다. Generic의 선언 및 생성 선언 class MyArray { T element; void setElement(T element) {this.element = element;} T getElement() {return element}; } 사용 MyArray myArr = new MyArray(); 위의 예제는 MyArray클래스에 사용된 타입 변수로 Integer 타입을 사용하는 예제이다. 제네릭 클래스를 생성할 때 사용할 실제 타입을 명시하면 내부적으로 정의된 타입 변수가 실제 타입으로 변환되어 처리된다. refer..
-
JAVA - 객체 직렬화CS/Java 2021. 2. 19. 22:30
객체 직렬화(Serialization) 직렬화 내부에서 사용되는 객체 또는 데이터를 외부의 시스템에서도 사용할 수 있도록 다른 형태(바이트, JSON등)로 변환하는 기술이다. 자바에서는 Serializable 인터페이스를 통해서 직렬화를 구현한다. 역직렬화 직렬화와 반대된다. 즉, 직렬화된 데이터를 역으로 직렬화 하여 객체로 재구성 하는 것을 의미한다. 객체 직렬화 객체 직렬화: 객체의 내용을 자바 I/O가 자동적으로 바이트 단위로 변환하는 기능을 제공한다. 자바의 I/O처리는 정수, 문자열, 바이트 단위의 처리만 지원하므로 복잡한 객체의 내용을 저장/복원 하거나 네트워크로 전송하기 위해선 객체의 멤버변수의 각 내용을 일정한 형식(패킷)으로 만들어 전송해야 한다. 자바에서 자동으로 처리해 주기 때문에 O..
-
JAVA - finalCS/Java 2021. 2. 19. 22:02
final final 오직 한 번만 할당할 수 있는 entity를 정의할 때 사용한다. final 변수가 객체를 참조한다면 그 객체의 상태가 바뀌어도 final변수는 매번 동일한 내용을 참조한다. 즉, 한 번 값을 지정하면 절대 바뀌지 않는다. final 클래스 final 클래스는 더이상 상속할 수 없다. final 메소드 final 메소드는 상속받은 하위 클래스에서 변경할 수 없다. final 변수와 static final변수는 한 번 값을 할당하면 수정할 수 없다. static 변수: 정적 변수로 메모리에 고정적으로 할당되어 프로그램이 종료될 때 해제되는 변수이다. 클래스의 모든 인스턴스가 공유한다. final변수는 static과 함께 쓰면 메모리 효율이 높아진다. reference coding-fa..
-
JAVA - Mutable, ImmutableCS/Java 2021. 2. 18. 21:18
Mutable, Immutable Immutable: String 문자열 연산에서 new 연산을 통해 생성된 인스턴스의 메모리 공간을 절대 변하지 않는다. 문자열에 변화를 주면 메모리 공간이 변하는 것이 아닌 새로운 String객체를 new로 만들어서 새로운 메모리 공간을 만들어 준다. 기존의 문자열은 GC에 의해 제거되어야 한다. Mutable: Stringbuilder, Stringbuffer 문자열 연산에서 클래스를 한번 만들고 연산이 필요할 때 크기를 변경시켜 문자열을 변경한다. 문자열 연산이 자주 있을때 사용하는 것이 적절하다. String 문자열 연산이 적고, 조회가 많을때 사용한다. 불변성을 가지기 때문에 멀티쓰레드 환경에서의 안정성을 가지고 있다. 즉, 문자열 연산이 적고 멀티쓰레드 환경일..
-
JAVA - foreachCS/Java 2021. 2. 18. 20:48
for-each for-each 인덱스를 명시할 필요없이 알아서 리스트의 사이즈 만큼 반복된다. Iterable 인터페이스를 구현한 모든 클래스에서 사용이 가능하다. 장점: 에러 여지도 없고 코드도 간결하다. 단점: 인덱스를 사용할 수 없다. Iterable 인터페이스 Collection인터페이스는 Iterable인터페이스를 extends하고 있다. 즉 Collection의 하위 데이터 집합 그룹은 Iterable을 사용할 수 있다. Iterable인터페이스는 iterator()메소드와 forEach()메소드가 존재한다. Iterator 인터페이스 Collection 인터페이스와는 별개로 존재하는 인터페이스이다. hasNext(), next(), remove()등의 메소드가 존재한다. reference ..