본문 바로가기

Learning-log/JAVA14

[Java] Optional이란? Optional 활용법 1. NullPointerExceptionnull처리가 취약한 코드예시/* 주문 */public class Order { private Long id; private Date date; private Member member; // getters & setters}/* 회원 */public class Member { private Long id; private String name; private Address address; // getters & setters}/* 주소 */public class Address { private String street; private String city; private String zipcode; // getters & setters}/* 주문을 한 회원이 살고 .. 2023. 8. 26.
Intellij 단축키 모음 General : 일반적인 단축키 Alt + #[0-9] : 각 단축키에 해당하는 도구창 열기 Ctrl + S : 모두 저장 Ctrl + Shift + F12 : 편집기(Editor) 영역을 최대로 크기로 토글 Ctrl + Shift + I : 현재 프로필 기준으로 현재 파일 검사 Ctrl + Alt + S : 설정창(Settings) 열기 Ctrl + Alt + Shift + S : 프로젝트 구조창(Project Structure) 열기 Double Shift : 전체 검색창 열기 Debugging : 디버깅 관련 단축키 F8 : 현재 브레이크된 라인에서 다음 라인으로 이동 F7 : 현재 브레이크된 라인에서 실행하고 있는 메소드로 이동 Shift + F8 : 브레이크된 라인에서 호출한 곳으로 이동 Al.. 2023. 7. 5.
[Java] 람다식(Lamda) 개념 및 사용 정리 1. 람다함수 개념 1) 익명함수를 지칭하는 용어(메소드의 이름 필요 없음) 2) 수학에서 사용하는 함수를 보다 단순하게 표현, 함수를 하나의 식으로 표현 3) 함수형 인터페이스의 인스턴스를 생성하여, 함수를 변수처럼 선언 4) 1급 객체 -> Stream API의 매개변수로 전달 가능 2. 람다의 특징 - 람다식 내의 지역변수는 final을 붙이지 않아도 상수로 간주 - 람다식으로 선언된 변수명은 다른 변수명과 중복 불가 - 람다식으로 생성된 순수 함수는 함수형 인터페이스로만 선언 가능 3. 람다의 장단점 1) 장점 - 코드 간결해짐 - 개발자의 의도가 식에 드러나게 되어 가독성이 높아짐 - 함수를 만드는 과정 없이 한번에 처리해 생산성 높아짐 - 병렬 프로그래밍 용이 2) 단점 - 람다를 사용하여 만.. 2023. 6. 20.
패키지, import, 캡슐화, 접근제한자, 접근자, 설정자, static, JVM 메모리 구조 (Java) 접근 제한자접근제한을 할 때 패키지로도 접근제한 가능 패키지프로그램의 많은 클래스를 관리하기 위해 패키지 이용(컴퓨터의 폴더와 비슷)패키지는 클래스와 관련있는 인터페이스를 모아두기 위한 이름 공간(Name Space)패키지 구분은 .(dot) 연산자 이용 (컴퓨터에서 하위폴더 나타낼 때 \쓰는 것과 유사)패키지 이름은 시중에 나와 있는 패키지들과 구분되게 지어야함why ? 수백만개의 회사의 수많은 프로젝트들의 클래스 이름이 중복될 수 있기 때문에 패키지로 구분일반적으로 도메인.프로젝트이름.모듈이름ex. com.ssafy.project_이름.module_이름일반적으로 소속이나 회사의 도메인 사용중첩 가능(마치 컴퓨터의 하위폴더가 있듯이!)ex. List 사용 시 java.awt 안에 들어가 있는 것과 ja.. 2023. 4. 1.
[Java] 상속과 다형성 상속부모에서 private으로 막아놓은걸 자식이 오픈할 순 없음새로운 설계도를 만들 때 맨땅에서 새로 시작하는게 아니라 기존에 만들어둔 class에 플러스해서 새로운 걸 만들 수 있지 않을까? ⇒ 상속이란, 기존의 설계도를 재사용하기 위해 등장상속 : 어떤 클래스의 특성을 그대로 갖는 새로운 클래스를 정의한 것기존 클래스 : 상위 클래스, 부모클래스, super class상속받은 클래스 : 하위 클래스, 자식클래스, sub class⇒ 상속을 받은 자식 클래스를 호출하면 부모클래스를 먼저 호출. 부모클래스 도장 꽝 찍은 후 나머지 자식 클래스로도 도장 꽝!⇒ 그래서! 자식 클래스에서 부모클래스 내에 있던 메소드나 변수 볼 수 있는 거상속 안 받은 경우 : → 자동완성 창에 클래스 자기 자신의 이름이 뜸상.. 2023. 4. 1.
객체지향 프로그래밍 정리(Java, Class, 생성자, 인스턴스, 변수, 메서드, this) (아래 다 읽은 후 한번 더 읽어보기! )타입 : 메모리에 공간을 만드는 도장(각 타입별로 필요한 공간 찍어냄)변수 : 타입이 찍어낸 공간에 이름 붙인 후, 변수에 대입한 값이 heap에 저장되면 그 주소값 기억메소드 : 자꾸 반복해야 하는 작업을 일련의 과정으로 정의. 일부가 변화할 필요가 있다면 매개변수 지정.생성자 : 메소드의 특수한 형태로, 클래스를 호출하여 객체를 만들 때 객체 초기세팅에 이용. 리턴값에 대한 설정이 없고, 설정 안하면 기본 셋팅된다는 특이점 존재.클래스 : 관련있는 변수와 메소드를 묶어놓은 묶음 도장.특히 데이터와 밀접한 연관이 있는 메소드는 데이터와 클래스를 묶어서 만들면 사용하기 좋음. 만들어놓고 자료형으로 사용. (String이나 Scanner 떠올려보기) 객체지향 프로그.. 2023. 3. 23.