본문 바로가기
개발자 꿈나무의 하루/01_Boot Camp

(네이버클라우드 부트캠프) 6일차 - Java프로그래밍 기초(패키지, 자료형)

by kk_naks 2024. 5. 31.

1. 패키지

  1.1 패키지란?

     - 클래스를 분류하는 문법 : 프로그램 역할에 따라 분류 한다. 

실습1. 패키지에 소속된 클래스를 들기
- 패키지명 : study.lang
- 클래스명 : Test
1. 패키지 폴더 만들기  :  $mkdir -p study2/lang2 실행 후 해당 폴더에 Test.java 생성
2. 컴파일 하기  : javac -d app/build/classes/java/main app/src/main/java/study2/lang2/Test.java
(-d main까지만 컴파일 해도 패키지 폴더는 자동으로 생성된다.)
3. 실행 하기 :  java -cp app/build/classes/java/main study2.lang2.Test  
()

2. 주석

  2.1 주석이란 ?

     -코드에 대한 이해를 돕기 위해 붙이는 설명이다. 즉 컴파일 할 때 무시된다.

  2.2 여러줄 주석

     - C언어에서 부터 시작 된 주석으로 /* ~ */으로 사용한다.

/*
## 여러 줄 주석(traditional comment)
- 주석의 끝 표시를 만날 때까지 주석으로 간주된다.
- 여러 줄의 설명을 붙일 때 유용한다.
- C, C++ 프로그래밍 언어에서 사용하는 주석 문법과 같다.
*/

 2.3 한줄 주석

     - C++언어에서 부터 시작 된 주석으로 문장의 젤 앞에 // 붙여 사용한다.

//## 한 줄 주석(end-of-line comment)
//- 줄이 끝날 때 까지 주석으로 간주한다.
//- C++ 프로그래밍에서 사용하는 주석 문법과 같다.

 

 2.4 javadoc 주석

     - 자바문서를 만들기위해 /** ~ */ 붙여 사용한다.

/**
 * 클래스에 대한 설명
 * @author naknak
 *
 */
public class Exam0200 {
  /**
   * 변수에 대한 설명
   * 변수 선언 앞에 설명을 붙여 놓으면 나중에 HTML 문서를 만들 때 추출할 수 있다.
   */
  public static String message = "Hello, world!";

  /**
   * 메서드에 대한 설명
   * 메서드에 대한 설명을 여기에 붙여 놓으면 나중에 HTML 문서를 만들 때 추출할 수 있다.
   * @param args 애플리테이션 아규먼트 값을 보관한 배열
   */
     public static void main(String[] args) {
    System.out.println(message);
  }
}

 

     - 터미널에서 다음과 같은 명령어로 자바docs 를 만들수 있다.

javadoc
 -encoding [소스 파일의 문자집합]
 -charset [생성될 HTML 파일의 문자집합]
 -d [생성된 파일을 놓아둘 디렉토리]
 -sourcepath [자바 소스 경로] [자바 패키지]

  2.4 애노테이션(annotation) 주석

     - 클래스, 변수. 메서드 선언에 붙이는 주석이다.

     - 컴파일러나 JVM에서 사용할 주석이다.

## 애노테이션 문법
- 작성 방법
 @애노테이션명(프로퍼티명=값,프로퍼티명=값,...)
 예1) @Override
 예2) @SuppressWarnings(value="deprecation")
 예3) @SuppressWarnings(value={"unchecked", "deprecation"})//
public class Exam0300 {
  public static void main(String[] args) {
    System.out.println("애노테이션");
  }

  //## @Override
  //- 수퍼 클래스에서 상속 받은 멤버를 재정의 한다는 것을 컴파일러에게 알린다.
  //- 컴파일러는 오버라이딩 규칙을 준수하는지 검사한다.
  //- 만약 오버라이딩 규칙을 따르지 않는다면 컴파일 오류를 발생시킬 것이다.
  //
  @Override
  public String toString() {
    return "Exam12";
  }
}

 

3.  Literal

  3.1 Literal이란?

     - 값을 표현하는 방식

자료형 크기 예시 비고
정수 byte 1byte(8bit) 127 -128~127
short 2byte(16bit) 52 -32,768~32,767
int 4byte(32bit) 32 -21억~21억
long 8byte(64bit) 100l,100L ~922경~922경
부동소수 float 4byte(32bit) 3.14f, 3.14F  
double 8byte(64bit) 3.14  
논리값 boolen 4byte(32bit) true/false 배열일 경우 1byte
문자 char 2byte(16bit) 'A'  
문자열 String 참조변수의 크기 "ABC"  
주소없음 null 참조변수의 크기 null  

 

  3.2 정수형 

public class Exam0210 {
  public static void main(String[] args) {
    //10진수 리터럴 
    //- 코드에서 일반적으로 정수 값을 표현할 때 사용한다.
    System.out.println(100);
    
    //8진수 리터럴
    //- 코드를 작성할 때 잘 사용하지 않는다.
    //- 0으로 시작해야 한다.
    System.out.println(0144);
    
    //2진수 리터럴
    //- 메모리의 상태를 직설적으로 보여주고 싶을 때 사용한다.
    //- 0b 또는 0B로 시작한다.
    System.out.println(0b1100100);
    System.out.println(0B1100100);
    
    //- 숫자 앞에 0이 있어도 된다.
    System.out.println(0b01100100);
    System.out.println(0B01100100);
    
    //16진수 리터럴
    //- 2진수를 간결하게 표현하기 위해 사용한다.
    //- 0x 또는 0X 로 시작한다.
    System.out.println(0x64);
    System.out.println(0X64);
    
    //- 숫자 앞에 0이 있어도 된다.
    System.out.println(0x064);
    System.out.println(0X064);
  }
}

 

     - 자리수 표시 하기 : "_"을 사용하여 자릿수를 표기한다.

     - 숫자 맨 앞 또는 맨 뒤에 삽입 할 수는 없다.

public class Exam0220 {
  public static void main(String[] args) {
    
    //## 10진수에 _ 문자를 삽입하기
    System.out.println(12_783_406);
    
    //## 8진수에 _ 문자를 삽입하기
    System.out.println(07_7);

    //## 2진수에 _ 문자를 삽입하기
    System.out.println(0b1_1_0_0_1_0_0);

    //## 16진수에 _ 문자를 삽입하기
    System.out.println(0xff_aa);
  }
}

  3.3 부동소수형 

     - e기호를 사용하여 소수점의 위치를 조정한다.

public class Exam0310 {
  public static void main(String[] args) {
    
    //## 10진수 표기법
    System.out.println(3.14);
    System.out.println(0.0314e2); // 0.0314 * 10의2승 = 3.14
    System.out.println(0.314e1); // 0.314 * 10의1승 = 3.14
    System.out.println(31.4e-1); // 31.4 * 10의-1승 = 3.14
    System.out.println(314e-2); // 314 * 10의-2승 = 3.14
  }
}

 

  3.4 논리형 

     - 논리값을 저장할 때 사용한다. 

     - 자바에서는 논리형을 정의하지 않았기 때문에 int형 타입으로 저장된다.

     - 단 논리형의 배열에서는 1바이트를 사용한다. 

public class Exam0500 {
  public static void main(String[] args) {
    //참을 표현할 때는 true, 거짓을 표현할 때는 'false'이다.
    //자바는 대소문자를 구분하기 때문에 반드시 소문자로 작성해야 한다.
    System.out.println(true);
    System.out.println(false);
    }
}

 

  3.5 문자형 

     - 문자를 메모리에 저장하는 방법 

public class Exam0410 {
  public static void main(String[] args) {
    // 자바는 문자를 메모리에 저장할 때 Unicode 규칙에 따라
    // 2바이트 코드로 저장한다.
    // => 'A' : 0x0041
    // => 'B' : 0x0042
    // => '1' : 0x0031
    // => '가': 0xac00
    //
    // println()
    // - 출력 값으로 문자 코드가 주어지면 해당 코드의 문자를
    //   폰트 파일에서 찾아 출력한다.
    // - 만약 폰트 파일에 해당 코드의 문자가 없으면 출력하지 못한다.
    //
    //작은 따옴표를 사용하여 문자를 표현한다.
    System.out.println('A');
    System.out.println('가');

    // 직접 문자를 적는 대신에 그 문자에 부여된 코드 값을 지정할 수 있다.
    // 문자에 대해 부여된 값을 '문자 코드(character code)'라 부른다.
    // 코드 값은 사용하는 문자 집합에 따라 다르다.
    // 자바는 '유니코드(UTF-16BE; UCS2)' 라는 문자집합을 사용한다.
    // \ u 뒤에 문자에 부여된 코드 값을 16진수로 적는다.
    // u는 소문자로 적어야 한다.
    System.out.println('\u0041');  // A
    System.out.println('\uac00');  // 가
    System.out.println('\uAC00');  // 가 (16진수는 대소문자를 구분하지 않는다)

    // \ 바로 뒤에 8진수로 적을 수 있다.
    // 단, 0 ~ 377 범위의 8진수만 가능하다.
    System.out.println('\101'); // A
    System.out.println('\122'); // R
    System.out.println('\377'); // ÿ
    //System.out.println('\378'); // 컴파일 오류!

    // 유니코드 값을 직접 적는 경우는
    // 보통 키보드로 문자를 직접 입력할 수 없을 때이다.
    System.out.println('\u4eba'); // 사람을 뜻하는 '인(人)'이라는 한자의 문자 코드
    System.out.println('\u00a9'); // copyright를 뜻하는 '©' 문자 코드
    System.out.println('\u03c0'); // 수학의 파이 기호 'π'
    System.out.println('\u03a3'); // 수학의 시그마 기호 'Σ'
  }