프로그래밍 언어/JAVA 4

[JAVA] immutable 객체?방어적 복사?

immutable 객체?방어적 복사? immutable한 객체...?? 클린코드 교육을 들으며 정말 많이 들었지만 무언가 겉핥기로 아는 것 같아서 정리해보려고 한다!!!! Immuable object 정의 객체 지향 프로그래밍에 있어서 불변객체(immutable object)는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 반대 개념으로는 가변(mutable) 객체로 생성 후에도 상태를 변경할 수 있다. 객체 전체가 불변인 것도 있고, C++에서 const 데이터 멤버를 사용하는 경우와 같이 일부 속성만 불변인 것도 있다. 또, 경우에 따라서는 내부에서 사용하는 속성이 변화해도 외부에서 그 객체의 상태가 변하지 않은 것 처럼 보인다면 불변 객체로 보기도 한다. 예를 들어, 비용이 큰 계산의 결과를 캐..

JAVA - 스트림 가공하기

전체 요소중에서 내가 원하는 것만 뽑아낼 수 있습니다 filter은 스트림 내 요소들을 하나씩 평가해서 걸러내는 작업입니다. Stream stream = names.stream() .filer(name -> name.contains("a")); Map map은 스트림 내 요소들을 하나씩 특정한 값으로 변환해줍니다.이떄 값을 변환하기 위해 람다를 인자로 받습니다. 스트림에 들어간 값이 input이 되어서 특정 로직을 거친 후 output이 되어 리턴되는 새로운 스트림에 담기게 됩니다. 이러한 작업을 매핑이라고 합니다. 간단한 예제입니다. 스트림 내 String의 toUpperCase메소드를 실행해서 대문자로 변환한 값들이 담긴 스트림을 리턴합니다. Stream stream = names.stream() ...

JAVA - 스트림 생성하기

클린코드를 진행하면서 가장 생소하지만 가장 많이 쓰고 있는 문법인 스트림에 대해서 정리해볼까 한다. 1. 생성하기 -배열,컬렉션,빈 스트림 - Stream.builder(),stream.generate(),stream.iterate() -기본 타입형 String 파일 스트림 - 병렬 스트림 , 스트림 연결하기 스트림은 데이터의 흐름입니다. 배열 또는 컬렉션 인스턴스에 함수 여러개를 조합하여 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있습니다. 람다를 이용하여 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 즉 배열과 컬렉션을 함수형으로 처리할 수 있습니다. 배열 스트림 String arr = new String[]{"1","2"}; Stream stream = Arrays.stream(arr); ..

객체 간 협력 - 기본 클래스 구현

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101package sec1;//멤버 변수 선언public class student1 { String name; int money;//매개변수를 가지는 생성자 public student1(String name, int money) { this.name = name; this.money = money; }//takebus 메소드 public void takebus(ta..

728x90