포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 자바에서 프로그램 로직을 짜다가 만약 문제가 생기면 어떻게 될까? 문제의 종류에 따라 다르겠지만, 자바는 이럴 때 오류를 내뱉으며 즉시 프로그램을 종료한다. 물론 자바뿐만 아니라 다른 프로그래밍 언어들 또한 그렇다. 자바에서는 예외처리를 통해 해당 프로그램의 오류 흐름에서 다시 정상 흐름으로 바꿀 수 있게 해 준다. 이 과정을 예외처리라고 한다. 또한.. 예외처리를 함으로써, 개발자가 코드를 읽을 때, 정상 흐름과 오류 흐름을 나눠 볼 수 있음으로, 가독성 또한 챙겨갈 수 있다. 일단 예외처리에 사용되는 키워드를 알아보자. try : try뒤에 중괄호가 나오며, 이 지역에서 발생하는 예외를 탐색한다.catch : try 지역 끝에..
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 이전시간에는 중첩, 내부 클래스에 대해 배웠다. 원래 익명클래스도 한 번에 다뤘어야 했는데, 피곤해서 나눴다. 익명클래스는 지역 클래스의 종류이다. 근데 이름이 없다. 그래서 생성할 때 딱 한 번만 해당 클래스의 인스턴스를 만들 수 있다. 그리고 선언과 동시에 내부를 구현한다. 또 기본생성자만 가지며 반드시 부모클래스 혹은 인터페이스가 있어야 만들 수 있다. 코드예제를 보자. 인터페이스public interface Printer { void print();} 익명 클래스Printer printer = new Printer() { int value = 0; @Override public void print()..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 중첩 클래스와 내부 클래스에 대해 알아보자. 중첩 클래스와 내부 클래스는, 클래스 내부에 구현되어 있는 또 다른 클래스이다. 즉 메서드와 같이 외부 클래스의 하나의 요소가 되는 것이다. 다만 정적 중첩 클래스는 예외다. 정적 중첩 클래스는 static이 붙으며 이는 컴파일 시 메서드 영역에 생성된다. 따라서 구조상 외부 클래스의 내부에 선언되어 있지만, 둘 사이의 관계는 없다. 다만 정적 중첩 클래스는 외부 클래스와 위치가 같기에, 외부 클래스의 private 요소에 접근할 수 있는 차이점이 하나 존재한다. 하지만 static의 성질이기에, 정적 중첩 클래스 내부에 외부의 클래스 객체를 생성하여야 해당 private인스턴스로 접..
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 이번에는 타입 안전 열거형 + Enum에 대해 알아보자. 자바에서는 if문을 사용하거나 switch문을 사용하여 케이스 별로 처리할 일이 정말 많다. 하지만 이곳에 숫자의 범위가 아닌 문자열을 통해 케이스를 나누는 경우도 존재할 것이다. 하지만 개발자가 개발 중 문자에 오타를 내, if문을 정상적으로 타지 않게 될 경우가 있을 수 있다. 물론 꼼꼼히 개발하면 일어나지 않을 문제 이긴 하지만, 그래도 사람이기에 실수가능성을 배제할 순 없다. 이런 문제를 컴파일 단에서 점검하고, 방지하기 위해 자바는 Enum Class를 제공한다. 그렇다면 Enum Class의 역할이 무엇일지 소스코드를 보며 먼저 생각해 보자.public class..
포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 래퍼 클래스에 대해 알아보자. 래퍼 클래스 : 기본형 타입을 객체로 변환한 클래스 자바에서 int는 기본형이다. 기본형은 객체에 비해 한계가 명확하다. 1. 메서드를 제공할 수 없다. 2. 값없음(Null)을 사용할 수 없다. 자바에서는 null이 객체에만 들어갈 수 있다. 따라서 가끔 int 타입에도 값없음이 필요할 때가 있는데, 이를 해결하기 위해 Wrapper Class라는 것이 존재한다. Wrapper Class라는 이름에서도 알 수 있듯이 Class이며 객체로 생성된다. 자바에서는 기본적으로 Wrapper Class를 제공한다. Character() Boolean() Integer() -> 추가로 -128 ~127을 St..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 이번에는 String class 2부다. String class1부에서 2부로 바로 넘어오지 않고 중간에 불변 객체라는 것에 대해 먼저 배웠다. 그렇다면 왜 불변객체를 먼저 배웠을까? 바로 String Class가 불변객체이기 때문이다. String 이 한번 선언되면 내부의 값을 변경할 수 없고, 새로운 String 객체를 생성해서 값을 넣어줘야 한다. 그렇다면 String은 왜 불변객체로 만들어졌을까? 바로 String Pool의 존재가 그 이유이다. String Pool의 공간에서 특정 참조값의 value가 바뀌어 버리면, 이를 참조하는 나머지 부분들도 사이드 이펙트가 생기기 때문이다. String Pool : 문자열이 저장된..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. String Class (2부)로 넘어가기 전에 불변 객체에 대해 알아보자. 불변 객체에 대한 이해가 있어야 String Class 2부에서 설명할 내용이 원활하게 이해될 것 같아 부득이하게 불변 객체를 사이에 넣었다. 불변 객체란 무엇일까? 불변 객체 : 객체의 상태가 변하지 않는 객체. ( 생성자에서만 초기값 제공) 뜻 그대로 변하지 않는 객체라는 것이다. 자바에서의 불변객체는 한번 값이 정해진 후 다시 수정되면 안 된다는 원칙을 갖고 있다. 불변객체라고 따로 있는 것이 아니라, 개발자가 한번 정해진 값을 다시 바꾸지 못하게 개발하면 된다. 바로 연관되어 떠오르는 것이 있어야 한다. 바로 final이다. final이 Class..

포스팅에 앞서 내용이 틀릴 수 있습니다. 해당 부분 지적 감사히 받습니다. 자바의 String Class에서 알아보자. 자바에는 여러 가지 기본 타입이 있다. String, int, double, float, char 등이 이에 속한다. 근데 String만 첫 문자가 대문자이다. 왜 그럴까? 관례상 자바는 Class명을 부여할 때 첫 글자를 대문자로 사용한다. 사실 String은 Class이다. 자바에서 String Class를 제공한다. 이를 통해 우리는 String 타입의 객체를 사용할 수 있었던 것이다. 마찬가지로 String은 객체였던 것이고, String str = new String("Hello"); 와 같이 선언하면 str에는 객체의 참조값이 들어가게 되는 것이다. 다른 언어에서는 문자열을 ..
- Total
- Today
- Yesterday
- spring
- java
- 코딩테스트
- 김영한 실전 자바 중급
- 김영한 실전 자바 기초
- Los
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 백준 피보나치
- 백준 피보나치 수열
- 스프링
- los 15
- zixem
- samron
- webhacking.kr
- 코딩테스트 준비
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- extends
- static
- 프로그래머스
- 백준
- ys.k
- 상품을 구매한 회원 비율 구하기 파이썬
- los 15단계
- lord of sql
- 상속
- 기술스택
- 김영한
- samron3
- 자바
- 김영한 실전 자바 기본
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |