:: Number
- 숫자
- 정수 : int, long (1L)
- 실수 : float(0.1F), double
- 8진수 : 0 으로 시작
- 16진수 : 0x로 시작
+, -, /, * 사칙연산 가능
% 나누기의 나머지 반환
| 자료형 | 표현범위 |
|---|
| int | -2147483648 ~ 2147483647 |
| long | -9223372036854775808 ~ 9223372036854775807 |
| float | -3.4 1038 ~ 3.4 1038 |
| double | -1.7 10308 ~ 1.7 10308 |
증감 연산자 ++, --
++, -- 는 연산자의 위치가 중요하다.
++ : 1만큼 증가
-- : 1만큼 감소
i++ or i-- : 값 참조 후에 증감, 더하거나 뺀 후 다음꺼에 증감
++i or --i : 값 참조 전에 증감, 증감된 후 더하고나 뺀다.
:: boolean
- true or false
- 참과 거짓 판단
- 주로 조건문의 판단 기준으로 많이 사용
:: char
- 문자 ( 한글자 )
- 작은 따옴표 사용
'a'
- 문자로 표현 or 아스키코드로 표현 of 유니코드로 표현
:: String
- 문자열
- 큰 따옴표 사용
"apple", "a"
new는 객체를 만들 때 사용
문자열 내장 메서드
| 문자열 | 설명 |
|---|
| equals | 문자열 비교 |
| indexOf | 문자열 시작 위치 리턴 |
| contains | 포함 여부 |
| charAt | 해당 위치의 문자 리턴 |
| replaceAll | 문자열 바꾸기 |
| substring | 뽑아내기 |
| toUpperCase | 대문자로 |
| split | 나누기 |
equals : 두 개의 문자열 동일한지 비교
== : 동일한 객체인지 판별할 때 사용
equals : 문자열 값 비교할 때 사용
indexOf : 특정 문자열 시작되는 위치 리턴a.indexOf("Java")
contains : 특정 문자열 포함 여부 리턴a.contains("Java")
charAt : 특정 위치의 문자(char) 리턴
- 어떤 문자가 있는지 알고 싶은 위치를 적어야 함
a.charAt(6)
replaceAll : 문자열 바꾸기a.replaceAll("뭐바꿀래", "이걸로바꿔")
substring : 특정 부분 뽑아내기a.substring(시작위치, 끝의 하나 뒤 위치)
toUpperCase : 모두 대문자로 변경a.toUpperCase()
split : 특정 구분자로 나누기a.split(" ")
문자열 포매팅
:: StringBuffer
- 문자열 추가 or 변경시 사용
append : 문자열 추가
toString() : String 자료형으로 변경
insert : 해당 위치에 문자열 삽입sb.insert(넣을 위치, "넣을 문자열");
substring : 뽑아내기
- StringBuffer는 문자열 변경 작업이 많은 경우 사용
- 멀티스레드 환경에서 안전
cf. StringBuilder
StringBuffer보다 우수한 성능
동기화 고려할 필요 없을 땐 StringBuilder 사용이 유리StringBuffer sb = new StringBuffer();
sb.append("hello");
String result = sb.toString();
System.out.println(result);
:: Array
- 배열
- 자료형의 종류가 아닌 자료형의 집합
- 배열은 자료형 타입 바로 옆에
[] 사용해 표현
- 배열의 길이는 고정되어 있음
new 자료형타입[길이]
타입[] var = {값, 값, 값, 값, ...}
- 배열 값에 접근은 해당 위치, 즉 인덱스 이용
- 배열의 길이는
.length;를 이용
- 길이가 7갠데 8번째 값 얻으려고 시도하면 오류 ( ArrayIndexOutOfBoundsException )
:: List
- 리스트
- 배열과 다르게 크기가 정해지지 않고 동적으로 변한다.
- 원하는 만큼 값을 담을 수 있다.
ArrayList
add : 값 추가
get : 특정 인덱스 값 추출
size : 길이, 즉 갯수
contains : 포함 여부
remove : 삭제
remove (객체(=값)) : 삭제 후 true or false 리턴
remove (인덱스) : 삭제 후 삭제된 값 리턴
Generics
ArrayList<자료형 타입> var = new ArrayList<>();
(Arrays.asList(값, 값, 값, ...) : ArrayList 생성
String.join : ArrayList 를 문자열로
sort(Comparator.naturalOrder()) : 오름차순 (순)
sort(Comparator.reverseOrder()) : 내림차순 (역)
:: Map
- key를 통해 values 얻는다.
- 순서 없음
HashMap
HashMap<type, type> map = new HashMap<>();
put : 값 추가 var.put(key, values)
get : 값 얻기 , get 뒤에 key값 적으면 됨
containsKey : 포함 여부, key값 적기
remove : 삭제, key값 적고 삭제하면 values 리턴
size : 갯수, 길이
keySet : 모든 key 모아서 리턴
LinkedHashMap
TreeMap
:: Set
교집합, 합집합, 차집합
기준 . retainAll, addAll, removeAll( 비교 )
- 교집합 :
retainAll
- 합집합 :
addAll
- 차집합 :
removeAll
집합 자료형 관련 메서드
TreeSet
LinkedHashSet
:: Enum
- 상수 집합
- 서로 관련 있는 여러개의 상수 집합 정의
- 매직넘버(상수로 선언하지 않은 숫자)을 사용할 때보다 코드 명확
- 잘못된 값 사용하여 발생하는 위험성 사라짐