1. 변수의 타입

- 변수는 크게 기본형과 참조형이 있다.

  • 기본형 : boolean, char, byte, short, int, long, float, double로 계산을 위한 실제 값을 저장하는 형식
  • 참조형 : 어떤 값이 저장되어 있는 메모리 주소를 저장. 기본형을 제외한 모든 형식

- 참조형 변수를 선언할때는 변수의 타입으로 클래스의 이름을 사용한다.

Date today = new Date(); // Date객체를 생성하고 today에 그 주소를 저장한다.

 

 

 

2. 기본형

- 기본형은 크게 4가지로 구분할 수 있다.

  • 논리형
    • boolean : true, false로 논리식 계산에 사용
  • 문자형
    • char : 문자를 저장하는데 사용
  • 정수형
    • byte, short, int, long : 정수를 저장하는데 사용. 주로 int를 사용하고 byte는 2진수, short는 C언어와 호환을 위해 사용한다.
  • 실수형
    • float, double : 실수를 저장하는데 사용. 주로 double이 사용된다.

- boolean은 다른 기본형과 변환과 연산이 불가능 하다.

- 다른 기본형은 서로 변환과 연산이 가능하다.

- 정수형이나 실수형은 사용할 값의 범위에 차이가 있는 것이므로 확인후 사용하자.

- 주로 boolean, char, int, double을 사용한다고 생각하면 된다.

 

 

 

3. 상수

- 상수는 일반 변수와 같은 방식으로 선언할 수 있지만, 그 값을 변경할 수 없다.

- 상수를 선언하는 방법은 변수 타입 앞에 final을 붙이면 된다.

- 상수는 반드시 선언과 동시에 초기화해야하고, 그 이후에는 값 변경이 불가능 하다.

class ConstantEx1 {
    public static void main(String[] args) {
        // 아래의 주석을 해제하고 실행하면 선언만 해서 에러가 발생하는 것을 볼 수 있다.
        // final int MY_CONSTANT;
        final int MY_CONSTANT = 100;
        System.out.println(MY_CONSTANT);
        
        // 아래의 주석을 해제하고 실행하면 MY_CONSTANT를 변경할 수 없다는 에러가 발생한다.
        // MY_CONSTANT = 200;
    }
}

 

 

 

4. 리터럴

- 변수가 가지고 있는 값 자체를 말하는 것이 리터럴이다.

- 예를 들면 final MY_NUM = 100; 의 리터럴은 100이다.

- 리터럴에는 접미사를 붙여서 구분한다.

class Literal {
    public static void main(String[] args) {
        int myInt = 100;
        long myLong = 100L;
        // _을 구분자로 사용할 수 있다. 결론적으로 100000000이 할당된다.
        long myLong2 = 100_000_000L;

        float myFloat = 1.23f;
        double myDouble = 1.23d;
        // d는 생략할 수 있다.
        double myDouble2 = 1.23;

        System.out.println(myLong2);
    }
}

 

1. 변수란?

- 단 하나의 값을 저장할 수 있는 메모리 공간

- 변수타입과 변수 이름을 작성하여 변수를 선언한다.

- 선언한 변수에 값을 넣어서 초기화 한다.

// 변수 선언과 초기화
int var1;
int var1 = 20;

// 타입이 같은 변수는 한 줄에 선언과 초기화를 할 수 있다
int var2, var3;
int var2 = 30, var3 = 35;

// 선언과 초기화를 동시에 할 수도 있다.
int var4 = 100;
int var5 = 300;

 

 

 

2. 변수 선언과 초기화

- 변수에 값을 저장하고 읽어오는 예제는 아래와 같다.

- 변수의 값이 int이므로 사칙연산의 결과가 변수가 할당된다.

class VarEx1 {
    public static void main(String[] args) {
        int year = 2022;
        int month = 8;

        System.out.println(year);
        System.out.println(month);
        
        year = year + 1000;
        month = year - 2000;
       
        System.out.println(year);
        System.out.println(month);
    }
}

 

 

 

3. 변수의 교환

- 이미 값이 할당된 변수에 다른 변수를 할당하면 다른 변수의 값이 할당된다.

class VarEx2 {
    public static void main(String[] args) {
        int var1 = 10;
        int var2 = 20;
        var2 = var1;
		
        // ""에 문자열을 적어서 출력할 수 있고, +를 사용해 변수와 합쳐서 결합된 문자열을 만들 수 있다.
        System.out.println("var1 :"+var1+", var2 :"+var2);

        var1 = 10;
        var2 = 20;
        int tmp = 30;
        var2 = tmp;

        System.out.println("var1 : "+var1+", var2 :"+var2);
    }
}

 

 

4. 변수의 명명 규칙

- 대소문자가 구분되어야하고 길이에 제한이 없다.

- 예약어는 사용해서는 안된다(if 등등)

- 숫자로 시작할 수 없다.

- 특수문자는 _와 $만 허용한다.

 

 

 

5. 그 외에 지키면 좋을 규칙

- 클래스의 이름의 첫 글자는 항상 대문자로 한다.

- 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.

- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다(lastIndex, StringBuffer)

- 상수의 이름은 모두 대문자로 한다, 여러 단어로 이루어진 경우 _로 구분한다(PI, MAX_NUM)

 

1. 시작은 'Hello, World.'

- Hello, World가 출력되는 프로그램을 작성해본다.

- Hello.java를 작성 -> javac.exe가 컴파일 -> Hello.class 생성 -> java.exe가 실행 -> 'Hello, World.'가 출력되는 방식으로 프로그램이 만들어진다.

 

 

 

2. 클래스 작성

- 자바에서 모든 코드는 클래스 안에 작성되어야한다.

- class 다음에 클래스 이름을 적고 {} 안에 코드를 작성한다.

- 주석은 한 줄에는 //, 여러 줄에는 /* 주석내용 */을 사용한다.

- 자바에서는 public static void main (String[] args)을 항상 선언해야한다.

- 아래와 같이 간단한 프로그램으로 위 내용을 확인해보자.

class Hello {
    public static void main(String[] args) {
        // 이건 한 줄 주석
    /* 이건
       여러줄
       주석 */
        System.out.println("Hello, world.");
    }
}

 

 

 

3. 클래스 파일 작성 시 주의점

- public 클래스와 파일 이름이 동일해야 한다.

- public 클래스가 없는 경우 어떤 클래스로도 이름을 정할 수 있다.

- public 2개가 한 파일에 존재할 수 없다.

- public 클래스의 이름은 대소문자도 구분해야한다.

1. 파이썬을 하고 있는데 자바를 시작하는 이유?

- 서점에서 우연히 Java의 정석이라는 책을 보게 되었다.

- 처음 내용부터 찬찬히 보니 프로그래밍에 대한 기본적인 내용부터 다시 살펴볼 수 있을 것 같았다.

- 이걸 파이썬으로 한다면 아마 알고 있는 거라고 쉽게쉽게 넘어갈 것 같아서 다른 언어를 골랐다.

- 다른 언어를 경험해보기도 하면서 백엔드에서 여전히 많이 쓰이는 자바를 알아두면 좋을 것 같았다.

 

 

 

2. 사용할 자료와 공부 방식은?

- Java의 정석 3rd Edition을 보기로 했다.

- 최대한 하루에 조금씩이라도 내용을 블로그에 내용을 남기는 습관을 가지려고 한다.

- 이미 다른 언어를 어느 정도 알고 있다는 가정하에 아주 간단히 내용만 기록한다.

- 아무튼 시작!

+ Recent posts