JAVA 52

Comparator와 Comparable

Comparable collecion 클래스에서 구성 요소를 정렬하는 기준을 정의하는 인터페이스입니다. Collection의 요소가 사용자 정의 클래스인 경우에는 Comparable 인터페이스를 상속받아 구현되어야 합니다. 상속 받은 뒤에는 정렬기준을 정의하는 compareTo 메소드를 구현해야 합니다.(오버라이드) 메소드 리턴 설명 compareTo(T o) int o와 객체가 가진 값이 같으면 0을 리턴 o보다 객체가 가진 값이 크면 양수를 리턴 o보다 객체가 가진 값이 작으면 음수를 리턴 public class Student implements Comparable{ int id ; int score; String name; public Student(int id, int score, String n..

JAVA/JAVA 2021.10.29

Lambda Expressions 람다식

Lambda Expressions 람다식은 인터페이스에 정의된 객체를 인터페이스를 호출(사용)하는 시점에 사용자가 정의하여 사용할 수 있는 기능을 제공하는 기능입니다. 미리 정의된 메소드, 클래스를 사용하는 것이 아니라 호출 시점에 재정의하여 사용하는 함수적 프로그래밍을 지원하는 기능입니다. (타입 매개변수) -> {실행문} (int a) -> { a = a+1 } 람다식을 구현하기 위해서는 먼저 인터페이스에 추상메소드 1개를 선언해야 합니다. public interface Calculation { int calculate(int a, int b); } 추상메소드가 선언한 다음 인터페이스를 호출하는 시점에 아래 코드처럼 Override하여 기능을 정의할 수 있습니다. Calculation normal =..

JAVA/JAVA 2021.10.28

Collection 컬렉션

Collection Interface 자바의 인터페이스를 이용해 구현된 것으로 데이터를 저장하는 자료구조를 정의하는 프레임워크입니다. Collection 인터페이스의 종류 종류 특징 구현 클래스 List 순서가 있는 자료구조 Vector, ArrayList, LinkedList, Stack Set 순서가 없으며 중복값을 허용하지 않는 자료구조 HashSet, TreeSet Map key와 value로 이루어진 자료구조로 key는 중복값을 허용하지 않음 HashMap, TreeMap Queue 선입선출의 자료구조 Queue Deque 양방향 선입선출 자료구조 Deque Collection 인터페이스의 기본 Method method return 설명 size() int collection 객체의 길이(담긴 ..

JAVA/JAVA 2021.10.25

제어문(조건문 if, 반복문 for/while)

제어문 메소드는 { } 에서 위에서 아래로 흘러가며 실행된다. 이런 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 게 제어문이다. 제어문에는 조건문과 반복문이 있다. 조건문은 특정 조건을 만족할 경우 { } 내부를 실행하고 원래의 실행흐름으로 되돌아온다. 반복문은 특정 조건을 만족할 때까지 { } 내부를 반복 실행한다. 조건문 IF if 문은 조건식이 true이면 { } 내부를 실행하고, false이면 실행하지 않는다. int score = 70; String grade; if(score >= 90) { grade = "A"; } // 위의 if문 조건을 만족하지 않으면서 // 해당 조건문을 만족하면 실행한다. else if(score >= 80 ) { grade = "B"; } // 위의..

JAVA/JAVA 2021.10.07

연산자 Operator

연산자의 개념 연산(Operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것. 연산자(Operator) : 연산에 사용되는 표시나 기호 피연산자(Operand) : 연산에 사용되는 데이터 연산식(Expressions) : 연산 계산식 연산자의 종류 피연산자의 갯수에 따라 단항, 이항, 삼항 연산자로 구분됨. 연산식은 무조건 1개의 값만 반환함. 연산자의 종류에 따라 산출되는 값의 데이터타입이 다름. 산술연산자는 숫자타입(byte, short, int, long, float, double), 비교연산자와 논리연산자는 boolean 타입이 반환됨. 단항 : a++; !조건식 이항 : x + y; 삼항 : (score>90) : "A" : "B"; 연산자 종류 연산자 피연산자수 산출값 설명 ..

JAVA/JAVA 2021.10.04

JVM 자바 가상머신

JVM : Java Virtual Machine 바이트 코드인 자바를 해석하고 실행하는 가상의 운영체제 운영체제와 자바 사이의 중간단계 역하을 수행하는 것으로, 개발자는 운영체제를 신경쓰지 않고 자바 프로그램을 개발할 수 있음. JVM의 구성 ① 자바 인터프리터 : 바이트 코드 파일을 읽고 실행 ② 클래스 로더 : 실행 중에 자바를 읽어 클래스를 로딩 ③ JIT컴파일러 : 실행 중에 자바 바이트 코드를 기계어로 번역 ③ 가비지 컬렉터 : 메소드 작동이 끝나면 자동으로 메모리를 회수. (메모리관리) 메모리 사용 영역 [메소드 영역] 클래스 로더로 읽어 클래스별로 런타임 상수풀, 필드, 메소드, 생성자 등을 분류해서 저장하는 데이터 영역 JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역 [힙 영역] ..

JAVA/JAVA 2021.10.02

Objects 클래스

Objects 클래스 Object의 유틸리티 클래스 Method Return Type 설명 compare(T o1, T o2, Comparator c) int Comparator(우선순위)를 이용해 두 객체를 비교 deepEquals(Object o1, Object o2) boolean 깊은 비교 : 두 객체의 데이터 값을 비교 equals(Object o1, Object o2) boolean 얕은 비교 : 두 객체의 번지(주소값) 비교 hashCode(Object o) int 객체의 해시코드 hash(Object o) int 입력값으로 배열을 생성하고 해시코드를 생성 isNull(Object o) boolean 객체가 null인지 조사 nonNull(Object o) boolean 객체가 null이 아..

JAVA/JAVA 2021.09.28

Object Class

Object Class 자바의 가장 최상위 클래스 필드 없이 메소드로만 구성되어 있고, 모든 클래스에서 Object 클래스의 메소드를 사용할 수 있음. * 모든 클래스는 Object 클래스를 상속받기 때문 equals() 두 객체가 동일하면 True, 아니면 False를 반환하는 메소드 Object A = new Object(); Object B = new Object(); Object C = A; System.out.println(A.equals(B)); System.out.println(A.equals(C)); false true 두 객체가 같은 값인지를 비교하기 위해 클래스에서 재정의 Override해서 사용할 수 있다. 대표적으로 String클래스의 equals가 있다. [Telephone 클래스..

JAVA/JAVA 2021.09.28

java.lang 패키지

java.lang 자바 프로그램의 기본적인 클래스를 담고 있는 패키지로 import 없이 사용할 수 있음. Class 설명 Object 최상위 클래스 System 표준 입출력, JVM 종료, Garbage Collector 실행 요청 Class 클래스를 메모리로 로딩 String 문자열 저장, 정보 얻기 StringBuffer, StringBuilder 문자열 저장, 조작 Math 더하기, 곱하기, 나머지 구하기 등의 수학 함수 사용 Wrapper Byte, Short, Character, Integer, Float, Double, Boolean, Long 기본 타입 객체, 입력값 검사, 기본 타입으로 변환 java.util Class 설명 Arrays 배열의 복사, 비교, 정렬, 문자열로 변환 등 Ca..

JAVA/JAVA 2021.09.27

어노테이션 Annotation (@)

어노테이션 컴파일 및 실행 과정에서 코드를 어떻게 컴파일하고 처리할 지를 알려주는 메타데이터 정보 @Annotation 어노테이션의 용도 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 어노테이션 정의와 사용 어노테이션은 element를 가질 수 있음. element는 타입과 이름으로 구성되어 있고, default값을 가질 수 있음. public @interface AnnotationName{ String elementName1(); String elementName2() default "Manta.Ray"; } public class AnnotationTes..

JAVA/JAVA 2021.09.26