java

java/java 기본

14. 람다와 스트림

1. 람다식 1.1. 람다식 사용 조건 Java 8 이상 버전 함수형 인터페이스(Functional Interface) 일 때 사용 가능 이름이 거창할 뿐이지 익명 클래스 중 아래의 조건일 때 람다식으로 변경이 가능하는 뜻 함수형 인터페이스: 하나의 추상 메서드만을 가지고 있는 인터페이스 default 메서드는 제외 Object 메서드 제외 @functionalInterface : 애노테이션을 이용해서 조건에 부합한 인터페이스인지 체크 가능 익명클래스 함수형 인터페이스 ⊂ 익명클래스 익명클래스 : 인터페이스, class 상관 없이 기준이 되는 class나 interface 를 가지고 익명 객체를 생성할 수 있다. 물론 부모의 method의 개수도 제약이 없다. 함수형 인터페이스 : lambda 식을 위한..

java/java toyProject

원카드 만들기 - v2.설계도

1. 원카드 설계도 v2 v1 : hardCoding을 통해 원카드를 작성했기 때문에 설계도 조차 없다. v2 : v1에서 수정할 부분과 전반적인 상황이 눈에 들어오기 때문에 작을 클래스로부터 TDD를 수행하면서 키워나갔다. v2 자가피드백 재료에 속하는 class는 금방 만들어 냈지만 이 class들을 조합하는 과정인 Dealer, CardGame class는 아직 미숙하다. oneCard라는 게임이 복잡해서 더욱더 분리해서 메서드를 작성하기가 힘들었다. 그리고 CardGame에서보면 code가 메서드 명만 봤을때는 몇개 없지만 method 구현부자체가 너무 복잡하고 중복되는 부분들이 보였다. 그리고 class를 상속하는 class가 어떤식으로 연결될지 생각하면서 code를 짰지만 뭔가 찝찝한 부분들이..

java/java 기본

13. 쓰레드

1. 프로세스와 쓰레드 용어 프로그램이 실행되면 프로세스가 된다. program pro:진행되는 , gram: 정보 저장되는 파일 형태 저장 공간만 존재하면 된다 - HDD, SDD process cess==go 작업이 실행되는 것 명령어가 필요한 것 -CPU 프로그램을 더블 클릭 후 수행이 되는 상태로 변하면 프로세스가 된다. * 동영상같은 것은 데이터만 있기 때문에 프로그램이지만 프로세스가 아니다. process - 쓰레드 프로세스 : 작업에 필요한 데이터와 메모리 등의 자원 쓰레드로 구성되어 있는 것 쓰레드: 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 싱글쓰레드 : 자원 하나에 쓰레드 한 개 멀티쓰레드 : 자원 하나에 쓰레드 여러 개 -> 자원을 공유하기 때문에 동기화 문제가 생긴다. 2..

java/java 심화

Class 객체 - Reflection API

Class 객체 java.lang.Class 클래스는 모든 클래스의 메타 정보를 나타내는 클래스 클래스의 모든 정보 제공 : 생성자, 필드, 메서드, 접근 제어자,어노테이션 등등 클래스 당 1개만 존재 Class 객체 자체 메서드 존재 원리 Car class를 작성한 Car.java 파일이 존재 프로그램에서 참조변수로 해당 Car type을 부름 Car.java -> compile -> Car.class : 컴파일 완료 컴파일 된 .class 파일은 한 파일(xxx.java) 내에 여러 class 클래스명{}들이 존재하더라도 compile시 각각의 파일(.class)로 나누어준다. 그래서 Class 객체가 클래스당 1개만 존재가 가능 ClassLoader라는 것을 통해서 (위의 과정과 같이 클래스 정보..

java/java 심화

Object clone() - 얕은 복사, 깊은 복사

clone() _ 얕은 복사, 깊은 복사 clone() 인스턴스변수의 값만 복사하기 때문에 참조타입의 인스턴스 변수가 있는 클래스는 완전한 인스턴스 복제가 일어나지 않는다. 참조타입의 인스턴스 변수: 객체에 iv들이 존재하는데 iv 값이 다른 객체 주소를 가리키는 상황. 완전한 복제가 안된다는 의미: 객체까지는 복사가 됬는데 객체 내부의 iv가 가리기는 다른 객체는 서로 공유하는 상황 이와 같은 clone을 얕은 복사라고 한다. -> 서로 공유하는 객체가 존재하기 때문 clone() 사용 방법 clone의 얕은 복사로 인해 원본 객체에 영향을 끼치기 때문에 원본 보호 목적으로 특정 조건을 허용해야 clone()을 사용할 수 있도록 했다. implements Cloneable : interface 구현 접..

wooweee
'java' 카테고리의 글 목록