일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- Data Structure
- 파이썬
- java
- Number Theory
- array
- hash table
- implement
- 코테
- Binary Tree
- SQL
- Binary Search
- 구현
- string
- Stack
- simulation
- Tree
- Matrix
- Method
- greedy
- Counting
- dynamic programming
- Math
- geometry
- two pointers
- bit manipulation
- sorting
- Class
- database
- 자바
- Today
- Total
목록Class (26)
코린이의 소소한 공부노트
[날짜와 시간을 다루기 위한 도구] 1. java.util.Date 클래스 - 날짜와 시간을 다룰 목적으로 만들어진 클래스 - Date의 메서드는 대부분 deprecated(사용X)되었지만 여전히 쓰이는 것도 있다. 2. java.util.Calendar 클래스 - Date 클래스를 개선한 새로운 클래스 - 여전히 단점이 존재한다. 3. java.time 패키지 - Date와 Calendar 클래스의 단점(날짜와 시간을 같이 다뤄야 함 등)을 개선한 새로운 클래스 제공 - 날짜만 다룰 때는 LocalDate, 시간만 다룰 때는 LocalTime, 두 가지 모두 다룰 때는 LocalDateTime을 쓰면 된다. [Calendar 클래스] - 날짜와 시간을 다루는 추상 클래스 - getInstance() 메..
[래퍼 클래스] - 기본형을 감싸는 클래스 - 기본형을 객체로 다뤄야 할 때 사용하는 클래스 public final class Integer extends Number implements Comparable{ // 클래스 안에 // ... private int value; // 기본형이 들어 있다. // ... } 1. Boolean 클래스 - 기본형: boolean - 생성자: Boolean(boolean value), Boolean(String s) Boolean b1 = new Boolean(true); Boolean b2 = new Boolean("true"); 2. Character 클래스 - 기본형: char - 생성자: Character(char value) Character c = new ..
StringBuilder 클래스는 StringBuffer 클래스와 메서드 이름도 같고, 사용 방법도 같다. StringBuffer sb = new StringBuffer(); sb.append("abc"); // 클래스 이름만 바꿔주면 OK StringBuilder sb = new StringBuilder(); sb.append("abc"); 2022.08.18 - [Java] - StringBuffer 클래스 [두 클래스의 차이점] 1. StringBuffer는 동기화되어있다. - 이 클래스는 멀티 스레드에 안전하다.(thread-safe) 2. StringBuilder는 동기화되어있지 않다. - 이 클래스는 멀티 스레드에 안전하지 않다. [스레드에 대한 간단한 설명] 1. 싱글 스레드 - 한 번에 1..
Math 클래스는 수학 관련 static 메서드의 집합이다. [상수] public static final double E; // E = 2.7182818284590452354, 자연로그의 밑 public static final double PI; // PI = 3.14159265358979323846, 원주율 [메서드] double d = 90.4552; long l = Math.round(d); // l = 90 // d를 소수점 셋째 자리에서 반올림 하고 싶다면 d *= 100;// d = 9045.52; l = Math.round(d);// l = 9046 d = l / 100.0;// d = 90.46 // 만약 100.0이 아닌 100으로 나눈다면 d = l / 100; // d = 90.0 s..
[String 클래스] 1. 문자열을 다루기 위한 클래스 2. 내부적으로 char[]을 가지고 있다. 3. 내용을 변경할 수 없는 불변(immutable) 클래스다. 즉 한번 생성되면 수정할 수 없다. 아래처럼 문자열 결합을 해서 수정하는 것 같아 보이는 코드도 메모리에서는 우리의 생각과는 다른 일이 일어난다. - 문자열 결합(+)은 계속 String 객체를 만들어 내서 성능이 떨어진다. 문자열의 결합이나 변경이 잦다면, 내용을 변경할 수 있는 StringBuffer 클래스를 사용하는 것이 좋다. [문자열을 생성하는 방법] // 1. 기본형처럼 생성 String s1 = "abc";// 문자열 리터럴 "abc"의 주소가 s1에 저장됨 String s2 = "abc";// 문자열 리터럴 "abc"의 주소가..
Object 클래스는 1. 모든 클래스의 최고 조상 클래스이다. 2. iv 없이 메서드만 11개 있다. - finalize(): 생성자와 반대 개념의 메서드. 메모리 부족으로 인해 객체를 없애야 할 때, finalize()에 수행되어야 할 코드가 있다면 이걸 실행하느라 메모리 정리하는 데 시간을 더 쓸 수 있으므로 가급적이면 사용하지 않는 메서드. - getClass(): Class 클래스는 클래스 정보(조상 클래스, iv 개수, 생성자 등)를 담기 위한 클래스. getClass()를 이용하면 메서드를 호출한 클래스의 정보가 담긴 Class 객체(인스턴스)를 반환. - notify(), notifyAll(), wait(): 쓰레드와 관련된 메서드. - protected 메서드인 clone()과 final..
[사용자 정의 예외 만들기] 1. 조상은 Exception과 RuntimeException 중에서 선택한다. - 필요한 경우에만 Exception 클래스를 상속받아 체크드 예외로 만들자. - 예외를 선택 처리하는 RuntimeException을 상속받아 언체크드 예외로 만드는 것이 편하다. 2. 보통 예외 메시지가 다 있기 때문에 문자열을 매개변수로 받는 생성자가 필요하다. // 예시1. 사용자 정의 예외의 기본 틀 class MyException extends Exception{ // 체크드 예외 -> try-catch 필수 MyException(String msg){ // 문자열을 매개변수로 받는 생성자 super(msg);// 조상인 Exception 클래스의 생성자 호출 } } // 예시2. 기본..
일반적으로 객체는 클래스를 만든 다음 new를 이용해 생성하게 된다. class Test { } // 클래스 정의 Test t = new Test(); // 객체 생성 이번에 볼 익명 클래스는 일반 클래스와는 다르게 선언한다. 1. 이름이 없는 일회용 클래스이다. - 선언을 할 때 자기 이름이 없기 때문에, 조상 클래스의 이름을 빌려오거나 자기가 구현한 인터페이스의 이름을 빌려오게 된다. 2. 클래스 정의와 생성을 동시에 한다. - 그래서 클래스 선언인데도 new 키워드를 이용한다. new 조상클래스이름(){ // 클래스 내용 - 멤버 선언 } new 구현인터페이스이름(){ // 클래스 내용 - 멤버 선언 } Test 클래스 내부에서 익명 클래스를 한번 만들어보았다. class Test{ // 1) Ob..
내부 클래스는 클래스 안의 클래스이다. // 1) 일반적인 클래스 class A { } class B { } class C { } // 2) 내부 클래스 class A{// B의 외부 클래스 class B { }// A의 내부 클래스 } class C { } 내부 클래스를 이용하면 다음과 같은 장점이 있다. 1. 내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근할 수 있다. - 1)의 경우 B에서 A의 멤버를 이용하려면 A 객체를 생성 후 접근해야 한다. - 2)의 경우 B에서 A의 멤버를 이용할 때 객체 생성 없이도 접근이 가능하다. 2. 코드의 복잡성을 줄일 수 있다. (일종의 캡슐화) 클래스 B를 클래스 A에서만 쓴다고 해보자. 1)의 경우 - 클래스 A: 나만 B를 쓰는데 굳이 밖에 둘 이유가 있..
추상 클래스를 만드는 방법은 1. 여러 클래스에 공통적으로 사용될 수 있는 메서드, 변수를 이용해 추상 클래스를 바로 작성하거나 2. 기존 클래스의 공통부분을 뽑아 추상 클래스를 만든다. 예시를 보는 게 가장 빨리 이해가 될 것이다. class Infantry { // 보병 int x, y; void move(int x, int y) { } void stop() { } void stimPack() { } } class Tank{ // 탱크 int x, y; void move(int x, int y) { } void stop() { } void changeMode() { } } class Dropship{ // 수송선 int x, y; void move(int x, int y) { } void stop()..