Programming/JAVA 9

람다와 스트림만 사용하자(feat. CleanCode) 2024-01-30

세뇌하자. 나는 람다와 스트림만 사용하는 프로그래머다.. ㅎ🤣🤣 . 람다식(Lambda Expression)🤡 문법 문법은 간단합니다. 코드를 보는게 이해가 더 빠를 것이라고 생각됩니다. public int sum(int a, int b) { return a + b; } //람다식 변환 (a, b) -> a + b; 장점 매우 깔끔하고 알아보기도 쉽다. 동작을 사용하기 위해서 클래스를 정의할 필요도 없다. 메소드의 리턴 타입도 없고, 메서드의 이름도 없다. 람다와 함께 사용할 수 있다. 매소드 이름없이 작성할 수 있기 때문에 익명 함수(Anonymous Function)라고도 불립니다. 메서드의 이름도 리턴 타입도 없지만 뭐하는 식인지는 쉽게 알 수 있다는 장점 덕분에 java8부터 추가된 것이라고 생각..

Programming/JAVA 2024.01.30

클린코드 책 리뷰및 요약(2024-01-27)

이 책을 읽기전, 혹은 클린코드에 대한 개념을 알게되기 전에 내가썼던 코드는 쓰레기 같았다. 개발은 나혼자하는 것이 아니다. 남과 같이 하는 것이다. 아래는 내가 책을 읽으며 앞으로 코딩을 하며 지켜야 할 것들을 정리해 보았다. 1. 클린코드 핵심 요약 및 정리 [ 1. 객체의 생성에도 유의미한 이름을 사용하라 ] 객체의 생성자가 오버로딩 되는 경우 어떠한 값으로 어떻게 생성되는지 정보가 부족할 수 있다. 그러므로 이러한 경우에는 정적 팩토리 메소드를 사용하는 것이 보다 명확한 코드를 작성하게 해 줄 것이다. 하지만 구현을 드러내는 이름은 피하는 것이 좋다. (p32 참고) // 두 번째 인자가 무엇인지 파악이 어렵다. Product product = new Product("사과", 10000); // ..

Programming/JAVA 2024.01.27

ORACLE에 저장된 DB테이블을 JDBC를 이용해 이클립스에서 결과집합 출력하기.(resultset 이용) 2022-02-07

우선적으로 JDBC의 기본적인 쿼리는 연결/인증 - 문장실행 - 결과집합. 등으로 구성된다. 그 이유는 JDBC는 필요한 이유가 기본적으로 여러가지의 DB에 연결 호환성을 주기 위한 템플릿이기 떄문이다. 연결/인증 -문장실행 -결과집합은, 어느 DB에 연결하더라도 해당 DB를 사용하기 위해서 필수적으로 사용해야하는 과정이기에 JDBC는 각 DB에 맞춤형 함수들을 개발해서 JDBC 드라이버에 만들어놓았고, 우리는 그 JDBC DRIVER을 JDBC를 통해 이용하기만 하면 된다. Class.forname("oracle.jdbc.driver.OracleDriver"); //각 DB에 맞는 Driver를 호출해 준다. *특이사항 클래스를 생성할때, new연산자 안씀. Connection con= JdbcDriv..

Programming/JAVA 2022.02.07

자바의 정석 공부한것 요약3(Optional, Comparator을 익명클래스, 람다식으로 구현법, 인텔리제이로 커맨드라인cmd 사용법). 공부기간 : 2021-01-28 ~2021-05-17

2021-01-28 Optional 와 OptionalInt , Stream 와 IntStream. , 우선, 그냥 Stream 보다 기본형 Stream 사용시, int sum(), OptionalDouble average() OptionalInt max() OptionalInt min() 등, 숫자를 다루는데 편리한 메서드 들을 제공한다. 또한, 오토박싱& 언박싱으로 인한 비효율을 줄인다. max(),min() 메소드는 일반 Stream에도 정의되어 있는데, 매개변수로, Comparator을 넣어야 한다. pg.841. 이 기본형 스트림 들은, 반환 값으로, 일반 Optional이 아닌, OptionalInt를 사용한다. 2021-02-07 정렬의 기준인, Comparator 구현 하는 3가지 방법( ..

Programming/JAVA 2021.12.14

자바의 정석 공부내용 요약본2. 공부 기간: 2021-01-15~2021-01-28

2021-01-15 람다식을 받을 수 있는 래퍼런스 타입은 무엇인가? 람다식은 익명 객체이다. 즉, 익명 클래스가 선언과 동시에 생성한, 객체이다. 그러나 이 생성된 객체를 받아줄 마땅한 타입의 참조 변수가 존재 하지 않는다.->이유: Object(상위 조상의 래퍼런스)로 받는다면 Object 리모콘에는 내가 람다식으로 만들어낸 메서드가 존재 하지 않기 때문에, 컴파일 에러난다.(업케스팅때의 오류와 비슷,) 따라서 함수형 인터페이스라는 것을 통해, 람다식으로 만들어진 익명객체를 전달 받을 수 있는, 참조변수 타입을 자바에서 새로 만들었다. 다른 관점으로 설명 하자면, 애초에 익명 클래스를 생성 할 때, new 키워드 뒤에 붙이는 타입은 조상클래스의 이름 또는, 구현하고자 하는 인터페이스의 이름을 사용해서..

Programming/JAVA 2021.12.14

자바의 정석 공부내용 요약(인터페이스, 내부클래스, 예외 던지기). 2020-12-31 ~2021-1-15

2020-12-31 오늘의 공부 정리 인터페이스의 장점.-빠른 개발 시간, 서로 관계없는 클래스들끼리의 연결 가능. 표준화가 가능(JDBC을 활용하여 각 sql에 맞게 자바 프로그램을 개발 할 필요 없이 JDBC에 정의된 추상 메소드 들을 적절히 오버라이딩 해서, 사용하면, sql의 종류를 바꾼다 해도, 자바 코드를 그에 맞게 갈아엎을 필요 없음->인터페이스를 통한 표준화) 독립적인 프로그래밍 가능-> 각 클래스들 간의 의존성을 약화시켜서 한 클래스가 변경되어도, 다른 클래스의 코드나 매개변수 등을 변경하지 않아도 됨. 마치 우리가 윈도우 UI가 그대로면, 컴퓨터 내용물이 바뀌어도 전과 똑같이 컴퓨터를 사용할 수 있는 것과 같음. 2021-01-08 오늘의 공부 정리. 내부 클래스는 3가지 유형이 있음...

Programming/JAVA 2021.12.14

자바 클래스 파일과 소스파일. 하나의 자바소스파일에 2개 이상의 클래스가 오는 경우. 2021-10-15

열심히 chap03의 회원등록 서비스를 만들던중 의문이 생겼다. 그 전에는 무심코 지나쳤던 것에대해 의문이 생겼던 것이다. 하나의 자바 파일에 몇개의 클래스를 정의할수 있을까? 제한은 없을까? 자바 소스파일(.java)와 실제로 만들어지는 클래스는 어떤 관계가 있을까? 란 궁금증이 생겼다. 바로 하나의 자바파일안에 두개 이상의 클래스를 만들수 있다는 사실을 난 이유도 모른체 무심코 알고리즘 풀때부터 계속 쓰고 있었다. 나는 이게 왜 성립되는지 알지 못했다. 그리고 컴파일 했을때, 이클립스나 인텔리제이에서는 별도의 class 로 나오는 것도 신기했다. 그래서 자바의 정석, 명품 자바 Essential 을 참고하니, 자바 소스파일에 작성가능한 클래스에 대해서 정확하게 알게되었다. 1.모든 자바 에플리케이션에..

Programming/JAVA 2021.10.15

유니코드, 2의보수법, 부동소수점

우선 컴퓨터에 a 라는 문자를 char 형 데이터에 저장한다면, char a= 'a' 이렇게 char형 변수에 저장한다. 그런데 실제로 저장되는 값은 문자 a 에 매치되는 유니코드 값인 65이다. 컴퓨터는 0과 1로 이루어진 이진법 숫자만 저장 가능하기 때문이다. unicode 는 원래 아스키코드, 확장 아스키 코드 처럼 전 세계의 문자 인코딩 방식을 하나로 통합해사 만들어진 체계인데 자바는 Unicode-16 을 쓴다. 이 16의 특징은 영어든 숫자든 한글이든 다 2byte 규격으로 저장한다는 것이다. 단점은 1바이트로 저장가능한 영어조차 2바이트로 저장하니 비효율적이다. 그런데 Unicode- 8 은 영어는 1byte, 한글은 3byte 이렇게 가변적으로 문자를 표현한다. a와 b 가 n의보수관계에 ..

Programming/JAVA 2021.07.19