organize/자바 40

Java 37

OptionalT 타입 객체의 래퍼클래스래퍼클래스 : Integer, Long,...null을 직접 다루는 것은 위험 → 간접적으로 null 다루기null 체크(if 문 필수) → 코드가 길어짐=>Optional 객체에 null을 넣음public final class Optional{ private final T value; //T타입의 참조 변수. 모든 종류의 객체 저장 가능(null 가능) ...}Optional 객체 생성하기Optional객체를 생성하는 다양한 방법String str = "abc";Optional optVal = Optional.of(str);Optional optVal = Optional.of("abc");//Optional optVal = Optional.of(null); ..

organize/자바 2024.08.24

Java36

스트림(Stream)다양한 데이터소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것List,Set,Map 사용방법이 같지 않았지만 스트림을 통해 사용방법을 통일시킴Stream → 중간 연산(n번) → 최종연산(1번, 결과)스트림 작업 : 스트림 만들기 → 중간연산 → 최종연산Stream Collection stream()List list = Arrays.asList{1,2,3,4,5};Stream intStream = list.stream(); //컬렉션Stream strStream = Stream.of(new String[]{"a","b","c"}); //배열Stream evenStream = Stream.iterate(0, n -> n+2); //0,2,4,6,8,...Steram randomS..

organize/자바 2024.08.23

Java 35

람다식(Lambda Expression)함수(메소드)를 간단한 '식(expression)'으로 표현하는 방법익명 함수(이름이 없는 함수, anonymous function)함수는 일반적인 용어, 메소드는 객체지향개념 용어. 함수는 클래스에 독립적, 메소드는 클래스에 종속적람다식은 익명 함수가 아니라 익명 객체임 람다식(익명 객체)을 다루기 위한 참조변수가 필요. 참조변수 타입은? 함수형 인터페이스람다식 작성하기int max(int a, int b){ return a > b ? a : b;}1. 메소드의 이름과 반환타입을 제거하고 '->'를 블록{} 앞에 추가 (int a, int b) -> { return a > b ? a : b; }2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능(..

organize/자바 2024.08.22

Java 34

sleep()현재 쓰레드(자기 자신, static)를 지정된 시간동안 멈추게 함.static void sleep(long millis[, int nanos]) //천분의 일초(+나노초) 단위예외처리를 해야함(InterruptedException(Exception의 자손)이 발생하면 깨어남)try{ Thread.sleep(1000); //쓰레드를 1초동안 멈추게 함} catch(InterruptedException e){}//항상 try-catch를 하기 번거로움 //=>void delay(long millis){ try{ Thread.sleep(millis); } catch(InterruptedException e){}}특정 쓰레드를 지정해서 멈추게 하는 것은 불가능함try{ th1.slee..

organize/자바 2024.08.22

Java 33

프로세스와 쓰레드프로세스 : 실행중인 프로그램. 자원(resource)과 쓰레드로 구성쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있음프로세스 ≒ 공장, 쓰레드 ≒ 일꾼싱글 쓰레드 프로세스 : 자원 + 1개의 쓰레드멀티 쓰레드 프로세스 : 자원 + n개의 쓰레드하나의 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 듬CGI(싱글 쓰레드) → 자바 서블릿(멀티 쓰레드 지원)멀티쓰레드의 장,단점장점시스템 자원을 보다 효율적으로 사용할 수 있음사용자에 대한 응답성(responseness)이 향상됨작업이 분리되어 코드가 간결해짐단점 → "공유"동기화(synchronization)에 주의해야함교착상태(dead-lock)가 발생하지 않..

organize/자바 2024.08.21

Java 32

애너테이션주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공 @Test //이 메소드가 테스트 대상임을 테스트 프로그램에게 알림. JUnit. 단위 테스트 프로그램 public void method(){ ... } 표준 애너테이션자바에서 제공하는 애너테이션애너테이션설명@Override컴파일러에게 오버라이딩하는 메소드라는 것을 알림@Deprecated앞으로 사용하지 않을 것을 권장하는 대상에 붙임@SuppressWarnings컴파일러의 특정 경고메시지가 나타나지 않게 해줌@SafeVarargs제네릭 타입의 가변인자에 사용@FunctionalInterface함수형 인터페이스라는 것을 알림@Nativenative메소드에서 참조되는 상수 앞에 붙임@Target애너테이션이 적용가능한 대..

organize/자바 2024.08.20

Java 30

※cmd에서 javac 명령어 사용문제 : javac --version은 정상적으로 실행되나 class 파일로 컴파일이 안됨.해결 :설정 - 정보 - 고급 시스템 설정 - 환경 변수시스템 변수에 변수와 값이 설정되어 있는지 확인 -> 없으면(3번 항목으로), 있으면(4번 항목으로)시스템 변수 - 새로 만들기(W)변수 이름 : JAVA_HOME변수 값 : jdk가 설치된 경로 \bin 파일로 설정 ex)C:\Program Files\ojdkbuild\java-11-openjdk-11.0.15-1\bin시스템 변수 - 변수 Path - 편집(I)환경 변수 편집 - 새로 만들기 %JAVA_HOME%    와일드카드 하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능ArrayList list = new A..

organize/자바 2024.08.14

Java 28

제네릭(지네릭, Generics)컴파일 시 타입을 체크해주는 기능(compile-time type)//Tv객체만 저장할 수 있는 ArrayList를 생성 ArrayList tvList = new ArrayList(); tvList.add(new Tv());// tvList.add(new Audio()); //컴파일 에러. Tv 외 다른 타입 불가 package chapter12;import java.util.ArrayList;public class Study01Test1 { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30..

organize/자바 2024.05.16
728x90