일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 로그인 핸들러 구현
- 자바의 정석
- 오버라이딩
- 멀티프로세싱
- 멀티태스킹
- 리눅스
- spring security 설정
- spring security
- spring security 커스텀
- hackerrank
- CPU
- 다형성
- 캡슐화
- 입출력
- 달리기 경주 자바
- java
- SQL Mapper
- 혼공얄코
- 개인정보 수집 유효기간 자바
- 쿠키
- 자바의정석
- userdetailsservice 설정
- over()
- 티스토리챌린지
- 오버로딩
- 바탕화면 정리 자바
- authenticationprovider 설정
- 오블완
- 객체지향
- 프로그래머스
- Today
- Total
목록개발공부/Java (22)
쉽게 쉽게
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 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가지 특성을 알아보기 이전에 객체지향언어..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다. 1. 배열이란? 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 2. 배열의 복사 배열은 한번 생성하면 길이를 변경할 수 없기 때문에 큰 배열을 생성하고 이전 배열의 내용을 복사해야 한다. ★ 배열을 복사하는 방법 자바에서 객체를 복사하는 방법으로는 깊은 복사와 얕은 복사가 있다. 깊은 복사는 객체의 실제값을 새로운 객체로 복사하는 것이고 얕은 복사는 단순히 객체의 주소 값만을 복사하는 것이다. 얕은 복사는 여러 객체가 같은 주소를 참조하기 때문에 하나의 값을 변경해 버리면 다른 대상의 값 또한 바뀌어 버리는 문제가 발생한다. public class Array_Copy1{ public static void main(St..
이 글은 '자바의 정석'의 내용을 기반으로 공부한 내용을 덧붙인 글입니다.1. 연산자란'연산을 수행하는 기호' (+, -, *, / 등)2. 피연산자란피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 상수, 수식)리터럴이란?더보기리터럴은 데이터 그 자체를 뜻 한다. 변수에 넣는 변하지 않는 데이터를 의미한다.int a = 1;int 앞에 a는 변수이고, 여기서의 1은 리터럴이다.즉, 1과 같이 변하지 않는 데이터(boolean, char, double, long, int, etc…)를 리터럴(literal)이라고 부른다.★ 연산자 우선 순위 연산자 우선순위는 괄호의 우선순위가 제일 높고, 산술 > 비교 > 논리 > 대입의 순서이며, 단항 > 이항 > 삼항의 순서이다. 연산자의 연산 진행방향은 왼쪽에..