1. 숫자형 자료형
1) 정수 (int
, long
)
자료형 | 표현범위 |
---|---|
int |
-2147483648 ~ 2147483647 |
long |
-9223372036854775808 ~ 9223372036854775807 |
주로 int를 사용하며
long을 사용할 경우 숫자 뒤에 L을 붙인다
2) 실수 (float
, double
)
자료형 | 표현범위 |
---|---|
float |
-3.4 _ 10^38 ~ 3.4 _ 10^38 |
double |
-1.7 _ 10^308 ~ 1.7 _ 10^308 |
주로 double을 사용하며
float를 사용할 경우 숫자 뒤에 F를 붙인다
3) 8진수와 16진수 (int
)
int
자료형을 사용하여 표현하는데
- 8진수 : 숫자 0으로 시작
- 16진수 : 0x 로 시작
4) 숫자 연산
사칙연산은 아래와 같이 이용된다.
public class Sample {
public static void main(String[] args) {
int a = 10;
int b = 5 ;
System.out.println(a+b); // 15
System.out.println(a-b); // 5
System.out.println(a*b); // 50
System.out.println(a/b); // 2
// 나머지값
System.out.println(a%b); // 0
System.out.println(7%3); // 1
System.out.println(3%7); // 3
//3은 7보다 작기 때문에 나눌 수 없고, 나머지는 그대로 3
}
}
5) 증감 연산 (++
,--
)
표현 | 의미 | 실행 순서 |
---|---|---|
i++ |
값을 **먼저 사용(참조)**하고, 그 후 1 증가 | 참조 → 증가 |
++i |
값을 먼저 1 증가시키고, 그 값을 사용 | 증가 → 참조 |
i-- |
값을 **먼저 사용(참조)**하고, 그 후 1 감소 | 참조 → 감소 |
--i |
값을 먼저 1 감소시키고, 그 값을 사용 | 감소 → 참조 |
2. 불(boolean) 자료형 (boolean
)
boolean
대입되는 값은 참과 거짓으로 이뤄져있다.
boolean |
대입 값 |
---|---|
true | 참 |
false | 거짓 |
3. 문자 자료형 (char
)
char
을 이용한다.
char a1 = 'a';
작은 따옴표를 이용하여 문자를 표현한다.
4. 문자열 자료형 (String
)
String
을 이용한다.
String a = "Hello";
String b = "a";
String c = "1234";
쌍 따옴표를 이용하여 문자열을 표현한다.
1) 문자열 내장 메서드
메서드 | 설명 |
---|---|
equals |
문자열 2개가 같은지 비교하여 결과값을 리턴 |
indexOf |
문자열에서 특정 문자열이 시작되는 위치(인덱스값)를 리턴 |
contains |
문자열에서 특정 문자열이 포함되어 있는지 여부를 리턴 |
charAt |
문자열에서 특정 위치의 문자를 리턴 |
replaceAll |
문자열에서 특정 문자열을 다른 문자열로 바꿀 때 |
substring |
문자열에서 특정 문자열을 뽑아낼 때 사용 |
toUpperCase |
문자열을 모두 대문자로 변경할 때 사용 |
toLowerCase |
문자열을 모두 소문자로 변경할 때 사용 |
split |
문자열을 특정한 구분자로 나누어 문자열 배열로 리턴 |
// equals
String a = "hello";
String b = "java";
String c = "hello";
System.out.println(a.equals(b)); // false 출력
System.out.println(a.equals(c)); // true 출력
// indexOf
String a = "Hello Java";
System.out.println(a.indexOf("Java")); // 6 출력
// contains
String a = "Hello Java";
System.out.println(a.contains("Java")); // true 출력
// charAt
String a = "Hello Java";
System.out.println(a.charAt(6)); // "J" 출력
// replaceAll
String a = "Hello Java";
System.out.println(a.replaceAll("Java", "World")); // Hello World 출력
// substring
String a = "Hello Java";
System.out.println(a.substring(0, 4)); // Hell 출력
// toUpperCase
String a = "Hello Java";
System.out.println(a.toUpperCase()); // HELLO JAVA 출력
// split
String a = "a:b:c:d";
String[] result = a.split(":"); // result는 {"a", "b", "c", "d"}
2) 문자열 포매팅 (String.format
)
문자열 안의 특정한 값을 바꿀 수 있게 해주는 것
→ 문자열 안에 어떤 값을 삽입하는 방법
코드 | 설명 |
---|---|
%s | 문자열 (String) |
%c | 문자 1개 (character) |
%d | 정수 (Integer) |
%f | 부동소수 (floating-point) |
%o | 8진수 |
%x | 16진수 |
%% | Literal % (문자 %자체) |
// 숫자 대입
System.out.println(String.format("I eat %d apples.", 3)); // "I eat 3 apples." 출력
// 문자열 대입
System.out.println(String.format("I eat %s apples.", "five")); // "I eat five apples." 출력
// 변수값 대입
int number = 3;
System.out.println(String.format("I eat %d apples.", number)); // "I eat 3 apples." 출력
// 값 2개 이상 대입
int number = 10;
String day = "three";
System.out.println(String.format("I ate %d apples. so I was sick for %s days.", number, day));
// %% 사용법
System.out.println(String.format("Error is %d%%.", 98)); // "Error is 98%." 출력
응용
코드 | 사용법 |
---|---|
%10s |
정렬과 공백 표현 |
%.4f |
소수점 표현 |
// 정렬과 공백
System.out.println(String.format("%10s", "hi")); // " hi" 출력
// 소수점 표현
System.out.println(String.format("%.4f", 3.42134234)); // 3.4213 출력
System.out.printf
포매팅된 문자열을 출력할 때 System.out.println
으로 출력을 했는데 System.out.printf
메서드를 사용하면 String.format 메서드 없이 출력이 가능하다.
System.out.printf("I eat %d apples.", 3); // "I eat 3 apples." 출력
5. String Buffer
문자열을 추가하거나 변경할 때 주로 사용하는 자료형
메서드 | 설명 |
---|---|
append |
문자열을 추가 |
insert |
특정 위치에 원하는 문자열 삽입 |
substring |
시작위치에서 끝 위치까지의 문자를 뽑아줌 |
// append
StringBuffer sb = new StringBuffer(); // StringBuffer 객체 sb 생성
sb.append("hello");
sb.append(" ");
sb.append("nayoung");
String result = sb.toString();
System.out.println(result); // "hello nayoung" 출력
// insert
StringBuffer sb = new StringBuffer();
sb.append("nayoung");
sb.insert(0, "hello ");
System.out.println(sb.toString()); // hello nayoung
// substring
StringBuffer sb = new StringBuffer();
sb.append("Hello!");
System.out.println(sb.substring(0, 4)); //Hell
6. 배열
집합을 표현하기 위하여 배열은 자료형 바로 옆에 [] 기호를 붙인다.
int[] odds = {1,3,5};
String[] weekend = {"월","화","수","목","금"};
1) 배열 길이 설정
배열의 길이를 먼저 설정한 뒤, 배열 변수를 생성하고 그 값을 나중에 대입한다.
String[] weeks = new String[7];
weeks[0] = "월";
weeks[1] = "화";
weeks[2] = "수";
weeks[3] = "목";
weeks[4] = "금";
weeks[5] = "토";
weeks[6] = "일";
2) 배열값에 접근하기
인덱스를 이용하여 값에 접근한다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[3]); // 목
3) 배열의 길이 구하기
.length
를 활용하여 길이를 구한다
// 배열 길이 구할 때
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks.length); // 7
// 문자열 길이 구할 때
String word = "hello";
System.out.println(word.length()); // 출력: 5
7. 리스트 (List)
리스트와 배열은 비슷하지만 큰 차이점은
리스트는 크기가 변한다.
배열은 크기가 정해져있다.
1) ArrayList
메서드명 | 설명 |
---|---|
add |
요솟값을 추가 |
get |
특정 인덱스의 값을 추출 |
size |
요소의 개수를 리턴 |
contains |
리스트 안에 해당 항목이 있는지 판별해 그 결과를 boolean으로 리턴 |
remove(객체) |
리스트에서 객체에 해당하는 항목을 삭제한 뒤, 결과로 true/false를 리턴 |
remove(인덱스) |
인덱스에 해당하는 항목을 삭제한 뒤, 그 항목을 리턴 |
import java.util.ArrayList;
public class Sample {
public static void main(String[] args) {
ArrayList pitches = new ArrayList();
// add
pitches.add("138");
pitches.add("129");
pitches.add("142");
// get
System.out.println(pitches.get(1)); // 129
}
}
// size
System.out.println(pitches.size()); // 3
// contains
System.out.println(pitches.contains("142")); // true
// remove(객체)
System.out.println(pitches.remove("129")); // 129를 리스트에서 삭제하고, true를 리턴한다.
//remove(인덱스)
System.out.println(pitches.remove(0)); // pitches의 첫 번째 항목이 138이므로, 138을 삭제한 뒤 138을 리턴한다.
2) 제네릭스
ArrayList에 담을 수 있는 자료형을 설정해주어 좀 더 명확하게 체크해준다.
ArrayList<String> pitches = new ArrayList<>();
pitches.add("138");
pitches.add("129");
String one = pitches.get(0); // 형 변환이 필요없다.
String two = pitches.get(1); // 형 변환이 필요없다.
3) 다양한 방법으로 ArrayList 만들기
import java.util.ArrayList;
import java.util.Arrays;
public class Sample {
public static void main(String[] args) {
String[] data = {"138", "129", "142"}; // 이미 투구수 데이터 배열이 있다.
ArrayList<String> pitches = new ArrayList<>(Arrays.asList(data)); // 이미 존재하는 문자열 배열로 제작이 가능하다
System.out.println(pitches); // [138, 129, 142] 출력
// 초기에 생성할 수도 있다
ArrayList<String> pitches = new ArrayList<>(Arrays.asList("138", "129", "142"));
}
}
4) String.join
ArrayList의 각 요소를 콤마로 구분해서 1개의 문자열로 만들려면?String.join("구분자", 리스트 객체)
를 이용
import java.util.ArrayList;
import java.util.Arrays;
public class Sample {
public static void main(String[] args) {
ArrayList<String> pitches = new ArrayList<>(Arrays.asList("138", "129", "142"));
String result = String.join(",", pitches);
System.out.println(result); // 138,129,142 출력
}
}
5) 리스트 정렬하기 (sort
)
- 오름차순(순방향) 정렬 -
Comparator.naturalOrder()
- 내림차순(역방향) 정렬 -
Comparator.reverseOrder()
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Sample {
public static void main(String[] args) {
ArrayList<String> pitches = new ArrayList<>(Arrays.asList("138", "129", "142"));
pitches.sort(Comparator.naturalOrder()); // 오름차순으로 정렬
System.out.println(pitches); // [129, 138, 142] 출력
}
}
8. 맵 (Map)
대응관계를 쉽게 표현할 수 있게 해주는 자료형
맵 자료형 중 가장 기본인 HashMap
에 대해 알아볼 것이다.
맵은 키(key)와 값(value)을 한 쌍으로 갖는 자료형이다.
1) HashMap
메서드명 | 설명 |
---|---|
put |
key와 value를 추가 |
get |
key에 해당하는 value를 얻을 때 사용 |
containsKey |
맵에 해당하는 key가 있는지를 참/거짓으로 리턴 |
remove |
맵의 항목을 삭제하는 메서드. 해당 key의 항목을 삭제한 후 value 값을 리턴 |
size |
맵 요소의 개수를 리턴 |
keySet |
맵의 모든 key를 모아 리턴 |
import java.util.HashMap;
public class Sample {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
// put
map.put("people", "사람");
map.put("baseball", "야구");
// get
System.out.println(map.get("people")); // "사람" 출력
// containsKey
System.out.println(map.containsKey("people")); // true 출력
// remove
System.out.println(map.remove("people")); // "사람" 출력
// size
System.out.println(map.size()); // 1
// keySet
System.out.println(map.keySet()); // [baseball]
}
}
9. 집합 (set)
집합과 관련된 것을 쉽게 처리하기 위해 만든 것
HashSet, TreeSet, LinkedHashSet 등이 있는데 그 중 가장 많이 사용하는 HashSet을 알아보자.
import java.util.Arrays;
import java.util.HashSet;
public class Sample {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>(Arrays.asList("H", "e", "l", "l", "o"));
System.out.println(set); // [e, H, l, o] 출력
}
}
1) 집합 자료형의 2가지 특징
- 중복을 허용하지 않는다.
- 순서가 없다.
2) 교집합, 합집합, 차집합 구하기
public class Sample {
public static void main(String[] args) {
HashSet<Integer> s1 = new HashMap<>(Arrays.asList(1, 2, 3, 4, 5,6));
HashSet<Integer> s2 = new HashMap<>(Arrays.asList(4, 5, 6, 7, 8, 9));
// 교집합
HashSet<Integer> intersection = new HashSet<>(s1); // s1으로 intersection 생성
intersection.retainAll(s2); // 교집합 수행
System.out.println(intersection); // [4, 5, 6] 출력
// 합집합
HashSet<Integer> union = new HashSet<>(s1); // s1으로 union 생성
union.addAll(s2); // 합집합 수행
System.out.println(union); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 출력
// 차집합
HashSet<Integer> substract = new HashSet<>(s1); // s1으로 substract 생성
substract.removeAll(s2); // 차집합 수행
System.out.println(substract); // [1, 2, 3] 출력
}
}
집합 | 메서드명 | 설명 |
---|---|---|
교집합 | retainAll |
두 집합의 교집합을 구한다 |
합집합 | addAll |
두 집합의 합집합을 구한다 |
차집합 | removeAll |
두 집합의 차집합을 구한다 |
10. 상수 집합 (enum
)
public class Sample {
enum CoffeeType {
AMERICANO,
ICE_AMERICANO,
CAFE_LATTE
};
public static void main(String[] args) {
System.out.println(CoffeeType.AMERICANO); // AMERICANO 출력
System.out.println(CoffeeType.ICE_AMERICANO); // ICE_AMERICANO 출력
System.out.println(CoffeeType.CAFE_LATTE); // CAFE_LATTE 출력
}
}
11. 형 변환과 final
형 변환은 자료형을 다른 자료형으로 바꾸는 것
1) 형 변환
변환 방향 | 메서드 또는 형식 | 설명 |
---|---|---|
문자열 → 기본형 | 원하는타입.parseXXX("문자열") |
문자열을 int, double 등으로 변환 예: Integer.parseInt("123") |
기본형 → 문자열 | String.valueOf(값) 또는 원래타입.toString(값) |
숫자, boolean 등을 문자열로 변환 예: String.valueOf(123) or Integer.toString(123) |
기본형 간 변환 | (타입)값 |
명시적 형 변환 (casting) 예: (int) 3.14 , (double) 10 |
참조형 간 변환 (상속관계) | (클래스타입) 참조변수 |
부모 → 자식 등 형변환 예: (String) obj (단, 실제 타입이 맞아야 함) |
// 문자열 → int
int a = Integer.parseInt("123");
// int → 문자열
String s1 = String.valueOf(123);
String s2 = Integer.toString(123);
// double → int (소수 버림)
double d = 3.14;
int b = (int) d;
// Object → String (참조형 캐스팅)
Object obj = "hello";
String s3 = (String) obj;
2) final
자료형에 값을 단 한 번만 설정할 수 있게 강제하는 키워드
값을 한 번 설정하면 그 값을 다시 설정할 수 없다.
그러므로 프로그램을 수행하면서 그 값이 절대 바뀌면 안 될 때 사용한다.
public class Sample {
public static void main(String[] args) {
final int n = 123; // final로 설정하면 값을 바꿀 수 없다.
n = 456; // 컴파일 오류 발생
}
}
'Java' 카테고리의 다른 글
[Java] 자바의 기초 - 제어문 (1) | 2025.05.19 |
---|