일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Stack
- SQL
- 파이썬
- Method
- geometry
- hash table
- implement
- string
- Data Structure
- Math
- greedy
- Matrix
- sorting
- database
- 구현
- Binary Search
- dynamic programming
- Counting
- Number Theory
- Class
- bit manipulation
- java
- two pointers
- simulation
- 자바
- 코테
- 코딩테스트
- Tree
- Binary Tree
- array
- Today
- Total
목록Type (11)
코린이의 소소한 공부노트
1. 단순구조(기본구조): 언어에서 기본으로 제공하는 타입 2. 선형구조: 데이터가 연속적으로 붙어있거나 순서가 정해져 있는 구조 1) 리스트(배열, array): 데이터가 연속적으로 붙어 있는 구조 2) 연결 리스트(linked list): 불연속적인 데이터가 링크를 통해 연결되어 있는 구조 - 단순 연결 리스트: 한 데이터가 다음 데이터(next)를 가리키고 있는 구조. 순서가 있다. - 이중 연결 리스트(doubly linked list): 연결 리스트에서 이전 데이터(previous)를 가리키는 링크를 추가한 구조 - 원형 연결 리스트(circular linked list): 이중 연결 리스트에서 맨 앞 데이터와 맨 뒤 데이터를 연결하는 링크를 추가한 구조 3) 스택(stack): 한쪽에서만 데이..
[지네릭 타입의 형변환] 1. 지네릭 타입과 원시 타입 간의 형변환은 바람직하지 않다. Box box = null; Box objBox = null; Box strBox = null; box = (Box)objBox; // OK. 지네릭 -> 원시. 경고 발생 objBox = (Box)box; // OK. 원시 -> 지네릭. 경고 발생 box.add(new Integer(100)); // OK. box가 원시타입이기 때문에 경고만 발생함 2. 서로 다른 지네릭 타입으로는 형변환이 되지 않는다. objBox = (Box)strBox; // 에러. Box -X-> Box strBox = (Box)objBox; // 에러. Box -X-> Box 3. 와일드카드가 사용된 지네릭 타입으로는 형변환이 가능하다. ..
// 지네릭스를 사용하지 않던 시절.. // ArrayList에는 Object[]가 있음 ArrayList list = new ArrayList(); // 아무 객체나 다 저장 가능 list.add(10); list.add(20); list.add(“30”); // ?? System.out.println(list); // [10, 20, 30] Integer i = list.get(2); // 에러. 2번째 요소는 String이므로 Integer에 저장 불가 Integer i = (Integer)list.get(2); // 컴파일 통과. get()의 반환타입이 Object이므로 형변환 가능. // 하지만 실행단계에서 ClassCastException 발생 [지네릭스] 1. 컴파일시 타입을 체크해주는 기능..
[래퍼 클래스] - 기본형을 감싸는 클래스 - 기본형을 객체로 다뤄야 할 때 사용하는 클래스 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 ..
[문자의 결합] 1. split 메서드: 주어진 구분자로 문자열을 나눈 후 그 문자열을 배열에 담는 메서드 2. join 메서드: 여러 문자열 사이에 구분자를 넣은 후 결합하는 메서드 String animals = "dog,cat,bear"; String[] arr = animals.split(","); // arr[0] = "dog" // arr[1] = "cat" // arr[2] = "bear" // 1) join 메서드 사용 String str = String.join("-", arr); System.out.println(str); // "dog-cat-bear" // 2) + 연산자 사용 System.out.println(arr[0] + "-" + arr[1] + "-" + arr[2]); //..
참조변수의 형변환은 조상-자손 관계일 때 가능하다. 참조변수의 형변환을 하는 이유는 사용 가능한 멤버의 개수를 조절하기 위해서다. 형변환을 이용한 어떤 기능을 만든다고 할 때, 프로그램 내의 모든 클래스들의 관계를 내가 다 알고 있지 않은 이상 형변환이 가능한지 꼭 확인해 볼 필요가 있다. 그럴 때 이용하는 연산자가 instanceof이다. 연산자 치고 이름이 길다. instanceof 연산자는 - 참조변수의 형변환 가능 여부를 확인할 때 사용한다. - 피연산자가 2개인 이항 연산자다. -> 객체 instanceof 클래스 - 형변환이 가능하다면 true를, 불가능하다면 false를 반환한다. - 형변환 전에 꼭 사용해보는 것이 좋다. 객체와 클래스의 관계에 따라 어떤 반환 결과를 주는지 확인해보자. P..
참조변수의 형변환은 - 사용할 수 있는 멤버의 개수를 조절하는 것으로, - 조상-자손 관계의 참조변수는 서로 형변환이 가능하다. class Parent { // 멤버 3개 } class Child1 extends Parent { // 멤버 2개 } class Child2 extends Parent { // 멤버 1개 } // 메인 내부에서.. Child1 c1 = new Child1(); Parent 클래스를 상속받은 2개의 클래스 Child1, Child2가 있다. 메인에서 Child1 타입의 객체 c1을 생성 후, 어떨 때 참조변수의 형변환이 가능한지 확인해보자. * 먼저 기억해내야 할 것: 범위가 작은 것 -> 큰 것은 캐스팅이 필요 없지만, 반대 상황에서는 필요하다 int i = 1; double..
변수는 선언 위치/방법에 따라 클래스 변수(class variable, cv), 인스턴스 변수(instance variable, iv), 지역 변수(local variable, lv)로 나뉜다. 변수의 종류만큼 변수 초기화 방법도 다양하다. [지역 변수 초기화] 수동 초기화: 변수 선언 후 대입 연산자를 이용해 직접 값을 넣어주는 것 class Test{ // iv int x; int y = x; // im void method1(){ // lv int i; int j = i; // error: The local variable i may not have been initialized } } 메서드 호출 스택은 무한 제공되는 것이 아니라 한정적으로 할당된 메모리에 메서드가 쌓였다 지워졌다 한다. 그리고 ..
메서드의 매개변수는 메서드 선언 시 입력값으로 작성하는 변수로, 메서드가 호출되면 콜러(caller)에서 넘겨준 값을 매개변수에 복사(대입)한 후 메서드 구현부를 실행하게 된다. 일반 변수도 그렇듯 매개변수도 기본형과 참조형으로 구분된다. 1. 기본형 매개변수 - 정수형(byte, short, int, long), 실수형(double, float), 논리형(boolean), 문자형(char) - 콜러에서 넘겨준 변수의 값을 읽기만 할 수 있고 변경할 수 없다.(=read only) 2. 참조형 매개변수 - 문자열형(String), 배열, 기타 사용자 정의 객체 - 콜러에서 넘겨준 변수의 값을 읽고 변경할 수 있다.(=read & write) 매개변수로 넘기는 것이 기본형일 때와 참조형일 때 어떤 차이가 ..
데이터를 다룰 때 우리는 다음과 같은 것들을 이용한다. 1. 변수 - 하나의 데이터를 저장할 수 있는 공간 - 타입에 따라 공간의 크기가 다름 - 자세한 설명은 2021.12.06 - [Java] - 변수의 데이터 타입(data type) 2. 배열 - 같은 종류의 여러 데이터(변수)를 하나로 저장할 수 있는 공간 - 배열의 크기를 정하면 (배열의 크기) * (타입에 따른 변수의 크기)만큼 공간이 할당됨 - 자세한 설명은 2022.01.14 - [Java] - 배열 (1) 선언과 생성, 인덱스 3. 구조체 - 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간 - 배열과는 다르게 종류에 상관없이 한 구조체에 담을 수 있음 - 자바에서는 이를 딱히 지칭하는 말은 없음 4. 클래스 - 서로 관련된 데이터..