티스토리 뷰
저번 1주차 과제는 JVM과 자바에 대한 기본 이론에 대한 설명을 하였다.
과연 2주차 과제는 무엇일까?
2주차 과제
자바 데이터 타입, 변수 그리고 배열
목표
자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다.
학습할 것
1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값
모든 변수에는 타입이 있으며, 타입에 따라 저장할 수 있는 값의 종류와 범위가 달라진다.
1) Primitive type
기본 혹은 원시 타입이라고 하며 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입을 말한다.
2) Primitive type의 값의 범위
기본 타입에 대한 값의 범위는 다음과 같다.
3) Primitive type의 기본값
자료형 | 기본값 |
byte, short, int | 0 |
long | 0L |
char | '\u0000' |
float | 0.0f |
double | 0.0d OR 0.0 |
boolean | false |
2. 프리미티브 타입과 레퍼런스 타입
1) Primitive type
기본 타입의 경우 언어에서 사전 정의가 되어있는 데이터 타입을 말한다.
2) Reference type
실제 값이 아닌 해당 값을 참조하는 참조값(주소 값)이 메모리상에 저장된다.
타입 | 기본값 | 할당되는 메모리 크기 |
Class 클래스 | Null | 4 byte (객체의 주소값) |
Interface 인터페이스 | ||
Array 배열 | ||
Enumeration 열거 |
3. 리터럴
소스 코드 내에서 직접 입려된 값을 literal이라고 부른다. 리터럴은 5가지로 나눌 수 있다.
1) 정수 리터럴(type : byte, char, short, int, long)
10진수
0, 75, -100
0으로 시작되면 8진수
02, -04
0x 또는 0X로 시작하고, 0~ 9, A~F, a~f로 구성된 리터럴은 16진수
0x5, 0xA, 0xB3, 0xAC08
2) 실수 리터럴(type : float, double)
소수점이 있는 10진수
0.25, -3.14
E, e가 있는 10진수 지수와 가수로 간주
5E7 == 5 x 10^7
0.12E-5 == 0.12 x 10^-5
3) 문자 리터럴(type : char)
작은따옴표(')로 묶은 텍스트
'A', '한', '\t', '\n'
4) 문자열 리터럴(type : string)
큰 따옴표("")로 묶은 텍스트
"반갑습니다. 제이나린입니다."
5) 논리 리터럴(type : boolean)
true, false
4. 변수 선언 및 초기화하는 방법
1) Variable(변수)
변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.
변수는 다양한 타입의 값을 설정할 수 있지만, 단 한 가지 타입의 값만 저장할 수 있다.
2) 변수의 선언
int age; // int 값을 저장할 수 있는 age 변수 선언
double value; // double 값을 저장할 수 있는 value 변수 선언
3) 변수의 초기화
변수를 선언한 후 처음으로 값을 저장하는 것을 말한다.
int score = 90;
즉, 변수 선언과 초기화에 관련된 코드는 다음과 같다.
public class Example {
public static void main(String[] args) {
int value = 5;
int result = value + 5;
System.out.println(result);
}
}
5. 변수의 스코프와 라이프타임
1) 변수의 스코프
스코프를 번역하면 영역이라는 뜻이다.
자바에서 말하는 스코프는 변수에 대한 접근과 변수가 존재할 수 있는 영역을 의미한다. 즉 중과로 { }로 영역이 한 개 생성이 된다면 그 영역에 관한 스코프를 형성하게 된 것이다.
public class Test {
int number;
}
2) 변수의 라이프타임
변수가 메모리에서 살아있는 기간을 의미한다.
6. 타입 변환, 캐스팅 그리고 타입 프로모션
1) 타입 변환
데이터 타입을 다른 데이터 타입으로 변환하는 것을 말한다. 이러한 변환에는 두 가지 종류가 있다. 하나는 강제(명시적) 타입 변환이고 다른 하나는 자동(묵시적) 타입 변환이다.
2) 캐스팅
강제적으로 큰 데이터 타입을 작은 데이터 타입으로 쪼개어서 저장하는 것을 Casting 강제 타입 변환이라고도 한다.
int intValue = 103029770;
byte byteValue = (byte) intValue;
3) 프로모션
프로그램 실행 도중 자동적으로 타입 변환이 일어나는 것을 자동 타입 변환 Promotion이라고 한다.
public class promotionExample{
public static void main(String[] args){
char charValue = '가';
intValue = charValue;
System.out.println("가의 유니코드=" + intValue);
}
}
7. 1차 및 2차 배열 선언하기
1) 1차 배열
타입[] 배열이름 = new 타입[배열길이]
가장 기본적인 배열로 다음과 같은 문법에 따라 선언을 할 수 있다.
int[] number = new int[3];
number[0] = 2;
number[1] = 3;
number[2] = 6;
for (int i=0; i < number.length; i++) {
System.out.print(number[i] + " ");
}
길이가 3인 int형 배열의 선언 및 생성을 하여 다음과 같은 실행결과를 가져온다.
2 3 6
2) 2차 배열
two dimensional array
타입[][] 배열이름 = new 타입[배열길이][배열길이];
배열의 요소로 1차원 배열을 가지는 배열이다.
package study2;
public class arr {
public static void main(String[] args) {
int[][] arr = new int[2][3];
int k = 10;
for (int i = 0; i < arr.length; i++){
for(int j = 0; j<arr[i].length; j++){
arr[i][j] = k;
k +=10;
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
이 값에 대한 결과는 다음과 같다.
10 20 30
40 50 60
8. 타입 추론, var
1) 타입 추론
변수 타입을 명시하지 않고 컴파일러가 데이터 타입이 무엇인지 추론한다는 것을 의미한다. 즉, 타입을 명시하지 않아도 되며 코드량을 줄여 가독성을 더욱 높일 수 있다.
2) var
- 자바 10부터 var 키워드가 추가되어 선언과 동시에 반드시 초기화를 해야 한다.
- 지역변수에서만 사용이 가능하다.
- null 초기화하면 작동하지 않는다.
- 람다 표현식에는 var 사용을 할 수 없다.
- 타입이 없어 배열에 초기값을 넘겨도 작동하지 않는다.
오늘은 이렇게 자바에 배열과 변수 타입에 대한 공부를 하였다.
하지만 몇가지는 좀 이해가 가지 않은 부분들은 다른 분들 과제를 참고하여
이해를 하고 나의 것으로 만든 후 내용을 다시 정리하려고 한다.
참고서적
|
'Back-End > Java' 카테고리의 다른 글
4주차 과제 1. 선택문 (0) | 2021.01.05 |
---|---|
3주차 과제 : 연산자 (0) | 2020.12.24 |
이클립스를 설치해보자 (0) | 2020.12.22 |
1주차 과제 : JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2020.12.20 |
자바 개발 환경을 구축해보자. (0) | 2020.12.19 |
- Total
- Today
- Yesterday
- 재공부
- react
- 리액트 썸네일
- github
- 리액트 유튜브
- 뷰
- 노드
- 파이썬
- 프로그래머스
- Visual Studio Code
- 배열
- java
- Switch
- node
- Coding Test
- CSS
- redux
- programmers
- node-sass
- array
- javascript
- node.js
- 자바스크립트
- 함수
- 리덕스
- Git
- mongodb
- 리액트
- 코딩테스트
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |