[Java] 변수와 자료형

2024. 5. 6. 21:16Backend/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

자료형 ( 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