본문 바로가기

Study for Backend/Programming language - Java

[Java기초] 변수 및 자료형

//      1. 변수 사용하기
        System.out.println("== 변수 사용하기 ==");

//      2. 변수 이름 규칙
        System.out.println("== 변수 이름 규칙 ==");

//      2-1. 문자, 숫자, _(underscore), $ 사용 가능
        int appl = 2000;
        int _apple = 3000;
        int $apple = 4000;
        System.out.println(appl);
        System.out.println("appl = " + appl);
        System.out.println(_apple);
        System.out.println("_apple = " + _apple);
        System.out.println($apple);
        System.out.println("$apple = " + $apple);
//      2-2. 숫자로 시작 X

//      2-3. 대소문자 구분

//      2-4. 공백 사용 X

//      2-5. 예약어 사용 X
//      예약어 예시: true, false, if, switch, for, continue, break, ...

//      참고) 한글 사용 가능

//      3. 표기법
//      3-1. 카멜 표기법 (camelCase)
//      변수, 함수

//      3-2. 파스칼 표기법 (PascalCase)
//      클래스

//      참고) 스네이크 표기법 (snake_case)
//      사용 X


//      1. 자료형 - 숫자
        System.out.println("== 숫자 ==");

//      1-1. 정수
        System.out.println("== -->정수 ==");
        int intNum = 10;
        System.out.println("intNum = " + intNum);


        long longNum = 2147483648L;
        System.out.println("longNum = " + longNum);

//      1-2. 실수
        System.out.println("== -->실수 ==");
        float floatNum = 0.1f;
        System.out.println("floatNum = " + floatNum);
        double doubleNum = 3.4028236E38;
        System.out.println("doubleNum = " + doubleNum);

//      1-3. 2진수 / 8진수 / 16진수
        System.out.println("== -->2진수 / 8진수 / 16진수 ==");
        int binaryNum = 0b1100;
        System.out.println("binaryNum = " + binaryNum);
        int octalNum = 014;
        System.out.println("octalNum = " + octalNum);
        int hexaNum = 0xC;
        System.out.println("hexaNum = " + hexaNum);


        System.out.println("== --> 자료형 숫자 정수 ==");
        System.out.println("Integer 최소값 = " + Integer.MIN_VALUE);
        System.out.println("Integer 최대값 = " + Integer.MAX_VALUE);

        int IntegerNum2 = Integer.MAX_VALUE;
        System.out.println("Integer 최대값 2 = " + IntegerNum2);
        int IntegerNum3 = Integer.MAX_VALUE+1;
        //잘못된 예.. integer 보다 큰 자료형이 필요한 경우는 long을 사용해야 함
        System.out.println("Integer 최대값 3 = " + IntegerNum3);

        long longNum2 = (long)Integer.MAX_VALUE+1;
        System.out.println("long 형변환한 값 = " + longNum2);

        System.out.println("== --> 자료형 숫자 실수 ==");
        float floatNum2 = 1.23f;
        System.out.println("floatNum2 = " + floatNum2);
        System.out.println("float 최소값 = " + Float.MIN_VALUE);
        System.out.println("float 최대값 = " + Float.MAX_VALUE);

        double doubleNum2 = 1.23;
        System.out.println("doubleNum2 = " + doubleNum2);
        System.out.println("double 최소값 = " + Double.MIN_VALUE);
        System.out.println("double 최대값 = " + Double.MAX_VALUE);


//      2. 자료형 - 부울
        System.out.println("== 부울 ==");
        boolean isPass = true;
        System.out.println("isPass = " + isPass);
        boolean isOk = false;
        System.out.println("isOk = " + isOk);

//      3. 자료형 - 문자
        System.out.println("== 문자 ==");
        char keyFirst = 'a';
        System.out.println("keyFirst = " + keyFirst);
        System.out.println("keyFirst 아스키 코드값으로 변환 = " + (int)keyFirst);
        char keyLast = 'z';
        System.out.println("keyLast = " + keyLast);
        System.out.println("keyLast 아스키 코드값으로 변환 = " + (int)keyLast);


//      1. 자료형 - 문자열
        System.out.println("== 문자열 ==");

        String str1 = "Hello! World!";
        System.out.println("str1 = " + str1);

//      1-1. equals

        String str2 = "Hi";
        String str3 = "Hi";
        System.out.println("equals = " + str2.equals(str3));
        System.out.println("equals2 = " + str2 == str3);

        String str4 = new String("Hi"); //명시적으로 객체를 새로 생성
        System.out.println("equals2 비교 = " + str3.equals(str4));
        System.out.println("equals2 비교 2 = " + str3 == str4); //서로 객체의 형태가 다르기 때문에 false

//      1-2. indexOf //몇번째에 있는지 찾기
        System.out.println("str1.indexOf = " + str1.indexOf("!"));
        System.out.println("str1.indexOf 두번째 느낌표 찾기 = " + str1.indexOf("!", str1.indexOf("!")+1));


//      1-3. replace //치환
        String str5 = str1.replace("Hello","Bye");
        System.out.println("str5 replace = " + str5);


//      1-4. substring //부분문자열 뽑아오기
        System.out.println("str5 substring = " + str5.substring(0,3));
        System.out.println("str5 substring2 느낌표까지 뽑아오기 = " + str5.substring(0,str5.indexOf("!")+1));


//      1-5. toUpperCase //대문자로 변환
        System.out.println("str5 toUpperCase = " + str5.toUpperCase());



//      2. 자료형 - StringBuffer //문자열을 자주 추가하거나 변경할 때 사용하는 자료형
//                  String 클래스는 선언할 때마다 매번 새로운 객체가 여러번 생성되기 때문에 메모리에 무리가 가서 속도가 느려짐
//                  따라서 자주 변경이 필요한 경우는 StringBuffer를 이용하는 것이 효율적임


        System.out.println("== StringBuffer ==");

        StringBuffer sb1 = new StringBuffer();
        sb1.append("01234");
        System.out.println("sb1 = " + sb1);
        sb1.append("01234");
        System.out.println("sb1 = " + sb1);


//      2-1. append

//      2-2. insert

//      2-3. substring


//      3. 자료형 - 배열 //많은 수의 데이터를 담을 수 있는 자료형
        System.out.println("== 배열 ==");

        int[] myArray1 = {1,2,3,4,5};
        char[] myArray2 = {'a','b','c','d','e'};
        String[] myArray3 = new String[3];
        myArray3[0] = "Hello";
        myArray3[1] = " ";
        myArray3[2] = "World";

        System.out.println("myArray3 배열 확인 = " + myArray3[0] + myArray3[1] +myArray3[2] );



        //      1. 자료형 - 리스트 //배열과 같이 여러 데이터를 담을 수 있는 자료형, 여러가지 메소드 제공
        System.out.println("== 리스트 ==");
        ArrayList l1 = new ArrayList();

//      1-1. add
        l1.add(1);
        l1.add(2);
        l1.add("Hello");
        l1.add(3);
        l1.add(4);
        l1.add("World!");
        System.out.println("l1 = " + l1);

        l1.add(0,1);
        System.out.println("l1 2 = " + l1);

//      1-2. get
        System.out.println("l1 get = " + l1.get(3));

//      1-3. size
        System.out.println("l1 size = " + l1.size());

//      1-4. remove
        System.out.println("l1 size = " + l1.remove(0)); //0번째를 삭제
        System.out.println("l1 size = " + l1.remove(Integer.valueOf(2))); //리스트의 2 라는 값을 찾아서 삭제
        System.out.println("l1 3 = " + l1);

//      1-5. clear
        l1.clear()
        System.out.println("l1 clear = " + l1);

//      1-6. sort
        ArrayList l2 = new ArrayList();
        l2.add(5);
        l2.add(6);
        l2.add(7);
        System.out.println("l2 = " + l2);

        l2.sort(Comparator.naturalOrder()); //오름
        System.out.println("l2 naturalOrder = " + l2);
        l2.sort(Comparator.reverseOrder()); //내림
        System.out.println("l2 reverseOrder = " + l2);

//      1-7. contains //리스트에 특정 값이 들어있는지 비교하여 확인
        System.out.println("l2 contains = " + l2.contains(3));
        System.out.println("l2 contains = " + l2.contains(5));


//      2. Maps // key 와 value 형태로 데이터를 저장하는 자료형
        System.out.println("== Maps ==");
        HashMap map1 = new HashMap();

//      2-1. put
        map1.put("kiwi",9000);
        map1.put("apple",10000);
        map1.put("mango",12000);
        System.out.println("map1 = " + map1);

//      2-2. get
        System.out.println("map1 get = " +  map1.get("strawberry"));
        System.out.println("map1 get2 = " +  map1.get("kiwi"));

//      2-3. size
        System.out.println("map1 size = " +  map1.size());

//      2-4. remove
        System.out.println("map1 remove = " +  map1.remove("strawberry"));
        System.out.println("map1 remove2 = " +  map1.remove("kiwi"));
        System.out.println("map1 = " + map1);

//      2-5. containsKey
        System.out.println("map1 containsKey = " + map1.containsKey("apple"));
        System.out.println("map1 containsKey2 = " + map1.containsKey("kiwi"));


//      3. Generics //자료형을 명시적으로 지정하여 안정성을 높여주며 형변환을 줄여줌

        System.out.println("== Generics ==");
        ArrayList l3 = new ArrayList();

        l3.add(3);
        l3.add("Hello");
        System.out.println("l3 = " + l3);

        ArrayList<String> l4 = new ArrayList<String>();
        l4.add("Hello");
        System.out.println("l4 = " + l4);

        HashMap map2 = new HashMap();

        map2.put(123,"9000");
        map2.put("kiwi",9000);
        System.out.println("map2 = " + map2);


        HashMap<String, Integer> map3 = new HashMap<>();
        map3.put("grape",34000);
        System.out.println("map2 = " + map3);