일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오버라이딩
- over()
- 리눅스
- 프로그래머스
- 중첩 break
- 멀티프로세싱
- 캡슐화
- continue 사용법
- 오블완
- 티스토리챌린지
- SQL Mapper
- 자바의정석
- 오버로딩
- 프로그래머스 붕대 감기
- 혼공얄코
- 멀티태스킹
- 자바의 정석
- contiune
- 붕대 감기
- spring security
- hackerrank
- 붕대 감기 자바
- 다형성
- java
- 쿠키
- 입출력
- CPU
- 객체지향
- spring security 설정
- break 사용법
- Today
- Total
목록개발공부/Java (24)
쉽게 쉽게
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 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. 컬렉션 프레임웍(Collections Framework)이란? 데이터 군을 저장하는 클래스들을 표준화한 설계 다수의 데이터를 다루는 데 필요한 클래스들을 제공 컬렉션은 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너이다. 배열은 크기가 고정되어 있는데에 반해, 컬렉션 프레임워크는 가변적인 크기를 갖는 (Resizable) 등의 특징을 갖는다. 또한 데이터 삽입, 탐색, 정렬 등 편리한 API 를 다수 제공한다. 이런 이점으로 개발자는 배열보다는 적절한 컬렉션 클래스를 선택해 사용하는 것이 권장된다. ★ 컬렉션 프레임워크의 장점 (1) List, Queue, Set, M..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 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)라고 한다. 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 캡슐화 캡슐화란 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것을 말한다. 자바 객체 지향 프로그래밍에서 캡슐화를 구현하기 위한 방법은 접근제어자(access modifiers)를 활용하는 방법이 있다. 접근제어자는 클래스 또는 클래스의 내부의 멤버들에 사용되어 해당 클래스나 멤버들을 외부에서 접근하지 못하도록 접근을 제한하는 역할을 한다. ★ 접근제어자란 접근제어자는 멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 즉 접근 제어자를 사용하는 이유는 클래스의 내부에 선언된 데이터를 보호하기 위해서이다...
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 객체지향언어 특징 자바의 특징 중 자바에는 객체지향의 특징인 추상화, 상속, 캡슐화, 다형성이 잘 적용되어 있다고 했었다. 이를 기반한 객체지향언어의 장점은 이렇다. ★ 객체지향언어의 장점 (1) 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. (2) 코드의 관리가 용이하다. 코드 간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. (3) 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 오동작을 방지할 수 있다. 객체지향의 특징인 4가지 특성을 알아보기 이전에 객체지향언어..