230504 day23 개념 정리

Jin·2023년 5월 25일
0

codenotion

목록 보기
20/90
post-thumbnail
에러 - 컴퓨터 하드웨어의 고장으로 인해 응용 프로그램 실행 오류가 발생
예외 - 사용 개발자의 잘못된 코딩으로 인해 오류가 발생 

일반예외 : 컴파일러가 예외처리 코드 여부를 검사
ClassNotFoundException
InterruptedException

실행예외 : 컴파일러가 예외처리 코드 여부를 검사하지 않음 
NullPointerException
ArrayIndexOutOfBoundsException
NumberFormatException

예외 처리 코드 
try { 예외발생커드 }
catch(예외클래스 e) { 예외처리 }
finally {}

예외 발생시키기
public method() throws Exception { 예외 발생 }

throw new 예외 생성  

리소스 자동 닫기 

리소스 - 데이터를 제공하는 객체 
ex> 파일 
안전하게 파일 닫기 
try { 
파일 열기 
	1. 파일 닫기 } 
catch(e) {}
finally {
	2. 파일 닫기 }

1번 : 트라이문에 오류가 있을 시 파일 닫기 명령어가 실행되지 않음 
2번 : 무조건 파일 닫기 실행으로 안전하게 파일 닫을 수 있음 

안전하게 파일 닫기
try-with-resources 블록 

조건 : 자동닫기를 하려면 리소스 클래스에서 AutoCloseable() 인터페이스를 구현해야함

try(파일열기) {}
catch(e) {}


라이브러리 : 만들어둔 클래스와 인터페이스(바이트코드파일, ~.class)를 모아둔 것 
- JAR 압축파일 형태로 존재 

프로그램 개발 시 라이브러리 이용 
- 프로젝트의 Build Path에 추가


모듈 (java9부터 지원) : 패키지 관리 기능이 추가된 라이브러리 
- 모듈 기술자 module_info.java

프로그램 개발 시 모듈 이용
- JAR파일 다운로드해서 이용 


객체 동등 비교 
자바는 두 객체가 동등한지 비교할 때 
hashCode()와  equals()메소드를 사용 

hashCode() 리턴값 같음 -> equals() 리턴값 같음 -> 동등 객체로 인식 


레코드 선언 (java14에 도입)
DTO(Data Transfer Object) : 데이터를 전달하는 객체

변수의 타입과 이름을 이용해서 private final 필드 자동생성
생성자 Getter메소드 자동추가 
equals(), hashCode(), toString() 메소드 재정의한 코드 자동추가

ex>
public class Person {
	private final String name;
	private final int age;

	생성자
	getter메소드 

	객체동등비교
	equals()
	hashCode()
	toString()
}

------------------------------------

public record Member(String id, String name, int age) {  }

(이렇게 간단하게 코드 작성해주면 자동으로 기능 적용)


projectlombok.org/download

cmd명령창에서 설치(관리자모드실행) 
자바프로젝트에 lib폴더 생성 jar파일 붙여넣기
build path 

requires lombok

String 클래스 : 문자열을 저장하고 조작할 때 사용

StringBuilder클래스 
(잦은 클래스 변경 시에 사용) 
- 내부버퍼 존재 (데이터를 저장하는 메모리)
: 문자열을 저장해두고 그 안에서 추가, 수정, 삭제 작업이 가능

String data = "abc"
data += "eee"

append() : 문자열 끝에 추가
insert(위치, 기본값 | 문자열) : 믄자열을 지정위치에 추가
delete(시작위치, 끝위치) : 문자열 일부를 삭제
replace(시작위치, 끝위치, 문자열) : 문자열 일부를 대체
toString() : 완서오딘 문자열 리턴  

자바 기본 타입 
byte, int, char, long, short, boolean, float, double
- 자바는 기본 타입의 값을 갖는 객체 생성할 수 있다 -> 포장 객체

<클래스>
byte - Byte
long - Long
short - Short
float - Float
double - Double
boolean - Boolean
char - Character
int - Integer

Wrapper(포장) 클래스
Boxing : 자바 기본 타입의 값을 포장 객체로 만드는 과정
Unboxing : 포장 객체에서 기본 타입의 값을 얻어내는 과정 
ex> 
Integer obj = 100; // 박싱
int value = obj; // 언박싱


비교 연산자 : 내부의 값을 비교하는게 아니라 포장 객체의 번지를 번지 
int num = 10;
int num2 = 10;
num == num2;


수학 클래스 Math : 수학 계산에 사용할 수 있는 메소드를 제공하는 클래스
- 모든 메소드가 정적 메소드 
Math.메소드

절대값 
Math.abs(-100) ---> 100 double타입
올림값
Math.ceil(5.3) ---> 6.0 double타입
버림값
Math.floor(5.3) ---> 5.0 double타입
반올림값 
Math.round(5.3) ---> 5 long타입
랜덤값
Math.random() 0.0<=v<1.0
최소값
Math.min(2,6,4,9,8) --- 2
최대값
Math.max(2,6,4,9,8) --- 9
profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글