- [ 정리/Java ][stream] map과 forEach2024-11-29 10:30:32map이랑 forEach를 언제 사용하는지 정확하게 이해가 안가서 정리map()중간연산 스트림의 각 요소를 주어진 변환(매핑) 함수에 따라 새로운 스트림의 요소로 변환데이터를 변환하는 데 사용입력 스트림과 출력 스트림의 타입이 다를 수 있음 forEach()최종연산 스트림의 각 요소를 순회하며 처리하는 동작 수행하고 결과 반환하지 않음데이터를 변환하지 않고 처리만 수행보통 데이터 출력, 로그 기록, 누적 작업 등 사이드 이펙트를 처리할 때 사용 map()과 forEach()의 차이특성map()forEach()목적데이터를 변환(매핑)데이터를 처리(소비)역할새로운 스트림을 생성스트림의 각 요소를 처리종류중간 연산최종 연산실행 시점최종 연산이 호출될 때 실행즉시 실행결과변환된 요소를 가진 새로운 스트림 반환반..
- [ 정리/Java ]변수 메모리 영역2024-11-24 23:15:31변수의 종류와 저장위치Java에서 변수가 메모리에 저장되는 과정은 JVM의 메모리 구조와 밀접한 관련자바의 메모리는 크게 메소드 영역, 힙 영역, 스택 영역, PC 레지터스, 네이티브 메소드 스택으로 구성변수가 저장되는 주요 영역은 스택과 힙 영역1. 변수의 종류와 저장 위치지역 변수저장 위치 : 스택 영역메서드나 블록 내부에 선언된 변수메서드 호출 시 스택에 생성, 호출이 끝나면 메모리에서 제거기본 자료형은 값을 직접 저장참조 자료형은 힙 영역에 저장된 객체 주소를 저장인스턴스 변수저장 위치 : 힙 영역클래스 객체(instance)가 생성될 때 힙에 저장객체가 소멸되면 GC(Garbage Collector)에 의해 제거각 객체가 고유한 값을 가집클래스 변수저장 위치 : 메소드 영역클래스 로드 시 메모리..
- [ 정리/Java ][자바] 아스키코드2023-11-13 04:20:56대문자 A~Z 65~90 소문자 a~z 97~122 0~9 48~57
- [ 정리/Java ][JAVA] 문자열 곱하기 repeat메서드2023-10-16 09:47:03자바 11에 새로 추가된 String 메서드 문자열을 파라미터만큼 반복하여 반환해준다. 내부적으로 Arrays.fill()과 System.arraycopy() 메서드를 호출한다. 0 → 빈 문자열 음수 → IllegalArgumentException 예외 발생 String str = "abc"; int count = 3; System.out.println(str.repeat(count)); // 출력결과 abcabcabc
- [ 정리/Java ]자바의 정석 148~157강 ch13 쓰레드2023-10-12 12:07:49자바의 정석 기초편(2020최신) ch 13-1 프로세스와 쓰레드 1. 프로세스 process 실행 중인 프로그램, 자원(메모리, CPU 등)과 쓰레드로 구성 2. 쓰레드 Thread 프로세스 내에서 실제 작업을 수행, 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있음 새로운 프로세스 생성보다 새로운 스레드 생성이 적은 비용 3. 멀티스레드의 장단점 장점 단점 시스템 자원을 효율적으로 사용 가능 사용자에 대한 응답성 향상 코드 간결 동기화 synchronization 주의 교착상태가 발생하지 않도록 주의 각 스레드가 효율적으로 고르게 실행될 수 있게 해야함(기아현상) ch 13-3~6 스레드의 구현과 실행 1. 스레드 구현 자바는 단일 상속만 지원, Thread 클래스를 상속받을경우 다른 클래스 상속이..
- [ 정리/Java ]자바의 정석 142~147강 ch12 지네릭스, 열거형, 애너테이션(2)2023-09-16 02:25:41자바의 정석 기초편(2020최신) ch 12-17~20 열거형 1. 열거형 enum 관련 상수들을 같이 묶어 놓음, java는 타입에 안전한 열거형 제공 열거형은 값과 타입 모두 체크 class Card { enum Kind {CLOVER, HEART, DIAMOND, SPADE} enum Value {TWO, THREE, FOUR} } if(Card.CLOVER == Card.TWO) // false // 0 == 0 인데 왜 false? // 타입이 달라서 비교 불가 Kind == Value라서 false 2. 열거형의 정의와 사용 열거형 인스턴스를 생성해 사용 열거형 상수의 비교에 ==와 compareTo() 사용 가능, 비교연산자는 사용 불가 // 열거형 정의 enum 열거형 이름 { 상수1, 상..
- [ 정리/Java ]자바의 정석 135~141강 ch12 지네릭스, 열거형, 애너테이션(1)2023-09-12 08:57:15자바의 정석 기초편(2020최신) ch 12-1 지네릭스 Generics 란 1. 지네릭스 컴파일시 타입을 체크해 주는 기능 // jdk 1.5 이전 ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); // String 추가 Integer i = (Integer)list.get(2); // 컴파일 OK /* 실행하면 에러, ClassCastException 발생, 형변환예외 컴파일러의 한계, 꺼낼때 Object라 컴파일에러 안뜨지만 실행시 형변환 에러발생 실행시 에러는 프로그램이 종료되고 컴파일 에러는 실행전에 에러가 뜨기때문에 컴파일 에러가 더 나음 지네릭스를 통해 컴파일 에러로 이끌어냄 */ // jdk 1.5 이..
- [ 정리/Java ]자바의 정석 127~134강 ch11 컬렉션 프레임웍(2)2023-09-10 02:19:42자바의 정석 기초편(2020최신) ch 11-30~33 Comparator와 Comparable 1. Comparator와 Comparable 객체 정렬에 필요한 메서드(정렬기준 제공)를 정의한 인터페이스 Comparator : 기본 정렬기준을 구현할 때 사용 public interface Comparator { int compare(Object o1, Object o2); // o1과 o2 두 객체를 비교, 0 o1=o2 양수 o1>o2, 음수 o1 equlas(), hashCode() 오버라이딩 안함 System.out.println(set); } } // equals(), hashCode() 오버라이딩해야 HashSet 바르게 동작 class Person { String name; int age; ..
- [ 정리/Java ]자바의 정석 119~126강 ch11 컬렉션 프레임웍(1)2023-09-04 23:09:30자바의 정석 기초편(2020최신) ch 11-1~2 컬렉션 프레임웍 1. 컬렉션 여러 객체(데이터)를 모아 놓은 것을 의미 2. 프레임웍 표준화, 정형화된 체계적인 프로그래밍 방식 생산성과 유지보수성이 좋아짐 3. 컬렉션 프레임웍 컬렉션(다수의 객체)을 다루디 위한 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공함(저장, 삭제, 검색, 정렬 등) java.util 패키지에 포함 4. 컬렉션 클래스 다수의 데이터를 저장할 수 있는 클래스(Vector, ArrayList, HashSet) 5. 컬렉션 프레임웍의 핵심 인터페이스 인터페이스 특징 List 순서가 있는 데이터의 집합, 중복 허용 ArrayList, LinkedList, Stack, Vector 등 Set 순서를..
- [ 정리/Java ]자바의 정석 연습문제 ch 9 java.lang 패키지와 유용한 클래스2023-09-03 18:23:16자바의 정석 3판 기초판 연습문제 https://github.com/castello/javajungsuk3 GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition soure codes and ppt files of javajungsuk 3rd edition - GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition github.com [9-1] 다음과 같은 실행결과를 얻도록 SutdaCard클래스의 equals()를 멤버변수인 num, isKwang의 값을 비교하도록 오버라이딩하고 테스트 하시오. public cl..
- [ 정리/Java ]자바의 정석 연습문제 ch 8 예외처리2023-08-31 20:02:54자바의 정석 3판 기초판 연습문제 https://github.com/castello/javajungsuk3 GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition soure codes and ppt files of javajungsuk 3rd edition - GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition github.com [8-1] 예외처리의 정의와 목적에 대해서 설명하시오. 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드 작성 목적 : 프로그램의 비정상적인 종료를 막고, 정상적인..
- [ 정리/Java ]자바의 정석 연습문제 ch 7 객체지향 프로그래밍(2)2023-08-31 17:59:43자바의 정석 3판 기초판 연습문제 https://github.com/castello/javajungsuk3 GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition soure codes and ppt files of javajungsuk 3rd edition - GitHub - castello/javajungsuk3: soure codes and ppt files of javajungsuk 3rd edition github.com [7-1] 섯다카드 20장을 포함하는 섯다카드 한 벌(SutdaDeck클래스)을 정의한 것이다. 섯 다카드 20장을 담는 SutdaCard배열을 초기화하시오. 단, 섯다카드는 1부터 ..