분류 전체보기 (162) 썸네일형 리스트형 [Java] 수정 가능한 문자열 (StringBuffer) String의 불변성 Java의 String 객체는 불변(immuatable)이다. 예를 들어 아래와 같은 코드를 작성했다고 가정하자. String str = "Hello";str = "World!"; 위 코드에서 str은 "Hello"에서 "World!"로 수정되는 것이 아니다. 먼저 첫 번째 줄의 동작을 살펴보면 "Hello"라는 문자열이 String Pool에 객체로 저장되고 str은 해당 문자열을 참조할 뿐이다. 두 번째 줄에서는 "World!" 문자열이 String Pool에 추가되고 str은 해당 문자열을 참조한다. 이제 "Hello" 문자열은 더 이상 참조되지 않으므로 Garbage Collection의 대상이 된다. 수정 가능한 StringBuffer StringBuffer는 수정.. [Java] String 클래스 String 생성자Java에서는 문자열을 빌트인 클래스인 String 클래스로 관리할 수 있다. String 클래스는 생성자가 오버로딩되어 있기 때문에 다음과 같은 형식으로 선언할 수 있다. char[] chars = {'a', 'b', 'c'};String str1 = new String();String str2 = new String(chars);String str3 = new String("abc");String str4 = "abc"; String 클래스 메서드 String 클래스에서는 다음과 같은 유용한 메서드들을 제공하고 있다. - char chatAt(int where)문자열에서 인덱스 where에 위치한 문자를 반환- void getChars(int sourceStart, int s.. [Java] 박싱, 언박싱, 래퍼클래스(Wrapper Class), Integer, Character 박싱 (boxing) Boxing 이란 원시 타입을 클래스로 변환하여 클래스처럼 다룰 수 있게 캡슐화하는 것을 의미한다. 여기서 원시 타입(Primitive type)은 byte, short, char, int, long, float, double 등의 기초 타입을 의미하며 Java에서 제공하는 기초 타입에 대한 클래스를 래퍼 클래스(Wrapper Class)라고 한다. Wrapper Class - 생성자Character(char ch)Boolean(boolean boolValue)Boolean (String str)Integer(int num)Integer(String str)등의 생성자가 존재하지만 효율 상의 이유로 JDK 9부터 deprecated 됨 - ValueOf(primitiv.. [Java] 열거형 (enum) 열거형 (enum) 열거형은 이름을 가진 상수들을 리스트로 관리할 수 있게 해 준다. 각 상수들은 특정 값을 가질 수 있으며 새로운 데이터 타입으로 사용하는 것도 가능하다. 열거형은 enum 키워드로 정의되며 열거형 내부에 선언된 상수를 열거형 상수라고 한다. public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;} values() values()는 컴파일러가 자동으로 생성하는 정적 메서드로 열거형의 모든 원소를 배열로 반환한다. values()의 시그니처는 아래 코드와 같다. public static enum_type[] values(); 따라서 아래 코드처럼 enu.. [Java] 레이스 컨디션 (Race Condition), 스레드 동기화 (synchronized) 레이스 컨디션 (Race Condition)레이스 컨디션은 두 개 이상의 스레드가 동시에 공유자원에 접근하여 실행 순서에 따라 예상치 않은 결과를 발생함을 의미한다. class Callme { void call(String msg) { System.out.print("[" + msg); try { Thread.sleep(1000); } catch(InterruptedException e) { System.out.println("Interrupted"); } System.out.println("]"); }}class Caller implements Runnable { String msg; Callme target; Thread .. [C++/백준 1918번] stack을 사용하여 중위 표기식을 후위 표기식으로 변환 (Postfix Expression) 중위 표기식 (Infix Expression) 중위 표기식은 연산자가 피연산자 사이에 오는 연산식을 의미한다. 예를 들어 (A+B)*C처럼 우리가 흔히 사용하는 표현법이다. 후위 표기식 (Postfix Expression) 후위 표기식은 연산자가 피연산자 뒤에 오는 연산식을 의미한다. 예를 들어 중위 표기식 A+B를 후위 표기식으로 나타내면 AB+로 표기할 수 있다. 이때 연산자가 여러 개 있을 경우 먼저 오는 연산자를 먼저 계산해 준다. 예를 들어 ABC*+라는 후위 표기식이 있으면 B*C를 먼저 하고 +A를 해주면 된다.즉, 중위 표기법으로 나타내면 A+B*C와 동일하다. 중위 표기식을 후위 표기식으로 변환 중위 표기식을 후위 표기식으로 변환할 때에는 stack 자료구조를 사용하여 .. [Java] 스레드(Thread), 모니터(Monitor), Runnable 인터페이스 스레드 (Thread) 스레드는 프로그램의 실행 흐름으로 프로세스의 내부에 존재한다. 프로세스에 비해 필요 자원이 적으며 같은 프로세스 내의 스레드 간 자원을 공유한다, Java는 멀티태스킹을 위해 멀티스레딩 방식을 사용한다. 이를 통해 유휴시간을 최소화하여 CPU의 사용률을 높일 수 있게 한다. 모니터 (Monitor) Java는 Monitor mechanism을 이용한다. Monitor란 스레드 간 상호배제(mutual exclusion)를 구현하는 동기화 구조이다. 스레드가 오브젝트 조작 시 모니터 확보를 필요로 한다. 이를 통해 특정 스레드가 모니터를 가지면 오브젝트에 락을 설정하여 다른 스레드가 해당 오브젝트에 접근할 수 없게 한다. Main thread Main threa.. [Java] 예외 처리 (검사형 예외, 비검사형 예외) 예외 Java에서 모든 예외는 Throwable 클래스를 상속받는다. Throwable 클래스 아래에는 Error 클래스와 Exception 클래스가 있다. Error는 개발자가 처리할 수 없는 오류를 말하며 Exception은 개발자가 처리할 수 있는 오류를 말한다. Exception은 일반적인 예외와 RuntimeException의 상속을 받는 실행 예외로 나뉜다. 비검사형 예외 (실행 예외) 비검사형 예외는 예외 처리를 하지 않아도 컴파일이 가능한 예외이다. 대표적인 비검사형 예외 예외발생 이유ArithmeticException0으로 나누기와 같은 부적절한 산술 연산의 수행IllegalArgumentException메서드에 부적절한 인수를 전달IndexOutOfBoundsExcepti.. 이전 1 2 3 4 5 6 ··· 21 다음 목록 더보기