전체 글 썸네일형 리스트형 Java StringBuilder / StringBuffer 클래스 1. StringBuilder String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 String과 달리 내용 변경 가능(mutable); 멀티 스레드로 작성된 프로그램이 아닌 경우 StringBuilder를 사용 -> 싱글스레드에 사용 SpringBuffer와 완전히 똑같은 기능을 가지고있음 2. StringBuffer - StringBuffer는 멀티쓰레드에 안전하도록 동기화 되어 있음, 멀티쓰레드는 성능을 감소시킴 - String 처럼 문자형 배열(char[])을 내부적으로 가지고 있음 - String과 달리 내용 변경 가능(mutable); - 배열은 길이 변경 불가, 공간이 부족하면 새로운 배열 생성하고 복사하는 형식이기 때문에 StringBuffer는 저장할 문자열의 길이를 고.. 더보기 Java String 클래스 String클래스 - 문자열을 다루기 위한 클래스 - 데이터(char[]) + 메서드(문자열 관련) - 내용을 변경할 수 없는 불변(immutable) 클래스 String a = "a"; String b = "b"; a = a + b; // a는 기존 "a"의 주소값을 a + b의 결과인 "ab" 주소값으로 바꾸는 것! - 덧셈 연산자(+)를 이용한 문자열 결합은 성능이 떨어짐(문자열 결합이나 변경이 잦다면 내용 변경 가능한 StringBuffer사용하기) 1. String(문자열)을 만드는 방법에 따른 비교 1) 문자열을 리터럴로 지정하는 방법 2) String 클래스의 생성자를 사용해서 만드는 방법 // 문자열 리터럴은 이미 존재하는 것을 재사용(str1주소 == str2주소) String str1 .. 더보기 [TIL] 사이드 프로젝트 44일차 개발 진행 상황 - 테스트 코드 conflict 해결: 일단 검증 부분에 직접적인 id나 size로 검증하지않고 우회해서 검증하게끔 돌렸는데 만족스럽진 않다.. 제대로된 해결 방법을 찾아야함 - 테스트 코드 검증 강화 더보기 Java Object 클래스 Object 클래스 - 모든 클래스의 최고 조상 - 오직 11개의 메서드만 가지고 있음 메서드 설명 protected Object clone() 객체 자신의 복사본 반환 public boolean equals(Object obj) 객체 비교, 객체 자신과 객체 obj가 같은 객체인지 비교 protected void finalize() 객체 소멸 시 가비지 컬렉터에 의해 자동 호출 됨 객체 소멸 시점에 수행되어야 하는 코드가 있는 경우 오버라이딩 (거의 사용 안함, 메모리 부족으로 객체 소멸 시키려고하는데 finalize 수행하는데 더 많은 시간이 사용되어 사용을 권하지 않음) public Class getClass() 객체 자신의 클래스 정보(설계도 객체)를 담고 있는 Class 인스턴스 반환 *설계도 .. 더보기 Java 예외처리(exception handeling)2 1. 예외 처리 방법 1) try~catch문으로 예외 직접 처리하기 2) 예외 선언으로 예외 떠넘기기/알리기 3) try~catch문을 사용하지만 처리하지 않고 은폐하기(예외 신경안쓰고 모른척...) 2. 예외 선언 - 메서드 호출 시 발생 가능한 예외를 호출한 쪽에 알리기 throw: 예외 발생 throws: 예외 선언 3. finally 블럭 예외 발생여부와 관계 없이 수행되어야 하는 코드 넣기 try { // 예외 발생 가능성이 있는 문장 } catch (Exception1 e1) { // 예외 처리 문장 } finally { // 예외 발생 여부에 관계 없이 항상 수행되는 문장 // finally 블럭은 try~catch문 맨 마지막에 위치 } 4. 사용자 정의 예외 - 프로그래머가 직접 예외 .. 더보기 Java 예외처리(exception handling) 1. 에러의 종류 1) 컴파일 에러(compile-time error): 컴파일 시 발생 2) 런타임 에러(runtime error): 실행 시 발생 3) 논리적 에러(logical error): 실행은 되지만 의도와 다르게 동작 cf) 컴파일러의 역할 1. 구문체크 2. 번역 3. 소스 코드 최적화 4. 생략된 코드 추가( extends Object 같이 원래 넣어야하지만 컴파일러가 해줘서 안넣는 것들) 2. Java의 런타임 에러 실행(runtime) 시점에서 발생할 수 있는 프로그램 오류를 에러(error)와 예외(exception)로 구분 1) 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류(메모리 부족, 스택오버플로우 등) 2) 예외(exception): 프로그램 코드에 .. 더보기 Java 내부 클래스(inner class) 1. 내부 클래스(inner class) - 클래스 안의 클래스 2. 내부 클래스의 장점 - 내부 클래스에서 객체 생성 없이 외부 클래스의 멤버에 쉽게 접근 가능 - 코드 복잡성 감소(캡슐화): 외부 클래스에 불필요한 클래스 감춤 3. 내부 클래스의 종류와 특징 내부 클래스 특징 인스턴스 내부 클래스 (instance class) - 외부 클래스의 멤버변수 선언 위치에 선언 - 외부 클래스의 인스턴스 멤버처럼 다루어짐 - 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용 스태틱 내부 클래스 (static class) - 외부 클래스의 멤버변수 선언 위치에 선언 - 외부 클래스의 static멤버처럼 다루어짐 - 주로 외부 클래스의 static멤버, static 메서드에서 사용될 목적으로 선언 지역 .. 더보기 Java default 메서드와 static 메서드 인터페이스에 abstract 메서드만 가질 수 있다는 것을 깨고 JDK1.8부터 default 메서드, static 메서드 추가가 가능해짐 1. 인터페이스에 default 메서드와 static 메서드가 추가된 이유? 1) static 메서드 인스턴스와 관계가 없는 독립적인 메서드이기 때문에 추가하지 못할 이유가 없었음 2) default 메서드 추상 메서드 추가가 되면 모두 구현해야하기 때문에 새로운 추상 메서드를 추가하기 어려운 문제 발생, 하지만 기능의 추가 또는 에러 등의 문제로 추상 메서드를 추가할 수 밖에 없고 이를 해결 하기위해 디폴트 메서드 고안됨 2. 디폴트 메서드(default method) - 추상메서드의 기본적인 구현을 제공하는 메서드 - 디폴트 메서드는 인스턴스 메서드로 인터페이스 .. 더보기 이전 1 ··· 39 40 41 42 43 44 45 ··· 81 다음