var 변수는 생성시 반드시 초기화 필요. 지역변수로만 사용 가능.
문자열 풀(String Pool)은 자바와 같은 언어에서 문자열을 효율적으로 관리하기 위한 메모리 영역을 말합니다. 문자열 풀은 같은 문자열 리터럴을 재사용하여 메모리 사용을 최적화하는 역할
new 명령어 사용 시 힙에 객체를 새로 만든다.
여러 줄을 끊기지 않고 타이핑 하기 위해서는 """ """을 사용할 수 있다. 한 줄의 끝에서 .를 넣으면 가능하다.
String subString(int beginIndex)
String subString(int beginIndex, int endIndex)
bollean equalsIgnoreCase(String another)
int indexOf(String str) : 지정된 문자열이 처음으로 나타나는 인덱스 반환
int lastIndexOf(String str)
boolean contains(CharSequence s)
String toLowerCase()
String toUpperCase()
String trim()
String replace(char oldChar, char newChar)
String replace(CharSequence target, CharSequence replacement)
String[] split(String regex)
boolean startsWith(String prefix) 지정된 접두사로 시작하는지 검사
boolean endsWith(String suffix)
boolean isEmpty()
int compareTo(String anotherString) : 사전순으로 두 문자열을 비교
String formatted(var...)
String[] toCharArray(String str)
String, StringBuffer, StringBuilder들의 공통 함수 구현의 선언을 가지고 있는 인터페이스
불가변 - 변경불가
가변 - 자주 변경할 때 사용
StringBuilder - 멀티스레드 환경에서 위험함(synchronized x), 성능면에서 좋음
StringBuffer - 멀티스테드 환경에서 안전(synchronized)
synchronized : 동기화를 제공하는 키워드, 멀티스레드 환경에서 여러 스레드가 공유된 자원에 동시에 접근할 때 발생할 수 있는 문제 해결. 메서드나 블록을 보호하여 한번에 하나의 스레드만 해당 코드에 접근할 수 있도록 함.
StringTokenizer(String str) : 공백문자를 구분자로 사용하여 문자열을 토큰으로 나눔
StringTokenizer(String str, String delim) : 지정된 구분자를 사용하여 문자열을 토큰으로 나눔
StringTokenizer(String str, String delim, boolean returnDelims) : 지정된 구분자를 사용하여 문자열을 토큰으로 나누며, 구분자도 토큰으로 반환할지 여부를 지정
hasTokens() : 다음 토큰이 있는지 확인.
nextToken() : 다음 토큰을 반환.
countTokens() : 남아 있는 토큰의 수를 반환.
오버헤드 : 컴퓨터 시스템의 성능이나 자원 측면에서 추가적인 비용이나 부담
실수의 연산 시, 해당 실수를 10의 제곱 단위를 곱하여 정수에서 연산을 하는 것이 좋거나 BigDecimal 인터페이스를 이용해서 계산하는 것이 좋다.
BigDecimal a=BigDecimal("2.0");
BigDecimal b=BigDecimal("2.0");
System.out.println(a.subtract(b));
parseXXX(String s) : 문자열을 XXX 타입으로 변환.
valueOf(String s) : 문자열을 XXX 타입의 Wrapper 객체로 변환.
toString(XXX i) : 해당 값을 문자열로 변환.
XXXValue() : Wrapper 객체를 해당 타입으로 변환.
compareTo(XXX anotherInteger) : 두 XXX 객체를 비교.
compare(XXX a, XXX b) : 해당 기본 타입의 크기 비교.
MIN_VALUE / MAX_VALUE : 해당 객체의 최대, 최소 값
비트 연산이 아닌 boolean형의 연산의 경우, &&,|| 연산은 앞의 연산을 실행하고 결과에 뒤의 연산이 영향을 미치지 않는다면 뒤의 연산을 시행하지 않지만, &,|연산은 앞의 결과와 무관하게 뒤의 연산을 시행한다.
int a=0;
int k=switch(a){
case 1 -> 10;
case 2 -> 20;
case 3,4,5 -> 30;
default -> {
yield 40;
}
};
yield는 반드시 블록 안에서 사용가능하다. 블록을 사용하는 경우에는 yield를 사용해 반환하는 것이다.
정수형 타입만 switch(____)위치에 가능 : char, int, byte, short
static void sort(int[] a)
static void sort(int[] a, int fromIndex, int toIndex)
static void sort(T[] a) : Comparable 인터페이스를 구현해야 한다.
static void sort(T[] a, Comparator<? super t> c)
static int binarySearch(int[] a, int key) : 정렬된 배열에서 key를 탐색
staitc int binarySearch(T[] a, T key, Comparator<? super T> c)
static int[] copyOf(int[] orginal, int newLength)
static T[] copyOf(T[] original, int newLength)
static int[] copyOfRange(int[] original, int from, int to)
static copyOfRange(T[] original, int from, int to)
static boolean equals(int[] a, int[] a2)
static boolean equals(Object[] a, Object[] a2)
static void fill(int[] a, int val)
static void fill(int[] a, int fromIndex, int toIndex, int val)
static void fill(T[] a, T val)
static String toString(int[] a)
static String toString(Object[] a)
static int hashCode(int[] a)
static int hashCode(Object[] a)
선언과 생성 따로 처리할 시 컴파일 오류 / 선언 시 배열의 크기를 알 수 없을 때
void System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length) : 복사하려는 배열의 크기가 복사되는 크기를 length를 통해 넘어가면 에러가 발생한다.
int[] Arrays.copyOf(int[] original, int newLength)