자바수업 2일차
8개의 Primitive Type
-실제 데이터 값을 저장하는 타입으로 Stack 영역에 저장
-null이 존재하지않는다
-범위를 벗어나면 컴파일에러
Reference Type(빈 객체를 의미하는 null이 존재, Heap영역에 저장)
class, interface, enum, array, String Type등 나중에 자세히 배울 예정
아래는 가장 기본적으로 배우는 데이터타입(Primitive Type)이다
정수형 데이터는 기본으로 int로 인식하기때문에 long을 쓰려면 숫자뒤에 l을 붙여야한다
long globalPopular = 8_000_000_000l;
자바 형변환
// 자료 형 변환 (Data Type Casting)
int weight = 78;
//78.0 으로 출력하고 싶다
// 정수 타입 -> 실수 타입으로 변환
//묵시적 형 변환(Implicit Type Casting)
double cvt_weight = weight;
System.out.println(cvt_weight);
final double PI = 3.141592;
//명시적 형 변환 (Explicit Type Casting)
final int CVT_PI = (int)PI;
System.out.println(CVT_PI);
여기서 final이라는 단어가 보이는데
변수 선언할때 보통 초기화를 같이한다
예를 들어 int box = 2; 라고 선언 후
box = 4; 라고 또 선언하면 box에는 4가 저장된다
하지만 final 키워드는 한번 정해놓으면 바꿀수없다 숫자에 사용할경우 주로 상수에 쓴다.
다음은 Scanner를 통한 입력받기
package day2;
import java.util.Arrays;
import java.util.Scanner;
public class Ex13Opr {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 정수 입력: ");
int num1 = sc.nextInt();
System.out.print("두 번째 정수 입력: ");
int num2 = sc.nextInt();
System.out.println("두 수의 더하기 : " + (num1 + num2));
System.out.println("두 수의 빼기 : " + (num1 + num2));
System.out.println("두 수의 곱하기 : " + (num1 * num2));
System.out.println("두 수의 나누기 : " + (num1 / num2));
}
}
new Scanner에 대해 알아보다가 new 연산자와 리터럴 방식에 대해 알게되었다.
new 연산자는 객체를 Heap이라는 메모리 영역에 메모리 공간을 할당해주고 메모리주소를 반환한 후 생성자를 실행시켜준다.
리터럴과는 달리 new 연산자로 생성된 객체는 똑같은 값을 가진 객체가 있어도 서로 다른 메모리를 할당하기 때문에 서로 다른 객체로 분류된다.
new를 사용할경우 다른 메모리주소에 저장된다
public static void main(String[] args) {
String str = new String("string");
String str2 = new String("string");
System.out.println(System.identityHashCode(str)); //result:356573597
System.out.println(System.identityHashCode(str2)); //result:1735600054
}
리터럴 방식은 동일한곳에 저장되있다.
public static void main(String[] args) {
String str = "string";
String str2 = "string";
System.out.println(System.identityHashCode(str)); //result:356573597
System.out.println(System.identityHashCode(str2)); //result:356573597
}
알면 알수록 신기한 컴퓨터의 세계다..