[Java] 변수와 자료형
2024. 5. 6. 21:16ㆍBackend/Java
728x90
변수와 자료형
변수 ( Varialbe ) : 데이터를 저장하는 메모리 공간에 붙여준 이름
int ag e = 20;
String country = "Korea";
변수 이름 규칙
변수 규칙예시
| 문자와 숫자, _(underscore), $ 사용가능 | int apple = 2000; int apple3 = 6000; int _apple = 2000; |
| 숫자로 시작 | int 3apple = 6000; |
| 대문자와 소문자 구분 | int apple = 2000; int Apple = 2000; int APPLE = 2000; |
| 공백 사용 X | int one apple = 2000; |
| 미리 예약된 이름 사용 X | int true = 1; int if = 2; int continue = 10; |
- 표기법
- 카멜 표기법 ( camelCase )
- 가장 앞의 문자는 소문자로, 나머지 단어의 첫 문자는 ㄷ문자로 표기
- ex) myName, iPhone, powerPoint
- 파스칼 표기법 ( PascalCase )
- 각 문자의 첫 문자를 대문자로 표기
- ex) MyName, IPhone, PowerPoint
- 카멜 표기법 ( camelCase )
자료형 ( Data Type )
- 변수의 종류, 단위
- 숫자 ( Number )
- 부울 ( Boolean)
- 문자 ( Character )
- 문자열 ( String )j
- 변수의 종류애 따라 담을 수 있는 데이터의 타입과 크기가 다름
1. 자료형 - 숫자 ( Number )
- 숫자 형태의 자료형
- 정수 / 실수 / 2진수, 8진수, 16진수
종류 예시
| 종류 | 예시 |
| 정수 | int intNum = 10; long longNum = 2147483648L; |
| 실수 | float floatNum = 0.1f; double doubleNum = 3.4028236E38; |
| 2진수, 8진수, 16진수 | // 10진수 12 를 다른 진수로 표현 시, int numBase2 = 0b1100; int numBase8 = 014; int numBase16 = 0xC; |
2. 자료형 - 부울 ( Boolean )
- 참과 거짓을 나타내는 자료형
boolean isPass = true;
boolean isOk = false;
3. 자료형 - 문자 ( Character )
- char keyFirst = 'a'; char keyLast = 'z';
- 자료형 - 문자열 ( String )
- 문자들로 이루어진 집합
- 문자열 메소드
- equals, indexOf, replace, substring, toUpperCase
String s1 = "Hello World!"; String s2 = "01234"; // 1-1 equals String s3 = "Hi"; String s4 = "Hi"; System.out.println(s3.equals(s4)); // true System.out.println(s3 == s4); // true String s5 = new String("Hi"); System.out.println(s3.equals(s5)); // true System.out.println(s3 == s5); // false // equals 는 값을 비교 비교연산자(==) 는 객체를 비교 s3랑 s4는 같은객체 s5는 다른객체 // 1-2 indexOf String s6 = "Hello! World!"; System.out.println(s6.indexOf("!")); // 5 System.out.println(s6.indexOf("!", s6.indexOf("!") +1)); // 12 (문자열, 위치) // indexOf는 문자열에서 특정 문자열의 위치를 찾아주는 메서드 // 1-3 replace String s7 = s6.replace("Hello", "Bye"); // (바꿀문자열, 바꾸고싶은문자열) System.out.println(s7); // bye! World! // 1-4 substring System.out.println(s7.substring(0, 3)); // bye (시작위치포함(0), 끝나는인덱스-1(3-1)) System.out.println(s7.substring(0, s7.indexOf("!") + 1)); // bye! // substring 기존 문자열에서 부분 문자열을 뽑아주는 메서드 // 1-5 toUpperCase System.out.println(s7.toUpperCase()); // BYE! WORLD! // 전부 대문자로 바꿈 - 4. 자료형 - StringBuffer
- 문자열을 자주 추가하거나 변경할 때 사용하는 자료형
- StringBuffer 매소드 : append, insert, substring
// 2. 자료형 - StringBuffer StringBuffer sb1 = new StringBuffer(); sb1.append("01234"); System.out.println(sb1); // 01234 sb1.append("56789"); System.out.println(sb1); // 0123456789 // 문자열의 데이터가 많이 변경되거나 삭제될때 사용하면 좋음 StringBuffer는 객체를 새로 // 생성하지 않음 메모리 관리 효율적
5.자료형 - 배열 ( Array )
- 많은 수의 데이터를 담을 수 있는 자료형
// 일차원 배열
int[] myArray1 = {1, 2, 3, 4, 5};
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};
// 3. 자료형 - 배열
int[] myArray = {1, 2, 3, 4, 5};
System.out.println(myArray[0]); // 1
System.out.println(myArray[1]); // 2
System.out.println(myArray[2]); // 3
System.out.println(myArray[3]); // 4
System.out.println(myArray[4]); // 5
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};
System.out.println(myArray2[2]); // c
String[] myArray3 = new String[3];
myArray3[0] = "Hello";
myArray3[1] = " ";
myArray3[2] = "World!";
System.out.println(myArray[0] + myArray3[1] + myArray3[2]); // Hello World!
// 다차원 배열
int[][] myArray3 = {{1, 2, 3}, {4, 5, 6}}
int[][][] myArray4 = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
// 2차원 배열
int[][] myArray5 = {{1, 2, 3}, {4, 5, 6}};
System.out.println(myArray2[1][2]); // 6
6.자료형 - 리스트 ( List )
- 배열과 같이 여러 데이터를 담을 수 있는 자료형
- 추가로 여러가지 메서드를 제공
- 리스트 메소드 : add, get, size, remove, clear, sort, contains
ArrayList l1 = new ArrayList();
l1.add(1);
// 1-1. add 원소를 하나씩 추가
l1.add(1);
l1.add("Hello");
l1.add(2);
l1.add(3);
l1.add(4);
l1.add("World!");
System.out.println(l1); // [1, Hello, 2, 3, 4, World!]
l1.add(0, 1); // (위치, 추가할요소) 0번 인덱스에 1을 추가
System.out.println(l1); // [1, 1, Hello, 2, 3, 4, World!]
// 1-2. get 인덱스에있는 요소를 꺼내오는거
System.out.println(l1.get(0)); // 0번 인덱스 : 1
System.out.println(l1.get(3)); // 3번 인덱스 : 2
// 1-3. size 리스트에 원소 개수가 몇개 들어있는지
System.out.println(l1.size()); // 7
// 1-4. remove
l1.remove(0); // 인덱스위치에있는 요소 삭제
System.out.println(l1); // [1, Hello, 2, 3, 4, World!]
l1.remove(Integer.valuOf(2)); // 실제 일치하는 요소 삭제
System.out.println(l1); // [1, Hello, 3, 4, World!]
// 1.5. clear 리스트에 있는 모든 데이터를 지움
l1.clear();
System.out.println(l1); // []
// 1-6. sort 오름차순 내림차순 정렬
ArrayList l2 = new ArrayList();
l2.add(5);
l2.add(3);
l2.add(4);
System.out.println(l2); // [5, 3, 4]
l2.sort(Comparator.naturalOrder()); // 오름차순
System.out.println(l2); // [3, 4, 5]
l2.sort(Comparator.reverseOrder()); // 내림차순
System.out.println(l2); // [5, 4, 3]
// 1-7. contains 데이터가 리스트에 들어있는지 체크
System.out.println(l2.contains(1)); // false
System.out.println(l2.contains(3)); // true
7.자료형 - 맵 ( Map )
- key, value 형태로 데이터를 저장하는 자료형
- 맵 메소드 : put, get, size, remove, containsKey
HashMap<String, String> map = new HashMap<String, String>();
map.put("product", "kiwi");
map.put("price", "9000");
// 2-1 put Map에 데이터를 넣는 메서드 맵은 인덱스로 접근 하는게 아니라 key 값으로 접근
map.put("kiwi", 9000);
map.put("apple", 10000);
map.put("mango", 12000);
System.out.println(map);
// 2-2 get
System.out.println(map.get("mandarine")); // null
System.out.println(map.get("kiwi")); // 9000
// 2-3 size
System.out.println(map.size()); // 3 (한 쌍으로 이루어져서 저장됨)
// 2-4 remove
System.out.println(map.remove("kiwi")); // 9000
System.out.println(map.remove("mandarine")); // null
System.out.println(map); // {apple=10000, mango=12000}
// 2-5 containsKey key를 가지고 있는지 체크
System.out.println(map.containsKey("apple")); // true
System.out.println(map.containsKey("kiwi")); // false
8. 자료형 - 제네릭스 ( Generics )
- 자료형을 명시적으로 지정
- 제한적일 수 있지만 안정성을 높여주고 형변환을 줄여줌
ArrayList<String> l1 = new ArrayList<String>();
HashMap<String, Integer> map1 = new HashMap<String, Integer>();
// 3. Generics 자료형을 제한해주는 기능
ArrayList l3 = new ArrayList();
l3.add(1);
l3.add("Hello");
System.out.println(l3); // [1, Hello]
ArrayList<String> l4 = new ArrayList<String>();
// l4.add(1); // String으로 제한을 걸어서 문자열만 추가 가능
l4.add("Hello");
System.out.println(l4); // [Hello]
HashMap map1 = new HashMap(); // 제한을 안 걸어서 아무렇게나 써도 잘 들어감
map1.put(123, "id");
map1.put("apple", 10000);
System.out.println(map1); // {apple=10000, 123=id}
HashMap<String, Integer> map2 = new HashMap<>();
// map2.put(123, "id"); // String, Integer 형식을 맞춰줘야 추가 가능
map2.put("apple", 10000);
System.out.println(map2); // {apple=10000}
'Backend > Java' 카테고리의 다른 글
| [Java] 상속 (0) | 2024.05.09 |
|---|---|
| [Java] 클래스와 객체2 (0) | 2024.05.09 |
| [Java] 클래스와 객체 (0) | 2024.05.08 |
| [Java] 반복문 (0) | 2024.05.06 |
| [Java] 조건문 (0) | 2024.05.06 |