java 50

추상클래스의 객체 생성 (추상클래스 인스턴스) - 추상클래스를 사용하는 이유

👏🏻 요약 더보기 객체생성을 하지 않아도 된다는 의도를 명확히 하기위해서 + 의도치않은 메모리 낭비를 막기위해 김영한님 강의를 보는 도중 상수 정보만을 가진 클래스를 만들었는데, 이 클래스가 상수 정보만을 담고있기때문에 객체생성을 막기위해 abstract class 로 선언을 하는 것을 보고 조금 의아해서 글을 남겨보고자 합니다. 김영한님 왈) 상수를 모아서 쓴거기 때문에 객체를 생성하면 안되겠죠? 그래서 abstract 로 객체 생성을 막아놓았습니다. //상수 데이터만 담은 class - 객체 생성하지 않기위해 추상클래스로 public abstract class ConnectionConst { public static final String URL = "jdbc:h2:tcp://localhost/~/t..

Java/Java 문법 2022.09.19

[Java] 스트림에서 오토박싱 (박싱, 언방식)이 일어나는 이유

스트림 병렬처리를 진행할 때, paraller Stream 이 순차적인 iterate(반복자) 보다 성능이 느리게 나오는 경우가 있습니다. ❓ 스트림 병렬처리의 성능이 낮게나오는 이유 중 하나로, 기본형(원시 타입) 특화되지 않은 스트림을 초러할 때 수반되는 오토박싱, 언방식 등의 오버헤드를 수반하기 때문이다. 라는 이유가 언급되었고, 그렇다면 스트림에서 왜 오토박싱이 일어나는지 잊어먹지 않기위해 정리합니다. 📗 요약 : 제네릭 때문에 자바 Stream 에서 내부적으로 오토박싱이(auto boxing) 일어나는 이유 📌 modern java in action 103 쪽을 보면 이유 1 👏🏻 함수형 인터페이스들에 제네릭 파라미터가 쓰여져있고, Java 에서 generice 은 참조형만 사용할 수 있다고 합..

Java/Java 문법 2022.09.16

[모던자바인액션] chapter 5. Stream 사용 가이드 - 스트림 활용

" Modern Java In Action - 모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드 " 독서 스터디 후, 책 내용을 정리한 글입니다. 1) Chapter 1. 자바 8, 9, 10, 11 : 무슨일이 일어나고 있는가? 2) Chapter 2. 동작 파라미터화 코드 전달하기 3) Chapter 3. 람다 표현식 4) Chapter 4. Stream 5) Chapter 5. Stream 활용 6) Chapter 6. Stream으로 데이터 수집하기 7) Chapter 7. Stream 병렬 데이터처리와 성능 Chapter 5 에서는 스트림 활용 가이드를 제공합니다. 그냥 스트링 어떻게 잘 쓰는지에 대한 예시들? 을 제공해줍니다 1. 필터링 스트림에서 요소를 선택하는 필터링을 ..

[모던자바인액션] chapter 4. Stream 이란 - 자바 스트림 가이드

" Modern Java In Action - 모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드 " 독서 스터디 후, 책 내용을 정리한 글입니다. 1) Chapter 1. 자바 8, 9, 10, 11 : 무슨일이 일어나고 있는가? 2) Chapter 2. 동작 파라미터화 코드 전달하기 3) Chapter 3. 람다 표현식 4) Chapter 4. Stream 5) Chapter 5. Stream 활용 6) Chapter 6. Stream으로 데이터 수집하기 7) Chapter 7. Stream 병렬 데이터처리와 성능 Chapter4 에서는 java8 이후 생긴 Stream API 에 대해서 설명합니다. Stream 사용하는 방법 Stream 파이프라인을 구성하는 방법 Stream 활용..

[모던자바인액션] chapter 2. 동작파라미터화란 - 파라미터로 코드 전달하기

" Modern Java In Action - 모던 자바 인 액션, 전문가를 위한 자바 8, 9, 10 기법 가이드 " 독서 스터디 후, 책 내용을 정리한 글입니다. 1) Chapter 1. 자바 8, 9, 10, 11 : 무슨일이 일어나고 있는가? 2) Chapter 2. 동작 파라미터화 코드 전달하기 3) Chapter 3. 람다 표현식 4) Chapter 4. Stream 5) Chapter 5. Stream 활용 6) Chapter 6. Stream으로 데이터 수집하기 7) Chapter 7. Stream 병렬 데이터처리와 성능 Chapter2. 동작 파라미터화로 코드 전달하기, 에서는 자주 변경되는 요구사항에 유연하게 대응할 수 있는 코드를 설계하자. 를 주된 목적으로 기술된 챕터같습니다. 변경..

[IntelliJ] 인텔리제이 단축키 모음 - Mac, Window 조금..ㅎ

💥 내가 자주 사용하는 인텔리제이 단축키 !! 💥 계속 추가할 예정 [코드 단축키] soutv : 작성시, print 객체 나옴 Command + Option(alt) + V : 변수 추출 Command + Option(alt) + m : 메소드 추출 F6 : 클래스 추출 (클래스 이름 드래그 후 f6 ➡️ 상위 클래스 추출 혹은 클래스 패키지 이동) Command + Option(alt) + n : 인라인 = 중복된 코드 추합 Command + shift + u : 전부 대소문자 변환 - upper case / downer case Ctrl + Command + u : translation 번역 모듈 실행 Ctrl + Command + O (ctrl + shift + x) : 한글 문자에 맞는 변수명 ..

Spring/기타 2022.07.06

[JAVA] record 불변 객체 타입 (feat Lombok @Value)

java 14에서 preview로 등장했고, java 16때 정식 기능으로 나온 기능입니다. 새로운 java Type 이며, 자바에서 불변객체를 만들기위해, 필요한 코드의 중복을 줄여주는 기능을 합니다. (👉 Lombok과 매우 비슷 := @Value) 기능 모든 프로퍼티를 포함한 생성자 제공 모든 프로퍼티에 private final 적용 모든 프로퍼티의 getter 메소드 생성 toString, equals, hashCode 메소드 생성 프로퍼티들에게 annotation을 붙일 수 있도록 허용 불변 객체 vs record 타입 vs @Value ✨[Record 타입을 사용하지 않은, 기존의 클래스] 불변 객체를 만들기 위해, 매개변수에 private final 을 붙힘 //Record를 사용하지 않은 ..

Java/Java 문법 2022.06.02

1. 자바 네이밍 규칙 (java 네이밍 컨벤션)

[짧은 정리] 상수(final) : 대문자 변수 : 소문자 or 카멜 메소드 : 카멜 클래스 : 파스칼 URL : 소문자 + 명사(자원) + 언더바(x) 대시[-]로 변수키워드 정렬 순서 : private static final (PSF) 0. 자바 공통 네이밍 규칙 1. 대소문자가 구분되어야하고, 길이에 제한이 없다 길이에 제한이 없다가 중요한 것 같다(변수명으로 의미부여를 명확하게 -> 주석사용 지양) 2. 예약어 사용 x java에서 사용하고있는 명들 (ex - class, import, char, break) 3. 숫자로 시작하면 안된다 4. 특수문자는 '_(언더바)' 와 '$' 만 허용한다. 5. 파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다. PascalCa..

[BackTracking] boj 14712 java "넴모넴모 (Easy) "

넴모넴모 (Easy) 성공출처 시간 제한메모리 제한제출정답맞은 사람정답 비율 1 초 512 MB 300 170 130 69.149% 문제 네모는 뿌××× 게임에 깊은 감명을 받아, 직사각형 모양의 격자판과 “넴모”라는 수수께끼의 생물을 이용하는 “넴모넴모”라는 게임을 만들었다. 이 게임의 규칙은 아주 간단하다. 격자판의 비어 있는 칸을 임의로 골라 “넴모”를 하나 올려놓거나, “넴모”가 올라간 칸 네 개가 2 × 2 사각형을 이루는 부분을 찾아 그 위에 있는 “넴모”들을 모두 없애는 것을 질릴 때까지 반복하면 된다. 하지만 안타깝게도 게임은 정말 재미가 없었고, 네모는 아주 빨리 질려 버리고 말았다. 실망한 네모는 게임을 적당히 플레이하다가, “넴모”를 없애고 싶은데 격자판 위에 없앨 수 있는 “넴모”가..

알고리즘 문제 2021.07.22

[java] 객체 정렬 Comparable과 Comparator

* C++ 에서 Pair가 있지만, 자바에서는 클래스를 정의해 주어야한다. ​ 1. Comparable 인터페이스 - 자바에서 객체를 정렬하는데 사용되는 메소드인 compareTo() 메소드를 정의하고있는 인터페이스​이다. - 자바에서 같은 타입의 인스턴스를 서로 비교햐야만 하는 클래스들은 모두 Comparable 인텊페이스를 구현하고 있다. - 따라서 Boolean을 제외한 래퍼 클래스나 String, Time, Date와 같은 클래스의 인스턴스느 모두 정렬이 가능하다. - 기본 정렬 순서는 "오름차순"이다. class Car implements Comparable { private String modelName; private int modelYear; private S..

Java/Java 문법 2021.04.28
반응형