[ JAVA의 데이터 타입의 종류에 대해서 알아보기 ]


1. 기본 자료형 (Primitive Data Type)


 - 논리형 : boolean ( true / false) 기본 값은 false.


 - 정수형

 ① byte : 1byte (-128 ~ 127) 배열이나 데이터 전송에 주로 사용.

 ② char : 2byte (0 ~ 65535) ('A') 문자 한개를 저장하는 데이터 형.

 ③ short : 2byte (-32768 ~ 32767) 다른 언어의 int 자료형과의 호환성을 위해 주로 사용.

 ④ int : 4byte (-2147483648 ~ 2147483647) 정수 값의 기본 자료형. 부호의 기본 값은 양수(+).

 ⑤ long : 8byte (-922경 ~ 922경) int자료형보다 큰 데이터를 저장할 때 사용. 초기화 할 때는 소문자 l이나 대문자 L을 붙여야 함. [long longVar = 111111L;]


 - 실수형

 ① float : 4byte 소수점을 표현할 때 사용. [float floatVar = 1.235f;] 대문자도 사용되어짐.

 ② double : 8byte float보다 큰 데이터를 저장할 때 사용.



2. 참조 자료형


 - 참조 자료형이란 클래스 형태의 데이터 타입을 말하는 것으로써 참조 자료형은 일반적으로 new또는 생성자로 값을 초기화하게 되어집니다.


 - String또한 참조 자료형에 포함되어지지만 특별히 new를 선언하지 않아도 되는 특별한 클래스 자료형입니다. 또한 참조자료형은 +처럼 부호를 붙일 수 없지만 String클래스에는 특별히 부호가 가능합니다.


 - 참조 자료형은 앞서 포스팅 된 Call by Value와 Call by Reference내용에서 보여지는 것처럼 참조 자료형은 참조되는 주소값을 전달하게 되어지는 특징이 있습니다.

'Development > JAVA' 카테고리의 다른 글

[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 배열  (0) 2016.08.24
[JAVA] Call by Reference, Call by Value  (0) 2016.08.18
[JAVA] 간단한 개념 정리 [JVM, GC]  (0) 2016.08.18

[ Call by Value와 Call by Reference를 메소드 매개변수로 전달해보고 값 들의 변화를 확인해보기]


package kr.momento.first;


public class ReferenceCall {

public static void add(int intVar){ // add(int) Method

intVar = intVar + 1;

        System.out.println("add(int) 결과: " + intVar);

    }

public static void add(int[] intArr){ // add(int[]) Method

        System.out.print("add(int[]) 결과: ");

        for(int i=0; i< intArr.length; i++){

        intArr[i] = intArr[i] + 1;

            System.out.print(intArr[i] + " ");

        }

        System.out.println();

    }

public static void main(String[] args) {

 

        // 1. Call by Value : 값에 의한 호출

        System.out.println("1. Call by Value !");

        int a = 100;

        add(a);

        System.out.println("add(int) 호출후 값: " + a);

        System.out.println("---------------------");

        

        // 2. Call by Reference : 참조 주소 값에 의한 호출

        // 배열을 이용하여 호출 확인

        System.out.println("2. Call by Reference !");

        int [] array = {100, 200, 300};

        add(array);

        System.out.print("add(int[]) 호출후 값: ");

        for(int i=0; i< array.length; i++){

            System.out.print(array[i] + " ");

        }

        System.out.println();

        System.out.println("---------------------");

        

        // 3. reference(주소)가 아닌 그 Value(값)를 호출한 경우는 Call by Value

        System.out.println("3. Call by Test !");

        add(array[0]);

        System.out.println("add(int) 호출후 값: " + array[0]);

    }

}

'Development > JAVA' 카테고리의 다른 글

[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 배열  (0) 2016.08.24
[JAVA] 데이터 타입  (0) 2016.08.18
[JAVA] 간단한 개념 정리 [JVM, GC]  (0) 2016.08.18

[ JAVA에 대한 기본 개념 알아보기 ]


Q. JAVA를 왜 사용하는가?


A. JAVA는 C언어와 C++언어처럼 프로그래밍 언어의 한 종류이지만 몇 가지의 특징이 있기에 사용이 되어집니다. 가장 큰 특징으로는 기존에 언어들보다 조금은 다루기가 쉽다는 점, JVM을 이용한 멀티OS기능, 객체 지향이란 특징들이 대표적으로 꼽힙니다.


- 다루기 쉬운 언어 : C언어의 표기법과 별반 다를게 없는 언어지만, C언어의 포인터라는 개념처럼 세세한 부분까지 신경을 쓰지 않아도 되어 다루기가 쉽다는 이점이 있습니다.

- 객체 지향 : JAVA는 C++을 기반으로 개발된 언어로써 기능을 세분화하지 않고, 구성하는 주체(객체)를 정해 설계도(Class)에 맞춰 상태(field)와 동작(method)등으로 정의한 것을 말합니다. 고로 객체 지향이란 각각의 기능들을 쪼개어 분업하여 각자의 기능들을 조립하여 최종적인 결과물을 만든 다는 개념이라 할 수 있습니다.


Q. JVM(Java Virtual Machine)이란?


A. 기존의 프로그램은 Program - > OS - > Hardware 순으로 진행되는데 이는 Program과 대응이 되는 OS끼리에서만 실행된다는 점이 있었는데 JAVA는 Java Program - > JVM - > OS - > Hardware 순으로 진행이 되어 Java 가상 머신이라는 실행 환경만 있다면 가능하다는 이점이 있습니다. 물론 JRE(Jave Runtime Environment)라는 실행환경 프로그램이 필요합니다. JVM은 운영 체제와 기기에 독립적이라는 특징에 의해 어느 기기와 상관없이 Java 가상 머신만 존재한다면 Java 프로그램이 실행 가능 하다는 이점이 있습니다.


Q. GC(Garbage Collection)란?


A. 자바는 객체를 생성 할 때 주소 형식의 메모리가 힙(Heap)이란 영역에 할당이 되어 지는데 이를 동적 할당이라 하며, 동적 할당을 하고 나서 할당 값을 직접 해제 해줘야 하는 부분을 Garbage Collection기능으로 객체가 필요가 없다고 판단이 되면 직접 해제시켜주어 자동으로 메모리를 수거해 주는 기능을 말합니다. 자세한 내용을 알고 싶다면 아래 참고 사이트를 이용하시길 바랍니다.


- 참고 : http://d2.naver.com/helloworld/1329

'Development > JAVA' 카테고리의 다른 글

[JAVA] 게시판 예제 - 1 (배열, Scanner)  (0) 2016.08.24
[JAVA] Scanner 문자열 입력  (0) 2016.08.24
[JAVA] 배열  (0) 2016.08.24
[JAVA] 데이터 타입  (0) 2016.08.18
[JAVA] Call by Reference, Call by Value  (0) 2016.08.18

+ Recent posts