728x90

java 9

orElseThrow로 코드 가독성을 높이자

회사에서 프로젝트 진행시 Optional 객체의 유무를 판단하고 예외를 처리하기 위해 if문을 사용했다 그러다가 개인 스터디에서 다른 분들이 orElseThrow를 사용하는 거를 보고 코드의 가독성이 높다고 생각하게 되었다 아래 if문을 쓸 때와 orElseThrow 사용할 때 코드를 비교해 보면, 예시 코드 public class NoticeService { // if 사용 public void remove(Long noticeId) { // select Optional noticeResponse = noticeMapper.findById(noticeId); // 예외처리 if(noticeResponse.isEmpty()){ throw new NoticeNotFoundException(); } if (..

IT/java 2023.08.30

Java에서의 Array, List, Map, Set, lterator

List는 왜 만들어졌냐? => 배열의 한계 때문, 배열을 사용하기 위해서는 크기를 정해야함!! 따라서 List 만들어짐 int[] num = new int[10]; // 크기 지정해야함 List num1 = new ArrayList(); // 크기 지정 안해줘도 됨 ArrayList 데이터(객체) 저장공간으로 배열을 사용. ArrayList list1 = new ArrayList(10); // ArrayList에는 객체만 저장가능 // autoboxing에 의해 기형이 참조형으로 자동 변환됨! 그리고 그냥 5 이렇게 적어도 된다 list1.add(5); list1.add(new Integer(3)); list1.add(new Integer(4)); list1.add(new Integer(0)); lis..

IT/java 2022.07.04

자바 - 클래스에서 인스턴스(Instance) 생성과 사용

자바의 정석 책을 토대로 작성하였습니다. - 클래스로부터 인스턴스 생성하는 방법 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수 선언 변수명 = new 클래스명(); //클래스의 객채를 생성후, 객체의 주소에 참조변수 저장 Tv t; // Tv클래스 타입의 참조변수 t를 선언 t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장 1. Tv t; Tv클래스 타입의 참조변수 t선언, 메모리에 참조변수 t를 위한 공간이 마련, 아직 인스턴스 생성되지 않았으므로 참조변수로 아무것도 할수 없음 2. t = new Tv(); 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성. 이 떄, 멤버변수는 각 자료형의 해당하는 기본값으로 초기화됨 (..

IT/java 2022.05.09

TIL(Today I Learned) 20220421 자바 배열, 자바 열거 타입

https://youtu.be/SdxYPh8YWVY 배열 -데이터를 연속된 공간(메모리)에 나열하고 각 데이터에 인덱스(index) 부여한 자료구조 -같은 타입의 데이터만 저장할 수 있음 -한 번 생성된 배열은 길이를 늘리거나 줄일 수 없음 배열 선언 - 2가지, 타입 뒤에 [], 변수이름 뒤에 [], 보통은 타입 뒤에 []가 많음 - 배열은 참조타입이기 때문에 번지가 저장됨 - 참조할 배열 객체 없는 경우 배열 변수는 null 값으로 초기화 배열 생성 - 값 목록으로 배열 생성 타입[] 변수 = { 값0, 값1, 값2, 값3, .... } 이 방식은 변수 선언 다음 값 목록을 지정해줘야함 배열 변수 선언한 뒤에 다른 실행문에서 값 목록으로 배열 생성 불가능 타입[] 변수; 변수 = { 값0, 값1, 값..

TIL/myself 2022.04.21

TIL(Today I Learned) 20220420 자바 참조타입과 참조 변수

https://youtu.be/UOaK4TDkaww 참조타입: 객체의 번지를 참조하는 타입, 배열, 열거, 클래스, 인터페이스 기본타입은 선언되면 메모리 스택영역에 저장, 참조타입(String) 변수는 힙영역에 객체 생성, 스택영역에는 번지가 저장됨 메모리 사용영역 메소드 영역: 클래스 별로, 정적필드, 상수, 생성자, 메소드 코드 등을 분류해 저장 힙 영역: 객체와 배열이 생성되는 영역 JVM스택 영역: 매소드를 호출할때마다 프레임 추가되고, 메소드가 종료되면 해당 프레임 제거 참조 타입 변수는 스택영역에 힙영역에 생성된 객체의 주소 가짐 참조 타입 변수 간의 ==, != 연산 동일 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 떄 사용 번지 값의 비교, 참조하는 객체가 같은지 참조타입 젼수는 객체..

TIL/myself 2022.04.20

TIL(Today I Learned) 20220419 자바 조건문과 반복문

https://youtu.be/ETB8VGU9o04 위에서 아래로 실행하는 흐름을 가지고 있는데, 개발자가 원하는 방향으로 바꿀수도 있도록 하느데 흐름 제어문, 제어문이라 함 제어문에는 조건문과 반복문이 있다. 자바 조건문: if문, switch문 if문 -조건식에 올수 있는 요소 true/ false값을 산출하는 연산식, boolean 타입 변수 -중괄호 블록은 조건식 true가 될때 실행, 실행할 문장 하나뿐인 경우 생략가능하나 되도록 붙이기 if-else if-else문 -조건식이 여러개인 if문 -처음 if문의 조건식이 false일 경우 다른 조건식의 결과에 따라 실행 블록 선택, else if문 개수는 제한 없음 Math.random() 0~1사이 임의의 실수를 리턴 System.out.prin..

TIL/myself 2022.04.19

TIL(Today I Learned) 20220418 자바 연산자과 연산식

https://youtu.be/MrFP_vCK5QU - 프로그램에서 데이터를 처리하여 결과를 산출하는것을 연산(operation)이라고 한다. 연산자: 연산에서 사용되는 표시나 기호 피연산자: 연산자와 함께 연산되는 데이터 연산식: 연산자와 피연산자 사용하여 연산 과정 기술한것 자바에서 제공되는 연산자: 산출되는 값의 타입이 연산자별로 다름 이항: 2개, 단항: 1개 연산식은 반드시 하나의 값 산출 변수에 연산식의 값을 저장 다른 연산식의 피연산자 위치에 연산식 대입 가능 복합적으로 구성된 연산식의 연산: 우선순위에 따라 수행 단항 -> 이항 -> 삼항 산술 -> 비교 -> 논리 -> 대입 우선순위가 같은 연산자는 왼쪽에서 오른쪽 방향으로 수행 예외) 대입 연산자는 오른쪽에서 왼쪽으로 https://yo..

TIL/myself 2022.04.18

TIL(Today I Learned) 20220417 자바 변수와 시스템 입출력

https://youtu.be/TWPd2mdbnNY System.out.println() , System.out.print() , System.out.printf() System.in.read(), Scanner System.out: 시스템의 표준 출력 장치(모니터)로 출력 System.in: 시스템 표준 입력 장치에서 읽음 모니터로 변수값 출력하기 println() 메소드: 괄호 안에 리터널 넣으면 그대로 출력/ 변수 넣으면 저장된 값 출력 println(내용); 괄호 안 내용을 출력하고 행을 바꿔라 print(내용); 괄호 안 내용만 출력 printf("형식문자열", 값1, 값2 ...); 괄호 안의 첫번째 문자열 형식대로 내용을 출력해라 printf() 메소드는 개발자가 원하는 형식화된 문자열 출력..

TIL/myself 2022.04.17

TIL(Today I Learned) 20220416 자바 변수

https://youtu.be/RJewaCQZEHU 자바는 문자와 문자열을 다르게 인식! "" 큰따움표로 감싼것을 문자열로 인식 문자열은 char 타입에 저장할 수 없음 strong 타입에 저장해야함(strong 타입은 자바의 기본타입에는 속하지 않음, 참조타입) char타입에는 작은따움표''로 감싼 하나의 문자 리터럴만 저장가능 이스케이프 자바는 실수리터럴을 기본적으로 double 타입으로 해석 float var = 3.14;(X) 3.14를 기본적으로 double타입으로 인식해서 float타입으로 저장하고자 하면 컴파일 오류 발생 float타입으로 저장할려고 하면, f를 리터럴 앞이나 뒤에 넣어줘야함, 대소문자 상관없음 float var = 3.14f; (O) 🙆‍♀️ 논리타입 정수를 지정할수 있는 ..

TIL/myself 2022.04.16
728x90