자바 시작하기 - 변수와 자료형

지니·2024년 7월 6일
0

자바 기초

목록 보기
8/10
post-thumbnail

자료형

: 변수의 종류, 단위

  • 숫자 (Number)
  • 부울 (Boolean)
  • 문자 (Character)
  • 문자열 (String)

자료형 - 숫자

: 숫자 형태의 자료형

  • 정수, 실수, 2진수, 8진수, 16진수
종류예시
정수int intNum=10;
long longNum=214748;
실수float floatNum=0.1f;
double doubleNum=3.4028234E;
2진수, 8진수, 16진수int numBase2=0b1100;
int numBase8=014;
int numBase16=0xC;

자료형 - 부울

: 참과 거짓을 나타내는 자료형

boolean isPass = true;
boolean isOk = true;

자료형 - 문자

: 한 대의 문자 표현에 사용하는 자료형

char keyFirst = 'a';
char keyLast = 'z';


위의 내용을 토대로 코드를 짜보았습니다.

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {

        //정수
        System.out.println("== 숫자 ==");

        int intNum = 10;
        System.out.println("intNum = " + intNum);

        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);

        //실수
        float floatNum = 3.14f;
        double doubleNum = 3.14;
        System.out.println("floatNum = " + floatNum);
        System.out.println("doubleNum = " + doubleNum);

        System.out.println(Float.MAX_VALUE);
        System.out.println(Double.MAX_VALUE);

        //2진수, 8진수, 16진수
        int numBase2 = 0b1100;
        System.out.println("numBase2 = " + numBase2);
        int numBase8 = 014;
        System.out.println("numBase8 = " + numBase8);
        int numBase16 = 0xC;
        System.out.println("numBase16 = " + numBase16); //모두 심진수로 변환되어 출력된다.

        // 그대로 출력
        System.out.println("Ob"+Integer.toBinaryString(numBase2));
        System.out.println("0"+Integer.toOctalString(numBase8));
        System.out.println("0x"+Integer.toHexString(numBase16));

        //부울
        System.out.println("==부울==");
        boolean isPass = true;
        System.out.println("isPass = " + isPass);
        boolean isOk = true;
        System.out.println("isOk = " + isOk);

        //문자
        System.out.println("==문자==");
        char keyFirst = 'a';
        System.out.println("keyFirst = " + keyFirst);
        char keyLast = 'z';
        System.out.println("keyLast = " + keyLast);

        //아스키코드값 출력
        System.out.println((int)keyFirst);
        System.out.println((int)keyLast);


    }
}

출력값은 다음과 같습니다.

== 숫자 ==
intNum = 10
-2147483648
2147483647
floatNum = 3.14
doubleNum = 3.14
3.4028235E38
1.7976931348623157E308
numBase2 = 12
numBase8 = 12
numBase16 = 12
Ob1100
014
0xc
==부울==
isPass = true
isOk = true
==문자==
keyFirst = a
keyLast = z
97
122

자료형 - 문자열

: 문자들로 이루어진 집합

String s1 = "hello world";
String s2 = "01234";

문자열 관련 메서드

  • equals
  • indexOf
  • replace
  • substring
  • toUpperCase

자료형 - StringBuffer

: 문자열을 자주 추가하거나 변경할 때 사용하는 자료형

StringBuffer sb1 = new StringBuffer("Hello world!");

StringBuffer 관련 메서드

  • append
  • insert
  • substring

자료형 - 배열(Array)

: 많은 수의 데이터를 담을 수 있는 자료형

int[] myArray1 = {1,2,3,4,5};
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};

위의 내용을 토대로 코드를 짜보았습니다.

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

        //문자열
        System.out.println("==문자열==");
        String s1 = "Hello world";
        String s2 = "01234";
        System.out.println("s1 = "+s1);
        System.out.println("s2 = "+s2);

        String s3 = "hi";
        String s4 = "hi";
        System.out.println(s3.equals(s4));
        System.out.println(s3==s4);
        String s5 = new String("hi");
        System.out.println(s3.equals(s5));
        System.out.println(s3==s5);


        //indexOf
        //indexOf 는 특정 문자열을 찾아준다.
        // !는 5번째 인덱스에 있다.
        String s6 = "Hello! World!";
        System.out.println(s6.indexOf("!"));

        //뒤에 있는 !를 찾고 싶을 때,
        System.out.println(s6.indexOf("!", s6.indexOf("!") + 1));

        //replace
        //기존의 문자열 사용
        String s7 = s6.replace("Hello", "Bye");
        System.out.println("s7 = "+s7);

        //substring
        //기존의 문자열에서 부분 문자열을 뽑아준다.
        //(시작, 끝);
        System.out.println(s7.substring(0, 3));
        System.out.println(s7.substring(0, s7.indexOf("!") + 1));


        //toUpperCase
        System.out.println(s7.toUpperCase());


        //StringBuffer : 문자열을 추가하거나 변경
        System.out.println("== StringBuffer ==");
        StringBuffer sb1 = new StringBuffer();
        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);
        a += b;
        System.out.println(a == bak);

        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));


        //배열
        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]);



    }
}

출력값은 다음과 같습니다.

==문자열==
s1 = Hello world
s2 = 01234
true
true
true
false
5
12
s7 = Bye! World!
Bye
Bye!
BYE! WORLD!
== StringBuffer ==
sb1 = 01234
sb1 = 0123456789
true
false
sb2 = My name is JAVA
My
== 배열 ==
1
2
3
4
5
c
Hello World!

자료형 - 리스트 (List)

: 배열과 같이 여러 데이터를 담을 수 있는 자료형

  • 추가로 여러가지 메서드를 제공
ArrayList l1 = new ArrayList();
l1.add(1);

리스트 메서드

  • add
  • get
  • size
  • remove
  • clear
  • sort
  • contains

자료형 -맵

: key, value 형태로 데이터를 저장하는 자료형

HashMap<String, String> map = new HashMap<String,String>();
map.put("product", "kiwi);
map.put("price","9000");

맵 메서드

  • put
  • get
  • size
  • remove
  • containsKey

자료형 - 제네릭스

: 자료형을 명시적으로 지정

  • 제한적일 수 있지만 안정성을 높여주고 형변환을 줄여줌
ArrayList<String> l1 = new ArrayList<String>();
HashMap<String,Integer> map1 = new HashMap<String, integer>();

해당 내용을 코드로 짜보았습니다.

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

public class Main3 {
    public static void main(String[] args) {
        //리스트
        System.out.println("== 리스트 ==");
        ArrayList l1 = new ArrayList();

        //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);

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

        //size
        System.out.println(l1.size());


        //remove
        //인덱스 값을 찾아, 삭제
        l1.remove(1);
        System.out.println("l1 = " + l1);

        //값을 찾아 삭제
        l1.remove(Integer.valueOf(1));
        System.out.println("l1 = " + l1);

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

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


        //sort
        ArrayList l2 = new ArrayList();
        l2.add(5);
        l2.add(3);
        l2.add(4);
        System.out.println("l2 = " + l2);

        //naturalOrder() 오름차순 정렬
        l2.sort(Comparator.naturalOrder());
        System.out.println("l2 = " + l2);

        //reverseOrder() 내림차순 정렬
        l2.sort(Comparator.reverseOrder());
        System.out.println("l2 = " + l2);


        // contains : 데이터가 리스트에 있는지 확인
        System.out.println(l2.contains(1));
        System.out.println(l2.contains(3));


        // Maps
        System.out.println("== Maps ==");
        HashMap map = new HashMap();

        //put : 순서대로 나오지 않는다 !
        map.put("kiwi", 9000);
        map.put("apple", 10000);
        map.put("mango", 12000);
        System.out.println("map = " + map);


        //get : value 값을 출력한다.
        System.out.println(map.get("mandarin"));
        System.out.println(map.get("apple"));

        //size
        System.out.println(map.size());

        //remove : 값을 출력한 다음, 삭제됨
        System.out.println(map.remove("hi"));
        System.out.println(map.remove("mango"));
        System.out.println("map = " + map);


        //containsKey: 키값이 맵에 있는지 확인
        System.out.println(map.containsKey("mango"));
        System.out.println(map.containsKey("kiwi"));


        // 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);

        HashMap<String, Integer> map3 = new HashMap<String, Integer>();

        //map3.put(123, "id");
        map3.put("apple", 10000);
        System.out.println("map3 = " + map3);
    }
}

출력 결과입니다.

== 리스트 ==
l1 = [2, hello, 3, 4, world]
l1 = [1, 2, hello, 3, 4, world]
1
2
6
l1 = [1, hello, 3, 4, world]
l1 = [hello, 3, 4, world]
l1 = [3, 4, world]
l1 = []
l2 = [5, 3, 4]
l2 = [3, 4, 5]
l2 = [5, 4, 3]
false
true
== Maps ==
map = {apple=10000, kiwi=9000, mango=12000}
null
10000
3
null
12000
map = {apple=10000, kiwi=9000}
false
true
== Generics ==
l3 = [1, hello]
map2 = {apple=10000, 123=id}
map3 = {apple=10000}
profile
IT학과 전과생

0개의 댓글