일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Serialization
- 윤성우의 열혈 자료구조
- Stack
- 메모리구조
- coding test
- 이스케이프 문자
- 알기쉬운 알고리즘
- stream
- Graph
- datastructure
- list 컬렉션
- 혼자 공부하는 C언어
- 이것이 자바다
- R
- JSON
- insertion sort
- C programming
- buffer
- s
- 윤성우 열혈자료구조
- Selection Sorting
- C 언어 코딩 도장
- Algorithm
- Today
- Total
목록Programming Language (94)
Engineering Note
Java에서 String은 불변 객체다. 아래처럼 String s를 만들고 "world"를 붙이면 "hello world"가 새로 만들어진다.String s = "hello";s = s + " world" StringBuilder는 String과 달리 가변이다.그래서 내부적으로 문자열을 가변할 수 있는 유용한 메서드가 많이 제공된다. 대표적으로 reverse()메서드가 있다. 당연히 받환 타입은 StringBuilder이다. String으로 변환하려면 toString() 메서드를 사용하면 된다.
BOJ에서 문제를 풀려면 입력을 받아야 하는데 그때, Java는 Scanner 객체를 사용해서 입력을 받을 수 있다. 메서드 반환 타입 입력 기준 예시 입력 설명next()String공백 기준hello world → hello다음 "단어" 한 개만 읽음nextLine()String줄 기준hello world → hello world줄 전체를 읽음nextInt()int공백 기준123 456 → 123다음 숫자(int)만 읽음nextDouble()double공백 기준3.14 2.71 → 3.14실수(double)만 읽음nextBoolean()boolean공백 기준true false → true논리값 읽음 Scanner sc = new Scanner(System.in);sc.nextLine(); 이렇게 사..
Generic 개념제네릭이란 결정되지 않은 타입을 파라미터로 처리하고, 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능. Generic을 사용하는 이유Generic은 클래스를 선언할 때, 필드나, 파라미터의 타입을 어떤 타입으로 지정해야할 지 결정할 수 없을 때 사용한다. 예를 들면, Box 클래스의 content 필드를 선언하려고 하는데 String으로 할지, List로 할지 결정 할 수 없을 때, Generic을 사용하면 Box 클래스를 사용할 때 구체적인 타입으로 정할 수 있다.public class Box { public ? Content} 그런데 이런 의문이 들수도 있다. 모든 클래스의 부모 클래스인 Object를 사용하면 자바의 다형성을 이용해서 모든 타입을 담을 수 있는것 아닌..
Object 클래스- Object 클래스는 모든 클래스의 상속계층도의 최상위에 있는 조상클래스이다. 다른 클래스로부터 상속 받지 않는 모든 클래스들은 자동적으로 Object클래스로부터 상속받는다. 만약 다음과 같은 Tv 클래스가 존재한다고 하면, 위 코드를 컴파일 하면 컴파일러는 위의 코드를 자동적으로 'extends Object'를 추가하여 Tv 클래스가 Object 클래스로부터 상속 받도록한다.class Tv { ...} 혹여나 다른 클래스로부터 상속을 받는다고 하더라도 상속계층도를 따라 조상클래스, 조상클래스의 조상클래스를 찾아 올라가다도면 마지막 최상위 조상은 Object 클래스를 만나게 된다.그동안 toString()이나 equals(Object o)와 같은 메서드를 따로 정의하지 않고도 사용..
이스케이프 문자(Escape Character)란?Java에서 문자열 안에서 또는 정규표현식에서 특별한 의미를 가진 문자나 제어 문자를 표현하기 위해 '\'(역슬래시)를 이용해 나타내는 방식. Java뿐 아니라 다른 언어에도 존재한다. 예를 들어 문자열안에서 쌍따옴표(")를 쓰고 싶으면 쌍따옴표앞에 역슬래시를 붙여준다.ex) "나는 \"자바\"를 공부한다."만약 역슬래시를 쓰지 않고 "나는 "자바"를 공부한다." 이렇게 사용한다면 "나는 " 이 하나의 문자열 처럼 인식되면서 문법 오류가 난다.또 다른 예로 문자열 안에서 정규표현식의 진짜 마침표를 표현하고 싶다면, 여기서 진짜 마침표라고 한 이유는 정규표현식에서 마침표는 또다른 의미로 특수한 의미를 가지는 문자이기 때문(정규표현식에서 마침표(.)는 모든 ..

다형성 개념 다형성 사용 예시 다형성 사용 이유 Polymorphism 다형성 상속과 연관된 개념이므로 다형성을 이해하기 위해서는 상속에 대해 충분히 알고 있어야 한다. 다형성이란 여러가지 형태를 가질 수 있는 능력. 다시 말하면, 한 타입의 참조변수로 여러 타입의 인스턴스를 참조할 수 있는 것이다. 단, 다형성이 가능한 관계는 클래스 간의 상속관계가 있어야 하고, 부모 타입의 참조변수로 자식타입의 인스턴스를 참조할 수 있지만, 자식타입의 참조변수로 부모타입의 인스턴스를 참조하는 것은 불가능하다. 부모타입의 인스턴스에는 자식타입 참조변수가 접근하고 싶은 멤버가 없을 수 있기 때문이다. 자식타입 클래스는 언제나 부모타입 클래스보다 멤버의 수가 같거나 많다. 다형성 예시 package polymorphism..

변수의 정의 변수의 종류 기본형 변수, 참조형 변수 클래스 변수, 인스턴스 변수, 지역 변수 변수 값을 저장할 수 있는 메모리 공간 변수의 선언과 초기화 int age; int num = 1; //선언과 동시에 초기화 변수를 선언하면, 메모리의 빈 공간에 ‘변수타입’에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 ‘변수이름’을 통해 사용할 수 있게 된다. 예를 들어, int, 정수 타입의 변수를 선언 했다면 int 타입 사이즈에 해당하는 4byte(32bit)의 메모리 공간이 확보된다. 우리가 인터넷에서 특정 페이지를 찾아갈 때 ip주소 대신 도메인명으로 naver를 찾아 가는 것처럼 변수명으로 메모리를 찾아 간다고 이해하면 된다. 변수타입 변수에 저장될 값이 어떤 ‘type’인지를 지정하는..

Inheritance Inheritance 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 사용하는 이유 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. Java에서 상속을 구현하는 방법 새로 작성하고자 하는 클래스의 이름 뒤에 상속 받고자 하는 클래스의 이름을 키워드 ‘extends’와 함께 서 주기만 하면 된다. 예시 새로 작성하려는 클래스의 이름이 Child이고 상속 받고자 하는 기존 클래스의 이름이 Parent라면 아래와 같이 작성하면 된다.조상 클래스와 자..