데이터를 저장하는 메모리 공간에 붙이는 이름
// 작성 형태 :
// 데이터타입 변수이름 = 값;
int num = 10;
String name = "yuns";
숫자 형태의 자료형 (정수, 실수, 2진수, 8진수, 16진수)
// number 자료형
// 정수
int intNum = 10;
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.MAX_VALUE);
// 실수
double doubleNum = 1.23;
float floatNum = 1.23f; // f붙여야함
System.out.println(Float.MAX_VALUE);
System.out.println(Double.MAX_VALUE);
// 2진수
int num2 = 0b1100;
// 그냥 출력하면 10진수로 출력됨
System.out.println(num2);
System.out.println(Integer.toBinaryString(num2));
int num8 = 014;
System.out.println(num8);
System.out.println(Integer.toOctalString(num8));
int num16 = 0xC;
System.out.println(num16);
System.out.println(Integer.toHexString(num16));
true / false 참인지 거짓인지
// Boolean 자료형
boolean isOk = true;
boolean isCheck = false;
// 문자 자료형
char key1 = 'a';
char key2 = 'f';
System.out.println(key1); // a
// askii 코드 값으로 출력 가능
System.out.println((int)key1); // 97
문자열, 문자들로 이루어진 집합
// 문자열 (String)
String str = "Hello";
String str2 = "Hello";
System.out.println(str); // Hello
System.out.println(str.equals(str2));
// equals와 비교연산자 == 의 차이점
// equals는 값을 비교하는 것
// == 는 객체를 비교하는 것
// 문자열은 값이 같으면 같은 메모리를 가리키기 때문에 str과 str2는 같다
// new 키워드를 사용하면 새로운 객체를 만들기 때문에
// str과 str3는 같지 않다
String str3 = new String("Hello");
System.out.println(str == str2); // true
System.out.println(str == str3); // false
// indexOf
String str4 = "Hello World";
System.out.println(str4.indexOf("o")); // 4
System.out.println(str4.indexOf("o", str4.indexOf("o") + 1)); // 7
// replace
String str5 = str4.replace("H", "W");
System.out.println(str5); // Wello World
// substring
// substring(시작위치, 끝위치 + 1)
System.out.println(str5.substring(0, 5)); // Wello
// "o"가 나오는 위치까지 자르기
System.out.println(str5.substring(0, str5.indexOf("o") + 1)); // Wello
// toUpperCase 모두 대문자로 변환
System.out.println(str5.toUpperCase()); // WELLO WORLD
여러 개의 데이터를 담을 수 있는 자료형
// 배열 (Array)
int[] nums = {1,2,3,4,5};
System.out.println(nums[0]); // 1
// String[] strArray = {"apple", "banana", "orange"};
String[] strArray = new String[3]; // 3칸의 배열 생성
strArray[0] = "apple";
strArray[1] = "banana";
strArray[2] = "orange";
System.out.println(strArray[2]); // orange
// arrayList
ArrayList list = new ArrayList();
list.add(1);
list.add("hello");
list.add(5);
System.out.println(list); // [1, hello, 5]
System.out.println(list.get(1)); // hello
System.out.println(list.size()); // 3
list.remove(0);
System.out.println(list); // [hello, 5]
list.remove(Integer.valueOf(5)); // 5인 정수 지우기
System.out.println(list); // [hello]
list.clear(); // 모든 값 지우기
// sort 오름차순, 내림차순 정렬
ArrayList list2 = new ArrayList();
list2.add(5);
list2.add(3);
list2.add(1);
list2.add(6);
System.out.println(list2); // [5, 3, 1, 6]
list2.sort(Comparator.naturalOrder());
System.out.println(list2); // [1, 3, 5, 6]
list2.sort(Comparator.reverseOrder());
System.out.println(list2); // [6, 5, 3, 1]
key, value 형태로 데이터를 저장할 수 있는 자료형
// maps
HashMap map = new HashMap();
// 값 넣기
map.put("banana", 1000);
map.put("apple", 2000);
map.put("grape", 3000);
System.out.println(map); // {banana=1000, apple=2000, grape=3000}
// 값 꺼내기
System.out.println(map.get("banana")); // 1000
// 사이즈
System.out.println(map.size()); // 3
// 값 지우기
map.remove("apple");
System.out.println(map); // {banana=1000, grape=3000}
// 해당 키 값이 map에 있는지 확인하기
System.out.println(map.containsKey("grape")); // true
자료형을 명시적으로 지정
안정성을 높여주며 형 변환을 줄일 수 있다
// Generics
ArrayList<String> strList = new ArrayList<String>();
strList.add("banana");
// strList.add(1); // String으로 타입을 지정했기 때문에 숫자가 들어갈 수 없음
HashMap<String, Integer> map2 = new HashMap<>();
map2.put("kiwi", 5000); // String, Integer 자료형만 들어갈 수 있음