본문 바로가기
반응형

자바39

[Java] 자바 String을 효율적으로 사용하는 방법 (StringBuilder, StringBuffer, StringJoiner, Collectors.joining) 학습목표 · String은 클래스 선언에 따라 메모리에 저장되는 방식이 다르다 · String은 immutable(불변)하다 · StringBuilder와 StringBuffer · StringBuilder와 StringBuffer의 구조 · StringJoiner · Collectors 클래스의 joining 메서드 String은 클래스 선언에 따라 메모리에 저장되는 방식이 다르다. String str1 = new String("abc"); //인스턴스로 생성된다. String str2 = "abc"; //상수풀에 있는 문자열을 가르킨다. JVM(Java Virtual Machine)에서는 아래와 같은 구조로 데이터를 저장한다. String은 선언 방식에 따라 아래와 같이 힙메모리 또는 상수 풀(Run.. 2021. 9. 29.
[Algorithm] 이것이 코딩테스트다 - 이진탐색 문제풀이(with 자바) 부품찾기 public class 부품찾기 { public static void main(String [] args){ Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); int[] parts = new int[N]; for(int i=0; i target){ start = mid+1; } else { end = mid-1; } } } } 2021. 9. 13.
[Java] 자바의 Scanner 클래스 사용하기 · java.util 패키지에 위치하며, 콘솔 등에서 입력 받은 기본타입(int, double, boolean 등)과 문자열을 읽는 텍스트 스케너 · 내부적으로 정규식을 사용하여 다른 유형을 읽음 · Scanner 객체를 생성하는 방법 ex) Scanner scanner = new Scanner(System.in); · Scanner는 콘솔 이외에도 생성자 매개값에 File, InputStream, Path 등 다양한 입력 소스 지정 가능 · Scanner에서 기본타입과 문자열을 읽기 위한 메소드 리턴 타입 메소드 boolean nextBoolean() byte nextByte() short nextShort() int nextInt() long nextLong() float nextFloat() dou.. 2021. 9. 10.
[Java] 자바의 레코드(Record) 레코드란? ㆍ 불변(immutable) 데이터 객체를 쉽게 생성할 수 있도록 하는 새로운 유형의 클래스 ㆍ JDK14에서 preview로 등장하여 JDK16에서 정식 스펙으로 포함 기존의 불변 데이터 객체 public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } ㆍ 상태(name, age)를 보유하는 불변 객체를 생성하기 위한 많은 코드를 작성함 - 모든 필드에 f.. 2021. 9. 9.
[Java] 제네릭(Generics) 제네릭(Generics)이란? · 다양한 타입의 객체들을 다루는 메서드, 클래스, 인터페이스를 컴파일 타임에 타입체크 해주는 기능(JDK 1.5에 도입) ex) 컬렉션 프레임워크 · 클래스, 인터페이스, 메서드 내부에서 사용할 수 있는 타입을 제한할 수도 있음 ex) 'extends'를 사용하면, 특정 타입의 자손들만 대입할 수 있게 제한할 수 있다. 예시 - Fruit 클래스 또는 Fruit 클래스의 하위 클래스로 타입 파라미터 제한 Class FruitBox{ArrayList list = new ArrayList();} · 클래스가 아니라 인터페이스를 구현해야 한다는 제약이 필요해도 'implements'가 아닌 'extends'를 사용한다. 클래스 Fruit의 자손이면서 Eatable인터페이스도 구.. 2021. 8. 30.
[자바] Annotations, 자바에서 메타 데이터를 제공하는 방법 학습할 것 · 애노테이션이란? · 자바에서 사용하기 위해 미리 정해져 있는 어노테이션 - @Override - @Deprecated - @Supress Warnings · 애노테이션 정의하는 방법 · 어노테이션을 선언하기 위한 메타 어노테이션 - @Target, 애노테이션 적용 대상 설정하기 - @Retention, 애노테이션 유지 정책 - @Documented - @Inherited - 애노테이션 프로세서 애노테이션이란? · 자바 소스 코드에 '@'예약어를 추가하여 사용하는 메타데이터 메타데이터: 애플리케이션이 처리해야 할 데이터가 아닌, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지 알려주는 정보 · enum 클래스와 같이 어노테이션도 상속이 불가능하다. 즉, extends 예약.. 2021. 8. 29.
반응형