일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 붕대 감기
- spring security
- CPU
- 리눅스
- contiune
- 붕대 감기
- 중첩 break
- 멀티태스킹
- java
- break 사용법
- SQL Mapper
- 쿠키
- 객체지향
- 붕대 감기 자바
- 오버로딩
- 오버라이딩
- 자바의정석
- spring security 설정
- 혼공얄코
- 멀티프로세싱
- 다형성
- 자바의 정석
- 입출력
- hackerrank
- 프로그래머스
- continue 사용법
- over()
- 티스토리챌린지
- 오블완
- 캡슐화
- Today
- Total
목록자바의 정석 (14)
쉽게 쉽게
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 입출력(I/O)이란? I/O는 Input과 Output의 약자로 입력과 출력을 의미한다. 즉 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고받는 것을 말한다. 입출력의 예를 들면 키보드로 데이터를 입력받거나, System.out.println()을 이용해서 출력하는 것이 있다. 데이터를 주고 받으려면 두 대상을 연결하고 데이터를 전송할 수 있는 무언가가 필요한데 이것을 스트림(stream)이라 한다.(데이터를 다뤘던 스트림과 이름만 같음) 입출력에서 스트림은 데이터를 운반하는 데 사용되는 연결통로다. 입력과 출력을 수행하려면 *입력 스트림과 출력스트림이 필요하다. 입력 스트림 : 대상으로부터 자료를 읽어들이는 스..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 스트림이란? 스트림은 데이터 소스를 추상화하고, 데이터를 다루는데 자주 사용되는 메서드들을 정의해 놓았다. 1. 스트림을 사용하는 이유 스트림을 사용하는 이유는 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있기 때문이다. 데이터를 다룰 때, 컬렉션이나 배열에 담고 for문과 Iterator를 이용했지만, 이러한 방식은 코드가 길고 재사용성이 떨어진다는 단점이 있다. 또한 데이터 소스마다 다른 방식으로 다뤄야 한다는 점도 있다. Collection이나 Iterator와 같은 인터페이스를 이용해서 표준화시키긴 했지만 각 컬렉션마다 같은 동작을 위해 다른 메서드를 사용하는 경우가 있다. 예를 들어..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 람다식이란? 메서드를 하나의 '식'으로 표현한 것 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 함수를 람다식으로 표현하면 메서드의 이름이 필요 없기 때문에, 람다식은 *익명 함수(Anonymous Function)의 한 종류라고 볼 수 있다. ★ 람다식 사용배경 람다를 지원하기 전의 자바는 완전한 *명령형 프로그래밍이었다. 명령형 프로그래밍 : 클래스에서 메서드를 정의하고, 필요할 때 그 메서드를 호출하는 명령하여 동작한다. 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라, 복잡하게 엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다. ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 쓰레드란 쓰레드를 설명하기 이전에 먼저 프로세스를 알아야 한다. 프로세스란 실행 중인 프로그램을 의미한다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 이런 프로세스는 프로그램을 수행하는 데 필요한 데이터, 메모리 등의 자원 그리고 쓰레드로 구성되어 있다. OS에서 실행 중인 하나의 애플리케이션 즉 ctrl + alt + del창 작업 관리자에서 프로세스 탭에 올라와 있는 어플리케이션 하나를 하나의 프로세스라고 부른다. ex) Chrome 만약 우리가 크롬창을 더블클릭 누른다면(실행) 운영체제로부터 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는 것이 프로세스이다. 크롬을 2..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 지네릭스란? 다양한 타입의 객체들을 다루는 메서드나 켈렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 지네릭스의 용어 위와 같이 클래스를 만들 때 클래스 명 옆에 지네릭스를 붙이고 선언하면 이것을 지네릭 클래스라 한다. 그리고 이때 지네릭스에 들어가는 자리의 변수를 타입변수, 타입 매개변수라 한다. 그리고 타입변수로서 들어간 문자는 타입 문자라 한다. 는 타입 변수로 이 클래스로 객체를 생성할 때 해당 객체에 어느 자료형이든 저장 가능하단 뜻이다. (T가 아니더라도 상관없다. String이든 Integer든 뭐든 가능하다는 의미) 는 객체를 생성하고 이용할 때 어떤 타입인지 결정된다. 마지막으로 원시타입은 일반 클래스..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. Arrays Arrays에는 배열을 다루는데 유용한 메서드가 정의되어 있다. copyOf(arr, arr.length) 길이만큼 배열 복사 copyOfRange(arr, from, to) from부터 to까지 복사(to는 범위에 포함x) fill(arr, 값) 배열의 모든 요소를 지정된 값으로 채움 setAll(arr, 함수형 인터페이스 or 람다식) 배열을 채울 함수형 인터페이스(math.random())을 매개변수로 sort(arr) 배열을 정렬 binarySearch(arr,위치) 배열에 저장된 요소를 검색해서 위치 반환(정렬된 상태야 올바른 결과,이진 검색으로 속도가 빠름) equals() 요소 비교 toString(..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. java.time 패키지 JDK1.8이전에는 Date와 Calendar를 사용했지만, 1.8이후에는 java.time패키지가 추가되었다. ★ Calendar와 차이점 java.time패키지가 가진 클래스들은 '불변'하다는 특징을 가지고 있다. 그래서 날짜나 시간을 변경하는 메서드들은 기존의 객체를 변경하는 대신 항상 변경된 새로운 객체를 반환한다. 기존 Calendar는 변경가능하므로, *멀티쓰레드 환경에서 안전하지 못하다. 멀티쓰레드 환경이란 멀티쓰레드 환경에서는 동시에 여러 쓰레드가 같은 객체에 접근할 수 있기 때문에 변경 가능한 객체는 데이터가 잘못될 가능성이 있으므로 이를 쓰레드에 안전하지 않다고 한다. 2. 핵심 클..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. java.lang패키지에는 자바프로그래밍에 사용하는 기본이 되는 클래스들이 존재한다. 1. Object클래스 Object클래스는 모든 클래스의 최고 조상 Object클래스의 멤버들은 모든 클래스에서 사용가능하다. ★ 자주 사용되는 메서드 (1) equals(Object obj) Object의 equals메서드는 인스턴스의 주소값을 비교하여 동일한 결과인지 boolean값으로 알려주는 역할을 한다. value v1 = new value(10); value v2 = new value(10); if(v1.equals(v2)){ System.out.println("v1 = v2"); }else{ System.out.println("v1 ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 프로그램 오류 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 컴파일 에러는 빌드 과정에서 나타나는 개발자로서 가장 상대하기 편한 오류다. 소스 코드에 오타나 문법적 결함 등이 있으면 빌드 자체가 되지 않기 때문에 파악하기 쉽다. 런타임 에러는 실행 과정에서 철자나 문법 검증에서 드러나지 않는 논리적 결함이나 예상치 못한 돌발 변수에 의해 발생하기 때문에 컴파일 에러보다 까다로운 에러이다. (NULL에 의한 오류, 0으로 나눠서 생기는 오류, 무한루프같은 에러가 런타임 에러이다.) 논리적 에러(논리 에러)는 컴파일이나 실행 자체는 ..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1.인터페이스란 *추상클래스가 부분적으로 완성된 '미완성 설계도'이면, 인터페이스는 구현된 것은 아무것도 없는 '기본 설계도'라 할 수 있다. 인터페이스는 추상클래스(abstract)처럼 추상메서드를 갖지만 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. (추상클래스와의 차이점) 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 어떠한 요소도 허용되지 않는다. ★ 추상클래스란 하나 이상의 추상 메소드를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 한다. 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을..