변수
변수에는 값을 대입하여 사용할 수 있으며, 이 값의 형태가 자료형이다.
변수명 규칙
- 숫자로 시작 불가
- `_`, `$` 이외의 특수문자 사용 불가
- int, class, return 등 자바의 키워드는 변수명으로 사용 불가
💡 자바의 키워드
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
자료형
변수 앞에 int, String은 변수의 자료형이다.
자주 쓰이는 자료형
원시 타입
- `int`
- `long`
- `double`
- `boolean`
- `char`
참조 타입
- `String`
- `StringBuffer`
- `List`
- `Map`
- `Set`
숫자
정수
- `byte` : 1 byte
- `short` : 2 byte
- `int` : 4 byte
- 대략 10자리수 의 숫자 범위
- `long` : 8 byte
- int 자료형 최대값보다 크면 접미사에 L을 붙어주어야 컴파일 오류가 발생하지 않음
실수
- `float`
- 실수형의 기본 값이 double으로 접미사에 F을 붙어주어야 컴파일 오류가 발생하지 않음
- `double`
8진수와 16진수
- 8진수 : 숫자 9으로 시작
- 16진수 : 숫자 9과 알파벳 x로 시작
불
`true`와 `false`의 값을 갖는 자료형을 boolean 자료형이라고 하며 1 byte를 차지한다.
문자
`char` 자료형을 사용하며 단일 문자값 표현한다.
문자열
`String` 자료형을 사용하여 문자열을 표현한다.
리터럴 표기 방식과 객체 생성 방식 두 가지로 표기할 수 있는데 최적화와 가독성을 위해 리터럴 방식을 사용하는 것을 추천한다.
내장 메서드
- `equals` : 문자열 2개가 같은지 비교하여 결과값 리턴
- `indexOf` : 문자열에서 특정 문자열이 시작되는 위치(인덱스값)를 리턴
- `contains` : 문자열에서 특정 문자열이 포함되어 있는지 여부를 리턴
- `charAt` : 문자열에서 특정 위치의 문자를 리턴
- `replaceAll` : 문자열에서 특정 문자열을 다른 문자열로 바꿀 때 사용
- `substring` : 문자열에서 특정 문자열을 뽑아낼 때 사용
- `toUpperCase` : 문자열을 모두 대문자로 변경할 때 사용
- `split` : 문자열을 특정한 구분자로 나누어 문자열 배열로 리턴
문자열 포매팅
`String.format()`
코드 | 설명 |
%s | 문자열(String) |
%c | 문자 1개(character) |
%d | 정수(Integer) |
%f | 부동소수(floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 % 자체) |
1. 정렬과 공백 `%숫자s`
- 숫자가 양수면 숫자 길이만큼 오른쪽 정렬
- 숫자가 음수면 숫자 길이만큼 왼쪽 정렬
2. 소수점 표현 `%숫자1.숫자2f`
- 숫자1 만큼 양수(오른쪽) 혹은 음수(왼쪽)에 따라 정렬
- 숫자2 만큼 소수점 자리수 표현
3. `System.out.printf`
- 숫자2 만큼 소수점 자리수 표현
StringBuffer
문자열을 추가하거나 변경할 때 주로 사용하는 자료형이며 `toString()` 메서드 사용하여 String 자료형으로 변경할 수 있다.
`String` 자료형에 비하여 `StringBuffer` 자료형은 값을 변경할 수 있으나, 무겁기 때문에 메모리 사용량이 많고 속도가 느림으로 이것을 고려해야 한다.
기본 메서드
- `append`
- 해당 메서드를 사용하여 문자열을 계속 추가할 수 있음
- `insert`
- 특정 위치에 원하는 문자열을 삽입
- `substring(시작 위치, 끝 위치)`
- StringBuffer 객체의 시작 위치에서 끝 위치까지의 문자를 뽑기
배열
특정 자료형이 모인 집합으로 자료형 바로 옆에 `[]` 기호를 붙이다.
배열의 길이 설정
배열의 길이를 먼저 설정하 뒤, 배열 변수를 생성하고 그 값을 나중에 대입
ex. `String[] weeks = new String[7]`
배열값에 접근
해당 인덱스를 이요하여 값을 얻기
배열의 길이 구하기
배열의 길이는 length를 사용하여 구함
ex. `array.length`
리스트
배열과 비슷하지만 리스트는 크기가 변하지 않으며, 자바에서 리스트 자료형에서 가장 일반적으로 사용하는 `ArrayList`을 사용하며 그 밖에도 `Vector`, `LinkedList` 등이 있다.
ArrayList 만들기
- `add` 메서드 사용하여 `ArrayList` 객체에 요소를 추가
- 기존 문자열 배열에 ArrayList를 편하게 생성
`ArrayList<String> pitches = new ArrayList<>(Arrays.asList(data));` - String 자료형 여러 개 전달하여 생성
`ArrayList<String> pitches = new ArrayList<>(Arrays.asList("138", "129", "142"));`
기본 메서드
- `add(위치, 삽입할 요소)`
- 해당 메서드를 사용하여 요소값을 추가 가능
- 자바 J2SE 5.0 버전부터 객체를 포함하는 자료형은 어떤 객체를 포함하는지 ArrayList<String> pitches = new ArrayList<>(); 처럼 명확하게 표현할 것을 권
- `get(인덱스)`
- 특정 인덱스 값을 추출하여 리턴
- `size()`
- ArrayList의 요소의 개수를 리턴
- `contains(요소)`
- 리스트 안에 해당 항목이 있는지 판별하여 boolean으로 리턴
- `remove()`
- `remove(객체)` : 객체에서 해당하는 항목을 삭제한 뒤, 그 결과로 boolean 리턴
- `remove(인덱스)` : 인덱스에 해당하는 항목을 삭제한 뒤 그 항목 리턴
String.join("구분자", 리스트)
ArrayList의 각 요소를 구분자로 구분해서 하나의 문자열로 만들기
리스트 정렬
`import java.util.Comparator`를 통해 sort 메서드 사용
- 오름차순 정렬 : `Comparator.naturalOrder()`
- 내림차순 정렬 :` Comparator.reverseOrder()`
제네릭스
자바 J2SE 5.0 버전 이후에 도입된 개념으로, 자료형을 안전하게 사용할 수 있도록 만들어 주는 기능
`ArrayList<String> pitches = new ArrayList<>();`
맵
키(key)와 값(value)을 한 쌍으로 갖는 자료형으로 맵 자료형으로는 `HashMap`, `LinkedHashMap`, `TreeMap` 등이 있다.
기본 메서드
- `put(key, value)`
- key와 value를 추가
- `get(key)`
- key에 해당하는 value를 얻을 때 사용
- getOrDefault 메서드를 사용하면 value가 없을 때 null 대신 기본 값을 제공
- `containsKey`
- 맵에 해당 key가 있는지 참과 거짓으로 리턴
- `remove(key)`
- 맵에서 해당 key의 항목을 삭제한 후 value 값을 리턴
- `size()`
- 맵 요소의 개수를 리턴
- `keySet()`
- 맵의 모든 key를 모아서 집합 자료형으 리턴
LinkedHashMap과 TreeMap
Map에 입력된 순서대로 데이터를 가져오거나 입력한 key에 의해 정렬하도록 저장하고 싶으면 이를 사용
- `LinkedHashMap` : 입력된 순서대로 데이터를 저장한다.
- `TreeMap` : 입력된 key의 오름차순으로 데이터를 저장한다.
집합
집합과 관련된 것을 쉽게 처리하기 위해 만든 것으로 `HashSet`, `TreeSet`, `LinkedHashSet` 등이 있다.
- 중복을 허용하지 않음
- 순서가 없음
교집합, 합집합, 차집합
- `retainAll` (교집합)
- `addAll` (합집합)
- `removeAll` (차집합)
기본 메서드
- `add`
- 집합 자료형에 값을 추가할 때 사용
- `addAll`
- 값을 한꺼번에 여러 개 추가할 때 사용
- `remove`
- 특정 값을 제거할 때 사용
TreeSet과 LinkedHashSet
집합에는 순서가 없으나, 입력한 순서대로 데이터를 가져오거나 오름차순으로 정렬된 데이터를 가져오고 싶을 수 있다. 이럴 때는 TreeSet과 LinkedHashSet을 사용
- reeSet : 값을 오름차순으로 정렬해 저장한다.
- LinkedHashSet : 값을 입력한 순서대로 정렬한다.
상수 집합
`enum` 자료형은 서로 연관 있는 여러 개의 상수 집합을 정의할 때 사용
상수
`final`은 자료형에 값을 한 번만 설정할 수 있도록 강제하는 키워드
형변환
- `ParseInt`
- `valueOf`
- `toString`
- `parseDouble`
- `parseFloat`
'개발 기초 > 언어' 카테고리의 다른 글
[JavaScript] 힙 자료구조 (1) | 2024.06.30 |
---|---|
[JavaScript] 입력 받기 (0) | 2024.06.30 |
[Java] 입출력 (0) | 2024.06.30 |
[Java] 코드 구조 (0) | 2024.06.30 |
[MySQL] SQL 기본 문법 (0) | 2024.04.05 |