본문 바로가기

Java

Effective java 정복기 1장 목표- 취뽀 기념 실무코드컨벤션을 잘 지키기위해 , 더 효율적인 코드를 작성하기위해 Effective java 정복기목차· 1장· 2장· 3장· 4장· 5장· 6장· 7장· 8장· 9장· 10장· 11장· 12장   1장 아이템_01 생성자 대신 정적 팩터리 메소드를 고려하라장점 1 : 생성자 자체는 생성되는 객체의 특성을 직관적으로 설명하지 않는다. 하지만 정적팩토리메소드를 사용하게 되면이름을 가질 수 있다.public static Position createStartPosition(){ return new Position(START_POSITION_VALUE);}Position position=Position.createStartPosition(); 장점 2 : Static을 사용하게 되면 클래스레벨.. 더보기
ParallelStream은 무엇일까? JAVA8에는 람다식을 효과적으로 사용할 수 있도록 기존 API에 람다를 대폭 적용하였고,그 대표적인 인터페이스는 Stream입니다. 스트림인터페이스는 컬렉션을 파이프 식으로 처리하도록하면서 고차함수로 구조를 추상화시킵니다. 스트림을 사용하게되면, 여러줄의 코드를 간편하게 처리할 수 있고, 가독성이 쉽습니다.또한 Parallel Stream이라는 것을 통해 병렬연산을 쉽고 간단하게 할 수 있다고합니다. ForkJoinFrameWork 란? ForkJoinFrameWork 는 큰 작업을 작은 작업들로 쪼개어 작업을 병렬로 처리하고 처리한 작업들을 다시 큰 작업으로 합치는 방식으로 동작합니다.(마치 분할정복 알고리즘과 같이 동작합니다.)Fork: 작업들을 작은 작업들로 분할함.Join: 분할된 작업들을 큰 .. 더보기
면접을 위한 CS 전공지식 노트 5장 자료구조란? 효율적으로 데이터를 관리하고 수정 , 삭제 , 탐색 ,저장할 수 있는 데이터 집합 C++는 STL을 기반으로 전반적인 자료구조를 가장 잘 설명할 수 있는 언어 STL 이란 ? C++의 표준템플릿 라이브러리이자 스택,배열 등 데이터 구조의 함수 등을 제공하는 라이브러리의 묶음 시간복잡도 - 빅오표기법 으로 표기를 하며 , 입력 크기에 대해 어떠한 알고리즘이 실행되는 데 걸리는 시간입니다. 주요 로직의 반복 횟수를 중점으로 츨정되며, 보통 빅오 표기법으로 나타냅니다 예를 들어 "입력크기 n"의 모든 입력에 대한 알고리즘에 필요한 시간이 n^2이라고 하면 이중 for문을 생각하면된다. 이것을 빅오표기법으로 표기하면 O(n^2)으로 표기한다. 가장 영향을 많이 끼치는 항의 상수 인자를 빼고 나머지 .. 더보기
Effetive java 2장 정리 1.생성자 대신 정적 팩터리 메서드를 고려해라 public staic Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 이름을 가질 수 있습니다. 메서드를 통해 반환될 객체의 특성을 메서드 이름을 통해 명확히 묘사할 수 있는 장점이 있습니다. 예로는 BigInteger 클래스의 BigInteger.probablePrime 메서드가 있습니다. 호출될 때마다 인스턴스를 새로 생성하지 않아도 됩니다. 이 덕분에 불변 클래스는 인스턴스를 미리 만들어 놓거나, 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있습니다. 반환 타입의 하위 타입 객체를 반환할 수 있습니다. 이는 반환할 객체의 클래스를 마음대.. 더보기
Entity 올바른 수정은 무엇인가 ? 변경 감지(Dirty Checking 방식) 스프링에서 EntityManger의 주요 기능 중 하나로 Dirty Check가 있다. EntityManger는 현재 트랜잭션에서 영속성 컨텍스트에 포함되어 있는 Entity객체에 수정이 발생할 경우, 트랜잭션이 커밋되는 시점에 내부적으로 UPDATE 쿼리를 생성하여 전달한다. 기본적으로 EntityManager의 find()나 createQuery() 메서드를 통해 조회는 Entity 객체는 영속성 컨텍스트에 포함된다. 따라서, persist() 메서드를 명시적으로 호출하지 않아도 된다. 그러나, EntityManager는 준영속 상태(Detached)의 Entity에 대해서는 Dirty Check를 수행하지 않는다. 만약, 사용자가 폼 정보를 기반으로 새로.. 더보기