일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 데베
- 딥러닝
- 백준
- 정리
- 백준 5525번
- 리액트 네이티브
- 문자열
- 모두의네트워크
- 백준 4949번
- 모두를위한딥러닝
- 깃허브 로그인
- 깃허브 토큰 인증
- 지네릭스
- 백준 4358번
- 머신러닝
- 팀플회고
- 자바
- 스터디
- 네트워크
- 모두를 위한 딥러닝
- 데이터베이스
- HTTP
- 리액트 네이티브 프로젝트 생성
- React Native
- 깃 연동
- SQL
- 리액트 네이티브 시작하기
- 깃 터미널 연동
- 백준 4358 자바
- 모두의 네트워크
- Today
- Total
목록책을 읽자/Java의 정석 (12)
솜이의 데브로그
출처 : Java의 정석 1. 람다식 (Lambda expression) 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식이란? 메서드를 하나의 '식(expression)'으로 표현한 것이다. 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명 함수'라고도 한다. 메서드의 매개변수로 전달되어지는 것이 가능하고, 메서드의 결과로 반환될 수도 있다. ex) int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5) + 1); 함수형 인터페이스 (Functional Interface) 람다식을 다루기 위한 인터페이스 단, 함수형 인터페이스에는 오직 하나의 추상 메서드만 정의되어 있어야 한다. 그래야 람다식..
출처 : Java의 정석 1. 지네릭스 (Generics) 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움이 줄어든다. 지네릭스의 장점 타입 안정성을 제공한다. 타입 체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있다. ex) class Box{ // 지네릭 타입 T를 선언 T item; void setItem(T item) { this.item = item; } T getItem() { return item; } } 위의 예시에서 T를 '타입변수'라고 하며, Type의 첫 글자에서 따..
출처 : Java의 정석 1. 컬렉션 프레임웍 (Collections Framework) 컬렉션 프레임웍이란, '데이터 군을 저장하는 클래스들을 표준화한 설계' 를 뜻한다. 컬렉션 프레임웍은 컬렉션, 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공한다. 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의. 컬렉션 프레임웍의 핵심 인터페이스 컬렉션 프레임웍에서는 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. (Map은 다른 형태라서 상속 계층도에 포함 안함) List : 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. 구현 클래스 : ArrayList, Linked..
참고 : Java의 정석 1. java.lang 패키지 java.lang 패키지는 자바 프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있다. 그러므로 java.lang 패키지의 클래스들은 import문 없이도 사용할 수 있다. 대표적으로 String, System 클래스들을 import문 없이 사용할 수 있었던 이유가 이것이다. Object 클래스 Object 클래스는 멤버변수는 없고 오직 11개의 메서드만을 가지고 있다. 이 중 중요한 몇가지만 정리. (1) equals (Object obj) 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean 값으로 알려준다. 즉, 두 객체의 같고 다름을 참조변수의 값으로 판단한다. 따라서 서로 다른 두 객체를 euqals 메서드로 비교하면 항상..
참고 : Java의 정석 1. 예외처리 (Exception handling) 에러의 종류 컴파일 에러 : 컴파일 시 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리 에러 : 실행은 되지만 의도와 다르게 동작하는 것 소스코드의 실행 과정은 다음과 같다. 소스코드(*.java) 에 대해 컴파일러가 오타나 잘못된 구문, 자료형 체크 등의 기본검사를 수행 → 클래스 파일 (*.class) 생성 → 생성된 클래스 파일 실행. 실행 시 (runtime) 발생할 수 있는 프로그램 오류는 에러와 예외 두가지로 구분한다. 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. ex) 메모리 부족 (OutOfMemoryError), 스택오버플로우 예외 (Exception) : 프로그램 코드에 의해 수습..
참고 : Java의 정석 1. 상속 (inheritance) 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해 적은양의 코드로 새로운 클래스를 작성 할 수 있고, 코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경이 매우 용이하다. 다음과 같이 상속받을 수 있다. class Child extends Parent{ //... } 조상클래스 : 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 : 자식(child) 클래스, 하위(sub) 클래스, 파생된(derived) 클래스 자손 클래스는 조상 클래스의 모든 멤버를 상속받으므로, Child 클래스는 Parent 클래스의 멤버들을 포함한다고 할 수 있다. extends 의 의미 -..
참고 : Java의 정석 1. 객체지향언어 객체지향 이론은 상속, 캡슐화, 추상화 개념을 중심으로 발전되었다. 객체지향 언어의 가장 큰 장점은 '코드의 재사용성이 높고 유지보수가 용이하다.' 는 것이다. + 중복제거 코드의 재사용성이 높다. 코드의 관리가 용이하다. 신뢰성이 높은 프로그래밍을 가능하게 한다. (코드의 중복을 제거하여 코드의 불일치로 인한 오동작 방지) 2. 클래스와 객체 클래스 클래스란 객체를 정의해놓은 것으로, 객체를 생성하는데 사용한다. JDK에서는 많은 클래스 (Java API)를 제공하고 있다. 인스턴스 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스(instance)라고 한다. ★ 내가 계속 궁금했던 부분 인..
참고 : Java의 정석 1. 배열 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다. 배열의 선언에는 두가지 방법이 있다. 타입[] 변수이름; 타입 변수이름[]; 배열의 생성 파이썬과의 차이점에 주의하자. ex) int[] score; //배열을 선언(참조변수 선언) score = new int[5]; // 배열을 생성 (실제 저장 공간을 생성) 위와 같이 배열의 선언 후에는 배열을 생성해야 한다. 또는 다음과 같이 선언과 생성을 동시에 할 수도 있다. int[] score = new int[5]; ※각 배열을 int로 선언 시, 배열 요소는 자동적으로 int의 기본값인 0으로 초기화된다. 변수로 배열 내용 선언할 때, 유효한 범위를 벗어난 값을 index로 사용하면 컴파일은 되지만 Arr..