2021 자바 스터디 3주차 과제
타입 | 설명 | 사이즈 | 값의 범위 | 기본값 |
---|---|---|---|---|
byte | 부호있는정숫값 | 8bit | -128 ~ 127 | 0 |
short | 부호있는정숫값 | 16bit | -32768 ~ 32767 | 0 |
int | 부호있는정숫값 | 32bit | -2147483648 ~ 2147483647 | 0 |
long | 부호있는정숫값 | 64bit | 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 0 |
char | 유니코드 문자 | 16bit | 0 ~ 65,535 | '\u0000' |
float | 부동소수점수 | 32bit | (3.4 X 10-38) ~ (3.4 X 1038) 의 근사값 | 0.0d |
double | 부동소수점수 | 64bit | (1.7 X 10-308) ~ (1.7 X 10308) 의 근사값 | 0.0d |
boolean | 논리값 | 1bit | false,true | false |
타입 | 예시 | 할당되는 메모리 크기 | 기본값 |
---|---|---|---|
배열(Array) | int[]arr = new int[5]; | 4byte(객체의주소값) | Null |
열거(Enumeration) | 4byte(객체의주소값) | Null | |
클래스(Class) | String str = "project"; Fruite apple = new Fruite(); | 4byte(객체의주소값) | Null |
인터페이스(Interface) | 4byte(객체의주소값) | Null |
| 프로그램에서 직접 표현한 값
int a = 15; // 10진수 리터럴
int b = 015; // 8진수 리터럴 - 0으로 시작 -> 10진수 값으로 13
int c = 0x15; // 16진수 리터럴 - 0x로 시작 -> 10진수 값으로 21
int d = 0b0101; // 2진수 리터럴 - 0b로 시작 -> 10진수 값으로 5
long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙여 표시
long e = 26L;
double f = 0.1234;
double g = 1234E-4; // 1234*10*(-4) 이므로 0.1234와 같다
float,double을 명시적으로 붙이기도 함
(float는 f를 꼭 붙여야하고, double은 생략가능)
float h = 0.1234f;
double i = .1234D;
단일 인용부호('')로 문자 표현
char a = 'S';
char b = "사";
char c = \uae00; //유니코드값, \u다음 4자리 16진수로
기본타입이 아님, ("")로 문자열 표현
String lter = "JAVA";
lter + 26 = "lter26" //문자열 출력
boolean a = true;
boolean b = 10 > 0; //b 값 true
boolean c = 0; // C와 다르게 boolean타입으로 0,1을 거짓,참으로 사용X
int a = null; //에러
String str = null;
str = "JAVA";
| 사용할 데이터를 저장하기 위해 메모리를 잡음
int number; //number 변수선언
double length; //length 변수선언
| 변수를 사용하기 위해 값을 넣어주는 작업으로 초기화해주지 않으면 쓰레기 값이 들어가 에러가 발생할 수 있음
number = 5;
length = 3.4;
| 변수 선언과 초기화를 동시에 할 수 있음
int number = 5;
int length = 3.4;
| 변수의 사용범위를 뜻함
public class Test {
int var1;
void pro(){
int var2;
}
}
| 변수가 생성되고 소멸하는 것을 말함
public class Test {
int var1; // var1: 인스턴스 변수,필드,전역변수
static int var2; // var2: 클래스 변수,정적 변수
void pro(int var3){ // var3: 매개변수,파라미터
int var4 = 100; //var4: 지역변수,local,변수
}
}
| 변수나 상수의 타입을 다른 타입으로 변환
byte < short < int < long < float < double < String
<----정수형 변수----> <-실수형 변수->
| 명시적 형 변환 - 큰 데이터 타입에서 작은 데이터 타입으로 형 변환
float a = 10;
int b = a;
float a = 10;
int b = (int) a;
| 자동/묵시적 형 변환 - 작은 데이터 타입에서 큰 데이터 타입으로 형 변환
int a = 10;
float b = a;
| 같은 종류의 데이터를 그룹화 한 형태
int []a = new int[3]; // a는 3칸짜리 배열
int []a = {10,20,30}; // a[0]:10,a[1]:20,a[2]:30
| 1차원 배열에 행의 개념을 추가한 배열
int[][]arr = new int[2][3]; // 2행 3열
int[][]arr = {{1,2,3},{10,20,30}};
| 코드 작성 당시 타입이 정해지지 않았지만, 컴파일러가 그 타입을 유추하는 것
//Java 9 이하
String str = "Hello";
//Java 10 이상
var str = "Hello I am SooYeon";
-> 컴파일러가 오른쪽에 초기화 값으로 제공되는 것을 통해 타입 유추