Java/기본
[Java / 기본] 예외 처리
예외 처리예외에 대한 처리를 해주는 것예외프로그램 실행 중에 발생하는 돌발 상황프로그램이 실행되지 않는 상황인 에러 (`Error`)와는 다름에러는 개발자가 처리 불가try - catch()예외 처리 구문`try`는 기존에 실행하는 코드를 넣고 `catch()`는 발생한 예외를 처리하는 코드를 넣음`catch`의 괄호 안에 다양한 예외 클래스가 들어갈 수 있음`catch`는 여러 개가 올 수 있음try { // 예외가 발생할 가능성이 있는 코드}catch(ArithmeticException e) { // 예외 처리 코드}catch(InputMismatchException e) { // 예외 처리 코드}Exception최상위 예외 클래스각각의 예외 처리가 아닌 통합 예외 처리를 할 때 유용..
Java/기본
[Java / 기본] Wrapper
Wrapper원시형을 객체로 감싸기 위해 제공되는 클래스불러오지 않아도 내장되어있음생성자가 없어서 메서드와 필드만 존재함Wrapper 객체 생성a와 b는 추천되지 않는 방법임`int`형값을 넣을 수도 있음Integer a = new Integer(10);Integer b = new Integer("10");Integer c = Integer.valueOf(10);Integer d = Integer.valueOf("10");.valueOf()`int`타입이나 `String`타입을 `Integer`클래스로 변환해주는 메서드 Wrapper 객체 비교a, b, (c, d)는 서로 다른 객체임a, b는 `new` 연산자를 이용해 새로운 객체 생성c, d는 기존 객체 활용`.equals()` 메서드를 통해 다른 객..
Java/기본
[Java / 기본] 정규식
정규식 (Regex = Regular Expression)문자열 형식을 검사하는 정해진 패턴 방식기본 기호`.`임의의 문자`^`문자열 시작`$`문자열 끝 문자 클래스`[]`범위 지정`-`범위 생략 수량자`*`0번 이상 반복`+`1번 이상 반복`?`0번 또는 1번 반복`{n}`앞의 패턴을 n번 반복`{n,m}`앞의 패턴을 n에서 m번 반복`{n,}`앞의 패턴을 n번 이상 반복 기타 메타 문자`|`~ 중 하나`()`캡쳐 그룹`(?:...)`비캡쳐 그룹 - 검사는 하지만, 결과를 참조하거나 추출 불가 기본 특수 문자`\`이스케이프 문자 후행 탐색`(?=...)`긍정 탐색 (Positive Lookahead) - 해당 패턴 뒤에 오는 문자열 반드시 포함`(?!...)`부정 탐색 (Negative Lookahea..
Java/기본
[Java / 기본] 문자열
String문자열형 데이터 타입참조형 데이터필요할 때마다 직접 만들어서 사용상대적으로 `int`, `double`과 같은 원시형보다 생성이 느림공간을 조밀하게 사용하고 원하는 구조를 만들 수 있음문자열 리터럴을 참조하는 모든 변수는 메모리 주소 참조리터럴 방식으로 처리하여 동일한 리터럴을 여러 번 사용하는 경우에도 메모리 절약String a = "hello";.length()문자열 길이를 반환하는 메서드a.length() .toUpperCase()문자열을 대문자로 변환하는 메서드a.toUpperCase()문자열과 데이터 합성문자열과 데이터가 더해지면 문자열이 됨System.out.println(a + "java");System.out.println(a + 100);System.out.println(a +..
Java/기본
[Java / 기본] 문자
char문자형 데이터 타입char a = 'A' 아스키 코드 (ASCII Code)영문 알파벳과 키보드에 있는 문자들을 정리한 대표적인 문자 인코딩 방식이다.  미국인이 쓸 수 있는 128글자에 번호를 붙인것인데 유럽인이 쓸 수 있는 16세트의 글자체계 (128+128 글자)로 확장되었다. (서유럽 (ISO-8859-1)을 표준으로 사용한다.)  유니 코드 (Uni Code)전 세계의 모든 문자를 컴퓨터에서 일관되게 나타내고 처리하기 위한 국제적인 표준 문자 전산 처리법. 그러나 전세계에서 각자 자기네 글자들을 자체적으로 추가하여 사용해서 문자 체계에 이식성이 많이 떨어지는 문제가 발생하였다. 그래서 마이크로소프트에서는 윈도우를 전세계 버전으로 제작하며 각국의 글자를 정비하였고 이것을 활용해서 MS949..
Java/기본
[Java / 기본] Object
Object모든 클래스의 규격을 정의하는 최상위 클래스Object a = new Object(); .hashCode()객체의 해시코드 값을 반환하는 메서드인스턴스는 고유한 해시코드를 가짐a.hashCode() .equals두 객체 값을 비교하는 메서드인스턴스는 값을 비교하는 메서드를 가짐a.equals(b) .toString()객체의 문자열을 반환하는 메서드인스턴스는 요약 정보를 출력할 수 있는 메서드를 가짐a.toString()hashCode(), equals(), toString() 자동 생성모든 클래스는 필요에 따라 위의 메서드들을 재정의 할 수 있음`shift + alt + s / h` - `hashCode()` and `equals()``shift + alt + s / s` - `toString..
Java/기본
[Java / 기본] 다형성
다형성객체가 여러 가지 형태를 가지는 성질상속메서드 오버라이딩형변환형변환객체 타입을 부모 클래스의 객체로 변환하거나 자식 클래스의 객체로 되돌리는 것업 캐스팅데이터 보관형태를 상위형태로 변환하는 것Car c = new Truck(); 다운 캐스팅데이터 보관형태를 원래 형태로 되돌리는 것원래 있던 부모 클래스 객체를 다운 캐스팅하는 것은 불가Car c = new Truck();Truck t = (Truck)c;
Java/기본
[Java / 기본] 다중 상속
다중 상속여러 인터페이스를 상속받는 행위Java는 클래스 다중 상속을 지원하지 않음클래스에는 `implements`를 통해 다중 상속 지원인터페이스끼리 상속은 `extends` 사용public class Truck implements Rideable, Carriable {}클래스 다중 상속을 지원하지 않는 이유두 개의 부모 클래스가 이름이 같은 메서드를 구현하고 자식 클래스가 모두 상속받으면 어떤 메서드를 사용할지 결정할 수 없을 뿐더러 컴파일 또한 할 수 없다. 반면에 인터페이스는 기능에 대한 선언만 하기 때문에 충돌하지 않는다. 인터페이스 (Interface)필드, 생성자, 메서드 구현이 불가능하고 추상 메서드 선언만 가능한 클래스`public` 접근 제한만 가능필드, 생성자 생성 불가추상 메서드만 ..
Java/기본
[Java / 기본] 상속
상속부모 클래스의 필드나 메서드를 자식 클래스에게 물려주는 것ex) 부모 클래스 - 차, 자식 클래스 - 트럭, 자동차, 화물차 등클래스들의 공통적인 기능이 있을 시 이를 부모 클래스로 묶음 상속 시 주의사항필드 - 접근제한 설정 (상속과 무관하게 모두 제한)생성자 - 부모 클래스에 상속자를 만들면 자식클래스에도 만들어야함메서드 - 재정의 가능extends부모 클래스를 상속받는 키워드public class Truck extends Car {}public class 자식클래스 extends 부모클래스 {} protected상속받은 클래스가 자유롭게 접근 가능한 접근제한 키워드protected int speed super상속받은 부모 클래스 지칭하는 키워드부모 클래스 객체 내의 필드 접근super.price..