컴퓨터는 잘못이 없다..

[JAVA]변수와 자료형 본문

공부/JAVA

[JAVA]변수와 자료형

도토리까꿍v 2024. 4. 7. 03:28
Contents 접기

#핵심요약

  • 변수는 이름짓는 규칙이 존재한다.
    • 문자, 숫자, _, $ 가능
    • 숫자로 시작 x, 공백사용 x, 예약어사용 x
  • 변수의 특징
    • 대소문자 구분
  • 변수는 이름짓는 규칙이 존재한다.
    • 변수, 함수는 카멜표기법, class명은 파스칼표기법으로 표기한다.    
  • 자료형 종류
    • 정수, 실수, 부울, 문자, 문자열
    • StringBuffer, List, Map 등이 있다.
  • StringBuffer은 문자를 자주 변경할 때 사용한다.
    • 변경이 자주 일어나도 객체는 딱 한번만 생성된다.
  • equals와 ==의 차이점?
    • equals는 값을 비교 ==는 객체를 비교한다.

#소스코드

변수와 자료형_1

// Java 프로그래밍 - 변수와 자료형_1

public class Main {
    public static void main(String[] args) {

//      1. 변수 사용하기
        System.out.println("== 변수 사용하기 ==");
        int age = 10;
        String country = "Korea";

        System.out.println("age = " + age);
        System.out.println("country = " + country);
        System.out.println();

//      2. 변수 이름 규칙
        System.out.println("== 변수 이름 규칙 ==");
//      2-1. 문자, 숫자, _(underscore), $ 사용 가능
        int apple = 2000;
        int apple3 = 2000;
        int _apple = 2000;
        int $apple = 2000;

        System.out.println("apple = " + apple);
        System.out.println("apple3 = " + apple3);
        System.out.println("_apple = " + _apple);
        System.out.println("$apple = " + $apple);
        System.out.println();


//      2-2. 숫자로 시작 X
//        int 3apple = 2000;


//      2-3. 대소문자 구분
        int apple1 = 2000;
        int Apple1 = 3000;

        System.out.println("apple1 = " + apple1);
        System.out.println("Apple1 = " + Apple1);
        System.out.println();

//      2-4. 공백 사용 X
//        int one apple = 2000;
        int one_apple = 2000;
        int oneApple = 2000;


//      2-5. 예약어 사용 X
//      예약어 예시: true, false, if, switch, for, continue, break, ...
//        int true = 1;
//        int false = 0;
//        int if = 1;
//        int continue = 10;


//      참고) 한글 사용 가능
        int 나이 = 20;
        System.out.println("나이 = " + 나이);

        
//      3. 표기법
        System.out.println("== 표기법 ==");
//      3-1. 카멜 표기법 (camelCase)
//      변수, 함수
        int myAge = 10;
        int oneApplePrice = 1000;

        
//      3-2. 파스칼 표기법 (PascalCase)
//      클래스 ex. public class Main <- 클래스 이름 Main
        int MyAge = 10;
        int OneApplePrice = 1000;

        
//      참고) 스네이크 표기법 (snake_case)
//      사용 X
        int my_age = 10;
        int one_apple_price = 1000;

    }
}

 

변수와 자료형_2

// Java 프로그래밍 - 변수와 자료형_2

public class Main {
    public static void main(String[] args) {

//      1. 자료형 - 숫자
        System.out.println("== 숫자 ==");
//      1-1. 정수
        int intNum = 10;
        System.out.println("intNum = " + intNum);

        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
        int intNum2 = Integer.MAX_VALUE;
        int intNum3 = Integer.MAX_VALUE + 1; //잘못된 값이 들어가게 된다.
        System.out.println("intNum3 = " + intNum3);
        long longNum = (long)Integer.MAX_VALUE + 1; //Integer타입에 들어가는 값보다 더 많은 값을 넣을때는 long타입에 넣어준다.
        System.out.println("longNum = " + longNum);

//      1-2. 실수
        float floatNum = 1.123f;
        System.out.println(Float.MAX_VALUE);
        double doubleNum = 3.4028;
        System.out.println(Double.MAX_VALUE);

//      1-3. 2진수 / 8진수 / 16진수
        int numBase2 = 0b1100;
        int numBase8 = 014;
        int numBase16 = 0xC;
        System.out.println(numBase2);
        System.out.println(numBase8);
        System.out.println(numBase16);

        System.out.println("0b" + Integer.toBinaryString(numBase2));
        System.out.println("0" + Integer.toOctalString(numBase8));
        System.out.println("0x" + Integer.toHexString(numBase16));

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

        System.out.println(isPass);
        System.out.println(isOk);


//      3. 자료형 - 문자
        System.out.println("== 문자 ==");
        char keyFirst = 'a';
        char keyLast = 'z';

        System.out.println(keyFirst);

        //int형으로 변환하면 숫자로 출력된다.
        //이는 각 문자들이 아스키코드로 매핑되어있는 것을 의미한다.
        System.out.println((int)keyFirst);
        System.out.println((int)keyLast);

    }
}

 

변수와 자료형_3

// Java 프로그래밍 - 변수와 자료형_3

public class Main {
    public static void main(String[] args) {

//      1. 자료형 - 문자열
        System.out.println("== 문자열 ==");
        String s1 = "Hello World!";
        String s2 = "01234";
        System.out.println("s1 = " + s1);
        System.out.println("s2 = " + s2);

//      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 -> 객체를 비교

//      1-2. indexOf : 특장 문자열의 위치를 알려주는 메소드 (0부터 시작)
        String s6 = "Hello! World!";
        System.out.println(s6.indexOf("!")); //5
        System.out.println(s6.indexOf("!", s6.indexOf("!") + 1)); //12 두번째 느낌표의 위치를 찾아주는 방법

//      1-3. replace
        String s7 = s6.replace("Hello", "Bye");
        System.out.println("s7 = " + s7);

//      1-4. substring
        System.out.println(s7.substring(0, 3)); //Bye
        System.out.println(s7.substring(0, s7.indexOf("!") + 1)); //Bye!

//      1-5. toUpperCase
        System.out.println(s7.toUpperCase()); //BYE! WORLD!


//      2. 자료형 - StringBuffer
        System.out.println("== StringBuffer ==");
        StringBuffer sb1 = new StringBuffer(); //많이 변경해도 sb1 (객체) 이 새로 생겨나지 않는다.
        sb1.append("01234");
        System.out.println("sb1 = " + sb1);
        sb1.append("56789");
        System.out.println("sb1 = " + sb1);

        String a = "01234";
        String b = "56789";
        String bak = a;
        System.out.println(a == bak); //true 1. a에 변경이 없었을 땐 같은 객체였다가
        a += b; //2. 변경할 때마다 객체를 새로 생성한다. 즉, a객체를 새로 생성함
        System.out.println(a == bak); //false 3. 그래서 a와 bak은 다른 객체라고 나온다.

        //즉, append로 문자열을 붙이나, +=으로 붙이나 결과는 같지만
        //StringBuffer을 통해 append로 문자열을 붙이면 객체가 새로 생겨나지 않고
        //+=으로 문자열을 붙이면 붙일 때마다 객체가 새로 생겨난다.


//        StringBuffer sb2 = new StringBuffer("name is");
//        sb2.insert(0, "My ");
//        sb2.insert(sb2.length(), " JAVA");
//        System.out.println("sb2 = " + sb2);
//        System.out.println(sb2.substring(0, 2));


//      3. 자료형 - 배열
        System.out.println("== 배열 ==");
        int[] myArray1 = {1, 2, 3, 4, 5};
        System.out.println(myArray1[0]);
        System.out.println(myArray1[1]);
        System.out.println(myArray1[2]);
        System.out.println(myArray1[3]);
        System.out.println(myArray1[4]);

        char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};
        System.out.println(myArray2[2]);

        String[] myArray3 = new String[3];
        myArray3[0] = "Hello";
        myArray3[1] = " ";
        myArray3[2] = "World!";
        System.out.println(myArray3[0] + myArray3[1] + myArray3[2]);

    }
}

 

1-1. equals 에 대한 부가설명 

s3, s4는 같은 "hi"를 가리키고 있음 / s5는 같은 "hi" 인데도 다른 "hi"를 가리키고 있음

String 타입을 어떻게 생성하느냐에 따라 차이가 있다.  equals는 값을 비교, ==는 객체를 비교한다. 

 

변수와 자료형_4

// Java 프로그래밍 - 변수와 자료형_4

import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {

//      1. 자료형 - 리스트
        System.out.println("== 리스트 ==");
        ArrayList l1 = new ArrayList(); //import 해야함

//      1-1. add
        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 = " + l1);

//      1-2. get
        System.out.println(l1.get(0));
        System.out.println(l1.get(1));

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

//      1-4. remove
        l1.remove(1); //index를 넣어줘야 함
        System.out.println("l1 = " + l1);

        l1.remove(Integer.valueOf(1)); //해당 값을 지울 때 사용
        System.out.println("l1 = " + l1);

        l1.remove("hello");
        System.out.println("l1 = " + l1);

//      1-5. clear : list를 비워줌
        l1.clear();
        System.out.println("l1 = " + l1);

//      1-6. sort
        ArrayList l2 = new ArrayList();
        l2.add(5);
        l2.add(3);
        l2.add(4);
        System.out.println("l2 = " + l2); //l2 = [5, 3, 4]

        l2.sort(Comparator.naturalOrder()); //오름차순 정렬
        System.out.println("l2 = " + l2); //l2 = [3, 4, 5]

        l2.sort(Comparator.reverseOrder()); //내림차순 정렬
        System.out.println("l2 = " + l2); //l2 = [5, 4, 3]

//      1-7. contains
        System.out.println(l2.contains(1)); //해당 데이터가 있는 지 확인
        System.out.println(l2.contains(3));


//      2. Maps : key와 value
        System.out.println("== Maps ==");
        HashMap map = new HashMap();

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

//      2-2. get
        System.out.println(map.get("mandarin"));
        System.out.println(map.get("apple"));

//      2-3. size
        System.out.println(map.size());

//      2-4. remove
        System.out.println(map.remove("hi")); //없는 걸 지우고 출력시키면 null 츌력
        System.out.println(map.remove("mango")); //있는 걸 지우고 출력시키면 키에 매핑된 value값 출력
        System.out.println("map = " + map);

//      2-5. containsKey : 해당 키가 있는지 없는 지 검사
        System.out.println(map.containsKey("mango"));
        System.out.println(map.containsKey("kiwi"));


//      3. Generics : 지정된 타입의 데이터만 넣을 수 있음
        System.out.println("== Generics ==");
        ArrayList l3 = new ArrayList();
        l3.add(1);
        l3.add("hello");
        System.out.println("l3 = " + l3);

        ArrayList<String> l4 = new ArrayList<String>();
//        l4.add(1);
        l4.add("hello");

        HashMap map2 = new HashMap();
        map2.put(123, "id");
        map2.put("apple", 10000);
        System.out.println("map2 = " + map2); //map2 = {apple=10000, 123=id}

        HashMap<String, Integer> map3 = new HashMap<String, Integer>();
//        map3.put(123, "id");
        map3.put("apple", 10000);
        System.out.println("map3 = " + map3); //map3 = {apple=10000}

    }

}

 

Comments