SlideShare a Scribd company logo
JAVA 변수 자료형
작성자 : 홍효상
이메일 : hyomee@naver.com
소스 : https://github.com/hyomee/JAVA_EDU
프로그램은 사람이 이해하는 코드를 작성.
느려도 꾸준하면 경기에서 이긴다.
Content
소스 : https://github.com/hyomee/JAVABASIC
2. 자바 변수 자료형
1. 변수
2. 기본 자료형 ( Primitive Type )
3. 참조 자료형 ( Reference Type )
4. 변수 구분
5. JVM 상태
6. 형 변환
7. 변수 범위
1. 변수
2. 변수, 자료형
• 메모리공간에데이터를저장하고읽어오기위해부여한이름
• JVM Runtime Data Area중에Stack Area에저장
• 변하는수를언제나변경가능함
• 데이터를메모리공간에저장하는목적에따라크기와특징을구분해
애하는데이것이자료형
“ 메모리 공간에 부여하는 이름은 변수, 크기와 목적은 자료형 “
2-1. 변수
변수 자료형(Data Type )
자료형 변수명
10
num
메모리할당
할당된 메모리에 값 설정
• 기본자료형( Primitive Type )
- 부울대수 ( Boolean Type )
- 숫자 ( Numeric Type )
- 안전한 ( Integral Type )
- 정수형 ( Integer Type )
- byte, short, int, long
- 실수형 ( Floating Type )
- float, double
- 문자 ( Character Type )
- char
• 참조자료형(Reference Type )
- 배열 ( Array Type )
- Enum Type
- Class Type
- String Class
- Wrapper Class
…
• 염문대소문자,한글사용가능
• 특수문자는밑줄(_), 달러($) 표기만 사용 가능
• 아라비아 숫자 가능. 단 첫 문자는 숫자 불가
• 자바에서 사용하는 예약어 불가
* 일반적으로 Camel Case(카멜 표기법) 사용
* 상수는 대문자 사용 ( final )
3
initNum
자바안녕
heap
stack
100
initNum
stack
100번지
1. 변수
2. 변수, 자료형
2-1. 변수
1. 기본 자료형 ( Primitive Type )
2. 변수, 자료형
2-2. 기본 자료형
• 자바에서기본자료형은반드시사용하기전에선언(Declared)되어야함
• OS에따라자료형의길이가변하지않음
• 비객체타입입니다.따라서null값을가질수없음
Type Byte Range of Values
부울대수 ( Boolean Type ) boolean 1bit ) true, false
숫
자
(
Numeric
Type
)
안
전
한
(
Integral
Type
)
정수형 ( Integer Type )
byte 1 Byte ( 8 bit ) -2^7 ~ 2^7-1 (-128 ~ 127)
short 2 Byte ( 16 bit )
-2^15 ~ 2^15-1 (-32768 ~ 32767)
int 4 Byte ( 32 bit )
-2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
long 8 Byte ( 64 bit )
-2^63 ~ 2^63-1 (-9223372036854775808 ~
9223372036854775807)
실수형 ( Floating Type ) float 4 Byte ( 32 bit ) 0x0.000002P-126f ~ 0x1.fffffeP+127f
double 8 Byte ( 64 bit ) 0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023
문자 ( Character Type ) char 2 Byte ( 16 bit ) u0000 ~ uffff (0 ~ 2^15-1)
▪ 문자 ( Character Type )는 자바에서 unsigned로 동작하는 자료형
▪ BigInteger : 연산자에는 사용 하지 않음
기본자료형( Primitive Type )
2. 기본 자료형 사용하기
2. 변수, 자료형
2-2. 기본 자료형
• 정수리터럴이선언한변수범위에있으면선언한형으로인식
• 범위밖에있으면기본int형으로인식하여오류발생->형변환필요
• long : 정수리터럴 + L ( or l )
2. 기본 자료형 사용하기
2. 변수, 자료형
2-2. 기본 자료형
• 실수형자료형에서실수리터럴은기본이double 형
• 소수점(실수리터럴)은float형에넣으면오류발생->형반환필요
• 정수형리터럴은자동변환됨
• float : 실수리터럴 + F ( or f )
2. 기본 자료형 사용하기
2. 변수, 자료형
2-2. 기본 자료형
• 문자형은유니코드로변환해서메모리에저장함
-유니코드:전세계의모든문자를컴퓨터에서일관되게표현하고다룰수있도록설계된산업표준이다.유니코드는유니코드협회(Unicode Consortium)가제정함
• 문자형은한문자를의미하며 문자 ( ‘A’ ), 10진수( 65 ), 2진수 ( 0b1000001 ), 8진수( 00101 ), 16진수( 0x0041 ), 유니코드( ‘u0041’ )를저장
2. 기본 자료형 사용하기
2. 변수, 자료형
2-2. 기본 자료형
• 진법변환은십진수ToN진수( Integer.toXXXXString() ), N진수T
o10진수(Integer.parserXXX() )사용
1. 참조 자료형 ( Reference Type )
2. 변수, 자료형
2-3. 참조 자료형
• 기본적으로java.lang.Object를상속받으면참조형
• 개발자가정의할수있음
Type 설명
배열 ( Array Type ) • 기본형으로도 만들 수 있고 참조형으로 만들 수 있음
Enum Type byte
• 열거형,
• String 클래스와 마찬가지로 불변의 객체,
• 상수의 집합을 만들거나 특정 객체의 상태를 모아서 열거형을 만듦
Class Type
String Class
• 참조형에 속하지만 기본적인 사용은 기본형처럼 사용
• 불변하는immutable 객체
• String 클래스에는 값을 변경해주는 메소드들이 존재하지만 해당 메소드를 통해 데이터
를 바꾼다 해도 새로운 String 클래스 객체를 만들어내는 것
• String 객체간의 비교는 .equals() 메소드를 사용
Wrapper Class
• 기본형에 null을 넣고 싶다면 래퍼 클래스Wrapper Class를 활용
기본형 대응 래퍼 클래스
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Char
boolean Boolean
참조자료형(Reference Type )
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
• 동일한자료형을그룹(묶음)으로저장
• 생성시점에크기를지정해애하고크기가지정되면변경될수없음
• Stack에저장되는변수는모두초기화후사용해야함.
배열
자료형[] 변수명
100
num
메모리할당
변수명 = new 자료형[크기]
Stack
Heap
100번지
변수 선언
변수 선언
num[0] num[1] num[2]
• 다음은모두같은의미를가진다
➢ 요소(index)에값대입
➢ 강제초기화->크기를지정하지않는다.
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
변수 'num'이(가) 초기화되지 않았을 수 있습니다
변수 'arrayNum'이(가) 초기화되지 않았을 수 있습니다
• boolean : false
• byte, short, int, long, char : 0
• float, double : 0.0
• class, array : null
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
100
10 20 30
numArrayA
Stack
Heap
100번지
numArrayA[0]
100 100
10 40 30
numArrayA
Stack
Heap
100번지
numArrayA[0]
numArrayB[0]
numArrayB
10
Stack
10 10
Stack
10 20
Stack
numA
numB
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
• 한 요소 읽기 : 배열[index]
• 전체 일기 : Arrays.toSting(배열)
• 반복문 사용 : for ( ; ; ) , for ( : )
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
2차원배열
자료형[][] 변수명
자료형 변수명[][]
자료형[] 변수명[]
100
200 300 10 20 30 40
numNarray
Stack
Heap
100번지
numNarray[0] numNarray[1]
numNarray[0][0] numNarray[0][1] numNarray[1][0] numNarray[1][0]
200번지 300번지
numNarray[0][0] = 10
numNarray[0][1] = 20
numNarray[1][0] = 30
numNarray[1][1] = 40
int numNarray[][] = new int[2][2];
int[] numNarray[] = new int[2][2];
Int[][] numNarray = new int[2][2];
➢ 메모리
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
int[][] numNarray = new int[2][3];
numNarray[0] = new int[] {10,20,30};
numNarray[1] = new int[] {40,50,60};
100
null null
numNarray
Stack
100번지
numNarray[0] numNarray[1]
Heap
100
200 null 10 20 30
numNarray
Stack
100번지
numNarray[0] numNarray[1]
Heap
numNarray[0][0]
numNarray[0][1]
numNarray[0][2]
100
200 300 10 20 30 40 50 60
numNarray
Stack
100번지
numNarray[0]
numNarray[1]
Heap
numNarray[0][0]
numNarray[0][1]
numNarray[0][2]
numNarray[1][1]
numNarray[1][2]
numNarray[1][0]
2. 배열
2. 변수, 자료형
2-3. 참조 자료형
int[][] numNarray = new int[2][3];
numNarray[0] = new int[] {10,20,30};
numNarray[1] = new int[] {40,50,60};
int[][] numNarray = new int[2][3];
numNarray = new int[][]{{10,20,30},{40,50,60}};
int[][] numNarray = new int[][]{{10,20,30},{40,50,60}};
int[][] numNarray = {{10,20,30},{40,50,60}};
3. 문자열
2. 변수, 자료형
2-3. 참조 자료형
• 자바가제공하는Class
• 문자열저장
문자열
String 변수명 = new String(“문자열”);
String 변수명 = “문자열”
class 100
stack
문자열
heap
변수명
100번지
String
객체(Object)
새로운객체생성
100
stack
str
100 100
stack
str strCopy 안녕 자바
heap
100 200
stack
str strCopy
안녕 자바 안녕 C
heap
stack 에 변수 복사
stack 에 heap에 새로운 객체를 생성 하여 저장 하고 stack에 있는 변수의 값인 주소를 변경함
3. 문자열
2. 변수, 자료형
2-3. 참조 자료형
(함정 )
• 문자열리터럴로객체를생성하면heap에동일한문자열이있는객체를공유
• new로생성하면무조건생성함
100 100 200 300
stack
strA
안녕 자바 안녕 자바 안녕 자바
heap
strB strC strD
100 500 200 300
stack
strA
안녕 자바 안녕 자바 안녕 자바 안녕 C
heap
strB strC strD
3. 문자열
2. 변수, 자료형
2-3. 참조 자료형
• 문자열을합쳐서하나의문자열객체생성
• 정수연산이있으면정수연산후문자열로자동Casting후합쳐서문자열객체셍성
안녕 자바 안녕 자바
“안녕” + “자바"
1 2 안녕 자바 3안녕자바
1 + 2 + “자바"
3. 문자열
2. 변수, 자료형
2-3. 참조 자료형
함수명 설명 반환 값 예제
length 문자열의 길이
해당 객체의 문자열 길이를 반환(int형) 합니다.
(null은 포함하지 않음)
String str = "abcde";
System.out.println(str.length());
isEmpty 문자열이 비어 있는지 확인
문자열의 길이(length)가 0이면 true 반환(boolean형), 0이 아니면 false를
반환
String str = new String();
str.isEmpty()) ? True : false
charAt 문자 반환
문자열 중 해당 인덱스의 문자(char형)를 반환합니다.
(인덱스는 0 ~ 문자열의 길이(length)
String str = new String("abed");
System.out.println(str.charAt(2));
getChars 문자 배열 복사 문자열을 문자(char) 배열로 복사
String str = new String("abcd");
char [] ch = new char[4];
str.getChars(0, 2, ch, 0);
System.out.println(ch);
equals 문자열 비교
해당 문자열과 매개변수의 문자열이 같은 지 비교하여 true 또는 false를
반환합니다.(boolean형) ( == 는 stack 주소 비교 )
String str = new String("abcd");
String str2 = new String("abc");
str.equals(str2) ? True : false;
equalsIgnoreCase 문자열 비교 대소문자 구분 없이 문자열의 실제 내용 비교
compareTo 문자열 비교(사전 순으로 대소 비교) 해당 문자열과 매개변수의 문자열을 사전 순으로 비교합니다.
String str = new String("aaa");
String str2 = new String("bbb");
System.out.println(str.compareTo(str2))
indexOf 문자열 위치 해당 문자열이 위치하는 인덱스를 반환합니다.(int형)
String str = new String("abcd");
System.out.println(str.indexOf("c"));
lastIndexOf 문자열 마지막 위치 해당 문자열이 마지막으로 위치하는 인덱스를 반환합니다.(int형)
String str = new String("abcdeabcda");
System.out.println(str.lastIndexOf("c"))
subString 문자열 자르기 해당 문자열의 인덱스만큼 잘라서 반환합니다.(String형)
String str = new String("abcdefg");
System.out.println(str.substring(2, 6));
System.out.println(str.substring(5));
3. 문자열
2. 변수, 자료형
2-3. 참조 자료형
함수명 설명 반환 값 예제
concat 문자열 합치기 해당 문자열 뒤에 매개변수 문자열을 서로 합칩니다
String str = new String("a");
String str2 = new String("b");
String str3 = new String();
str3 = str.concat(str2);
String str4 = str+str2;
System.out.println(str3);
System.out.println(str4);
replace 문자열 치환 해당 문자를 찾아 다음 문자로 변경
String str = new String("abc");
str = str.replace('b', 'k');
System.out.println(str);
contains 문자열 포함
해당 문자열이 포함되어 있는지 확인합니다. 포함할 경우 true, 아닌 경우
false 반환(boolean형)
String str = new String("abc");
str.contains("bc") ? True : false;
split 문자열 분리 문자열을 해당 문자열을 기준으로 모두 분리합니다.(String [] 반환)
String str = new String("a b c d e f");
String[] str2 = new String[6];
for(int i = 0; i < 6; i++) {
str2[i] = str.split(" ")[i];
}
for(int i = 0; i < 6; i++) {
System.out.print(str2[i]);
}
trim 문자열 공백 제거
해당 문자열의 앞, 뒤의 공백을 모두 제거합니다.(문자열 사이의 공백은 제
거되지 않음)
String str = new String(" a b c ");
String str2 = str.trim();
System.out.println(str2)
toLowerCase 소문자 변환 영문 문자를 모두 소문자로 변환
toUpperCase 대문자 변환 영문 무자를 모두 대문자로 변환
1. 변수 구분
2. 변수, 자료형
2-4. 변수 구분
• 메소드내부에서정의되어사용하는변수
• 자동으로초기화되지않음
• 매개변수도지역변수
:메소드이인자로사용되는변수
지역변수(로컬변수)
• static 으로선언되어있지않는모든멤버변수
• 객체(클래스의인스턴스)는자신만의복사본을Heap에저장함
:new로생성시마다Heap에할당
:인스턴스변수의값은각각이객체와구분됨
인스턴스변수
• 객체(클래스의 인스턴스)가 아니라 정의된 클래스와 연관되므로
Runtime Data Area의 Method Area에 한 개 존재
: 객체를 많이 생성 해도 하나만 존재 함
: 초기화가 한번만 실행
• static 한정자
- 생성시점 : 최초 new하는 경우 , Class가 최초로 참조 되는 경우
- 일반적으로 상수로 사용
static final double PI=3.14;
Class.클래스변수로 접근 : ClassName.PI
클래스변수 변수자동초기화
▪ 클래스,인스턴스변수는자동초기화됨
: boolean -> false
: char -> ‘u0000’
: Byte : short : int : long -> 0
: Float -> 0.0f
: Double -> 0.0d
: Object type -> null
▪ 자동으로초기화되지않음
: 지역변수, 매개변수
: 매개변수도 지역 변수
2. 변수 구분 예제
2. 변수, 자료형
2-4. 변수 구분
1. JVM 상태
2. 변수, 자료형
2-6. JVM 상태
Method Area
- main()
- sum()
- counter : 0
Stack
total : args :
main()
2. 메인 실행
Heap Area
- NULL
Stack
total :, args :
i : 10, j : 30,
sum : 40
Stack
total : 40, args :
3. SUM 실행 3. SUM 종료
* MAIN 종료 후 모두 사라짐
1. JvmVariableCycle Class가 시작 할 때 할당 됨
Method Area
- main()
- sum()
- counter : 1
1. 형 변환
2. 변수, 자료형
2-7. 형 변환
• 자료형크기가큰쪽,범위가넓은쪽으로자동변환되는것->형확장->자동변환 ->Up Casting
-범위안에있는경우자동Casting 됨
• 자료형크기가작은쪽,범위가좁은쪽으로자동변환되는것->형축소->수동변환->Down Casting
“ 시스템에서 자동으로 하는 자동 변환(Up Casting), 개발자에 의해 강제로 하는 수동 변환 (Down Casting) “
자료형변환
char short int long float double
자동변환 ( 형 확장 ) -> UpCasting
수동변환 (형 축소 ) -> DownCasting
byte
1. 형 변환
2. 변수, 자료형
2-7. 형 변환
1. 변수 범위
2. 변수, 자료형
2-8. 변수 범위
• 변수의 선언 위치에 따라서 변수의 수명이 지역 범위를 가지는 지역 변수와 프로그램 전체에 영향을 주는 전역 변수.
외부에서 참조 시 public
• 변수 선언 시 static, const keyword를 사용 하면 의미가 변경 됨
“ 위에서 아래는 사용 가능 “
변수범위
프로그램
a.java
지역변수
함수
전역 변수
전역 변수
b.java
지역변수
함수
전역 변수
전역 변수
A 파일에 선언한 전역 변수를
B파일 사용
A 파일에 선언한 전역 변수와
동일한 변수명을 B에서 사용
(static )

More Related Content

What's hot

3-1. css
3-1. css3-1. css
3-1. css
JinKyoungHeo
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
진수 정
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
Hyosang Hong
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
JinKyoungHeo
 
파이썬 namespace Binding 이해하기
파이썬 namespace Binding 이해하기 파이썬 namespace Binding 이해하기
파이썬 namespace Binding 이해하기
Yong Joon Moon
 
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
MIN SEOK KOO
 
파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403
Yong Joon Moon
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
JinKyoungHeo
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
ETRIBE_STG
 
파이썬 class 및 function namespace 이해하기
파이썬 class 및 function namespace 이해하기파이썬 class 및 function namespace 이해하기
파이썬 class 및 function namespace 이해하기
Yong Joon Moon
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
MIN SEOK KOO
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
Yong Joon Moon
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
Park Jonggun
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
Young-Beom Rhee
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.
Young-Beom Rhee
 
주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편
Darion Kim
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310
Yong Joon Moon
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기
Yong Joon Moon
 

What's hot (19)

3-1. css
3-1. css3-1. css
3-1. css
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
 
파이썬 namespace Binding 이해하기
파이썬 namespace Binding 이해하기 파이썬 namespace Binding 이해하기
파이썬 namespace Binding 이해하기
 
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
이것이 자바다 Chap. 6 클래스(CLASS)(KOR)
 
파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403파이썬 Descriptor이해하기 20160403
파이썬 Descriptor이해하기 20160403
 
4-1. javascript
4-1. javascript4-1. javascript
4-1. javascript
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 
파이썬 class 및 function namespace 이해하기
파이썬 class 및 function namespace 이해하기파이썬 class 및 function namespace 이해하기
파이썬 class 및 function namespace 이해하기
 
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)
 
파이썬 함수 이해하기
파이썬 함수 이해하기 파이썬 함수 이해하기
파이썬 함수 이해하기
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function프론트엔드스터디 E04 js function
프론트엔드스터디 E04 js function
 
프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.프론트엔드스터디 E03 - Javascript intro.
프론트엔드스터디 E03 - Javascript intro.
 
주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편주니어 개발자도 이해 할 수 있는 Go - Scope 편
주니어 개발자도 이해 할 수 있는 Go - Scope 편
 
파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310파이썬+클래스+구조+이해하기 20160310
파이썬+클래스+구조+이해하기 20160310
 
Jupyter notebook 이해하기
Jupyter notebook 이해하기 Jupyter notebook 이해하기
Jupyter notebook 이해하기
 

Similar to Java_02 변수자료형

Python array.array 모듈 이해하기
Python array.array 모듈 이해하기Python array.array 모듈 이해하기
Python array.array 모듈 이해하기
Yong Joon Moon
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체
Circulus
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
7주 JavaScript Part2
7주 JavaScript Part27주 JavaScript Part2
7주 JavaScript Part2
지수 윤
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
Yongha Yoo
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operator
Young-Beom Rhee
 
Java mentoring of samsung scsc 2
Java mentoring of samsung scsc   2Java mentoring of samsung scsc   2
Java mentoring of samsung scsc 2
도현 김
 
Python+numpy pandas 1편
Python+numpy pandas 1편Python+numpy pandas 1편
Python+numpy pandas 1편
Yong Joon Moon
 
Swift 3 Programming for iOS : class and structure
Swift 3 Programming for iOS : class and structureSwift 3 Programming for iOS : class and structure
Swift 3 Programming for iOS : class and structure
Kwang Woo NAM
 
JVM 메모리 해부학
JVM 메모리 해부학JVM 메모리 해부학
JVM 메모리 해부학
Greg Lee
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
Tae Young Lee
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
ssuseraf62e91
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)SeongHyun Ahn
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)
상욱 송
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10
hungrok
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용
유석 남
 

Similar to Java_02 변수자료형 (20)

Python array.array 모듈 이해하기
Python array.array 모듈 이해하기Python array.array 모듈 이해하기
Python array.array 모듈 이해하기
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
7주 JavaScript Part2
7주 JavaScript Part27주 JavaScript Part2
7주 JavaScript Part2
 
강의자료4
강의자료4강의자료4
강의자료4
 
Java standard(8~13)
Java standard(8~13)Java standard(8~13)
Java standard(8~13)
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
Javascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operatorJavascript introduction, dynamic data type, operator
Javascript introduction, dynamic data type, operator
 
Java mentoring of samsung scsc 2
Java mentoring of samsung scsc   2Java mentoring of samsung scsc   2
Java mentoring of samsung scsc 2
 
Python+numpy pandas 1편
Python+numpy pandas 1편Python+numpy pandas 1편
Python+numpy pandas 1편
 
Swift 3 Programming for iOS : class and structure
Swift 3 Programming for iOS : class and structureSwift 3 Programming for iOS : class and structure
Swift 3 Programming for iOS : class and structure
 
3주차 스터디
3주차 스터디3주차 스터디
3주차 스터디
 
JVM 메모리 해부학
JVM 메모리 해부학JVM 메모리 해부학
JVM 메모리 해부학
 
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) 파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
 
2015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌32015 Kitel C 언어 강좌3
2015 Kitel C 언어 강좌3
 
빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)빠르게 활용하는 파이썬3 스터디(ch1~4)
빠르게 활용하는 파이썬3 스터디(ch1~4)
 
Let's Go (golang)
Let's Go (golang)Let's Go (golang)
Let's Go (golang)
 
강의자료3
강의자료3강의자료3
강의자료3
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10
 
04장 고급변수 사용
04장 고급변수 사용04장 고급변수 사용
04장 고급변수 사용
 

More from Hong Hyo Sang

Java_10 람다
Java_10 람다Java_10 람다
Java_10 람다
Hong Hyo Sang
 
Java_09 이너클래스
Java_09 이너클래스Java_09 이너클래스
Java_09 이너클래스
Hong Hyo Sang
 
Java_08 collection
Java_08 collectionJava_08 collection
Java_08 collection
Hong Hyo Sang
 
Java_07 제너릭 메서드
Java_07 제너릭 메서드Java_07 제너릭 메서드
Java_07 제너릭 메서드
Hong Hyo Sang
 
Java_03 연산자
Java_03 연산자Java_03 연산자
Java_03 연산자
Hong Hyo Sang
 
Java_06 상속
Java_06 상속Java_06 상속
Java_06 상속
Hong Hyo Sang
 
Java_05 class
Java_05 classJava_05 class
Java_05 class
Hong Hyo Sang
 
Java_04 제어
Java_04 제어Java_04 제어
Java_04 제어
Hong Hyo Sang
 
Java_01 기초
Java_01 기초Java_01 기초
Java_01 기초
Hong Hyo Sang
 
Java 이해하기 쉬운 코드
Java 이해하기 쉬운 코드 Java 이해하기 쉬운 코드
Java 이해하기 쉬운 코드
Hong Hyo Sang
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙
Hong Hyo Sang
 

More from Hong Hyo Sang (11)

Java_10 람다
Java_10 람다Java_10 람다
Java_10 람다
 
Java_09 이너클래스
Java_09 이너클래스Java_09 이너클래스
Java_09 이너클래스
 
Java_08 collection
Java_08 collectionJava_08 collection
Java_08 collection
 
Java_07 제너릭 메서드
Java_07 제너릭 메서드Java_07 제너릭 메서드
Java_07 제너릭 메서드
 
Java_03 연산자
Java_03 연산자Java_03 연산자
Java_03 연산자
 
Java_06 상속
Java_06 상속Java_06 상속
Java_06 상속
 
Java_05 class
Java_05 classJava_05 class
Java_05 class
 
Java_04 제어
Java_04 제어Java_04 제어
Java_04 제어
 
Java_01 기초
Java_01 기초Java_01 기초
Java_01 기초
 
Java 이해하기 쉬운 코드
Java 이해하기 쉬운 코드 Java 이해하기 쉬운 코드
Java 이해하기 쉬운 코드
 
소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙소프트웨어 개선 그룹(Sig) 개발 원칙
소프트웨어 개선 그룹(Sig) 개발 원칙
 

Java_02 변수자료형

  • 1. JAVA 변수 자료형 작성자 : 홍효상 이메일 : hyomee@naver.com 소스 : https://github.com/hyomee/JAVA_EDU 프로그램은 사람이 이해하는 코드를 작성. 느려도 꾸준하면 경기에서 이긴다.
  • 2. Content 소스 : https://github.com/hyomee/JAVABASIC 2. 자바 변수 자료형 1. 변수 2. 기본 자료형 ( Primitive Type ) 3. 참조 자료형 ( Reference Type ) 4. 변수 구분 5. JVM 상태 6. 형 변환 7. 변수 범위
  • 3. 1. 변수 2. 변수, 자료형 • 메모리공간에데이터를저장하고읽어오기위해부여한이름 • JVM Runtime Data Area중에Stack Area에저장 • 변하는수를언제나변경가능함 • 데이터를메모리공간에저장하는목적에따라크기와특징을구분해 애하는데이것이자료형 “ 메모리 공간에 부여하는 이름은 변수, 크기와 목적은 자료형 “ 2-1. 변수 변수 자료형(Data Type ) 자료형 변수명 10 num 메모리할당 할당된 메모리에 값 설정 • 기본자료형( Primitive Type ) - 부울대수 ( Boolean Type ) - 숫자 ( Numeric Type ) - 안전한 ( Integral Type ) - 정수형 ( Integer Type ) - byte, short, int, long - 실수형 ( Floating Type ) - float, double - 문자 ( Character Type ) - char • 참조자료형(Reference Type ) - 배열 ( Array Type ) - Enum Type - Class Type - String Class - Wrapper Class … • 염문대소문자,한글사용가능 • 특수문자는밑줄(_), 달러($) 표기만 사용 가능 • 아라비아 숫자 가능. 단 첫 문자는 숫자 불가 • 자바에서 사용하는 예약어 불가 * 일반적으로 Camel Case(카멜 표기법) 사용 * 상수는 대문자 사용 ( final ) 3 initNum 자바안녕 heap stack 100 initNum stack 100번지
  • 4. 1. 변수 2. 변수, 자료형 2-1. 변수
  • 5. 1. 기본 자료형 ( Primitive Type ) 2. 변수, 자료형 2-2. 기본 자료형 • 자바에서기본자료형은반드시사용하기전에선언(Declared)되어야함 • OS에따라자료형의길이가변하지않음 • 비객체타입입니다.따라서null값을가질수없음 Type Byte Range of Values 부울대수 ( Boolean Type ) boolean 1bit ) true, false 숫 자 ( Numeric Type ) 안 전 한 ( Integral Type ) 정수형 ( Integer Type ) byte 1 Byte ( 8 bit ) -2^7 ~ 2^7-1 (-128 ~ 127) short 2 Byte ( 16 bit ) -2^15 ~ 2^15-1 (-32768 ~ 32767) int 4 Byte ( 32 bit ) -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647) long 8 Byte ( 64 bit ) -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807) 실수형 ( Floating Type ) float 4 Byte ( 32 bit ) 0x0.000002P-126f ~ 0x1.fffffeP+127f double 8 Byte ( 64 bit ) 0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023 문자 ( Character Type ) char 2 Byte ( 16 bit ) u0000 ~ uffff (0 ~ 2^15-1) ▪ 문자 ( Character Type )는 자바에서 unsigned로 동작하는 자료형 ▪ BigInteger : 연산자에는 사용 하지 않음 기본자료형( Primitive Type )
  • 6. 2. 기본 자료형 사용하기 2. 변수, 자료형 2-2. 기본 자료형 • 정수리터럴이선언한변수범위에있으면선언한형으로인식 • 범위밖에있으면기본int형으로인식하여오류발생->형변환필요 • long : 정수리터럴 + L ( or l )
  • 7. 2. 기본 자료형 사용하기 2. 변수, 자료형 2-2. 기본 자료형 • 실수형자료형에서실수리터럴은기본이double 형 • 소수점(실수리터럴)은float형에넣으면오류발생->형반환필요 • 정수형리터럴은자동변환됨 • float : 실수리터럴 + F ( or f )
  • 8. 2. 기본 자료형 사용하기 2. 변수, 자료형 2-2. 기본 자료형 • 문자형은유니코드로변환해서메모리에저장함 -유니코드:전세계의모든문자를컴퓨터에서일관되게표현하고다룰수있도록설계된산업표준이다.유니코드는유니코드협회(Unicode Consortium)가제정함 • 문자형은한문자를의미하며 문자 ( ‘A’ ), 10진수( 65 ), 2진수 ( 0b1000001 ), 8진수( 00101 ), 16진수( 0x0041 ), 유니코드( ‘u0041’ )를저장
  • 9. 2. 기본 자료형 사용하기 2. 변수, 자료형 2-2. 기본 자료형 • 진법변환은십진수ToN진수( Integer.toXXXXString() ), N진수T o10진수(Integer.parserXXX() )사용
  • 10. 1. 참조 자료형 ( Reference Type ) 2. 변수, 자료형 2-3. 참조 자료형 • 기본적으로java.lang.Object를상속받으면참조형 • 개발자가정의할수있음 Type 설명 배열 ( Array Type ) • 기본형으로도 만들 수 있고 참조형으로 만들 수 있음 Enum Type byte • 열거형, • String 클래스와 마찬가지로 불변의 객체, • 상수의 집합을 만들거나 특정 객체의 상태를 모아서 열거형을 만듦 Class Type String Class • 참조형에 속하지만 기본적인 사용은 기본형처럼 사용 • 불변하는immutable 객체 • String 클래스에는 값을 변경해주는 메소드들이 존재하지만 해당 메소드를 통해 데이터 를 바꾼다 해도 새로운 String 클래스 객체를 만들어내는 것 • String 객체간의 비교는 .equals() 메소드를 사용 Wrapper Class • 기본형에 null을 넣고 싶다면 래퍼 클래스Wrapper Class를 활용 기본형 대응 래퍼 클래스 byte Byte short Short int Integer long Long float Float double Double char Char boolean Boolean 참조자료형(Reference Type )
  • 11. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 • 동일한자료형을그룹(묶음)으로저장 • 생성시점에크기를지정해애하고크기가지정되면변경될수없음 • Stack에저장되는변수는모두초기화후사용해야함. 배열 자료형[] 변수명 100 num 메모리할당 변수명 = new 자료형[크기] Stack Heap 100번지 변수 선언 변수 선언 num[0] num[1] num[2] • 다음은모두같은의미를가진다 ➢ 요소(index)에값대입 ➢ 강제초기화->크기를지정하지않는다.
  • 12. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 변수 'num'이(가) 초기화되지 않았을 수 있습니다 변수 'arrayNum'이(가) 초기화되지 않았을 수 있습니다 • boolean : false • byte, short, int, long, char : 0 • float, double : 0.0 • class, array : null
  • 13. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 100 10 20 30 numArrayA Stack Heap 100번지 numArrayA[0] 100 100 10 40 30 numArrayA Stack Heap 100번지 numArrayA[0] numArrayB[0] numArrayB 10 Stack 10 10 Stack 10 20 Stack numA numB
  • 14. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 • 한 요소 읽기 : 배열[index] • 전체 일기 : Arrays.toSting(배열) • 반복문 사용 : for ( ; ; ) , for ( : )
  • 15. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 2차원배열 자료형[][] 변수명 자료형 변수명[][] 자료형[] 변수명[] 100 200 300 10 20 30 40 numNarray Stack Heap 100번지 numNarray[0] numNarray[1] numNarray[0][0] numNarray[0][1] numNarray[1][0] numNarray[1][0] 200번지 300번지 numNarray[0][0] = 10 numNarray[0][1] = 20 numNarray[1][0] = 30 numNarray[1][1] = 40 int numNarray[][] = new int[2][2]; int[] numNarray[] = new int[2][2]; Int[][] numNarray = new int[2][2]; ➢ 메모리
  • 16. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 int[][] numNarray = new int[2][3]; numNarray[0] = new int[] {10,20,30}; numNarray[1] = new int[] {40,50,60}; 100 null null numNarray Stack 100번지 numNarray[0] numNarray[1] Heap 100 200 null 10 20 30 numNarray Stack 100번지 numNarray[0] numNarray[1] Heap numNarray[0][0] numNarray[0][1] numNarray[0][2] 100 200 300 10 20 30 40 50 60 numNarray Stack 100번지 numNarray[0] numNarray[1] Heap numNarray[0][0] numNarray[0][1] numNarray[0][2] numNarray[1][1] numNarray[1][2] numNarray[1][0]
  • 17. 2. 배열 2. 변수, 자료형 2-3. 참조 자료형 int[][] numNarray = new int[2][3]; numNarray[0] = new int[] {10,20,30}; numNarray[1] = new int[] {40,50,60}; int[][] numNarray = new int[2][3]; numNarray = new int[][]{{10,20,30},{40,50,60}}; int[][] numNarray = new int[][]{{10,20,30},{40,50,60}}; int[][] numNarray = {{10,20,30},{40,50,60}};
  • 18. 3. 문자열 2. 변수, 자료형 2-3. 참조 자료형 • 자바가제공하는Class • 문자열저장 문자열 String 변수명 = new String(“문자열”); String 변수명 = “문자열” class 100 stack 문자열 heap 변수명 100번지 String 객체(Object) 새로운객체생성 100 stack str 100 100 stack str strCopy 안녕 자바 heap 100 200 stack str strCopy 안녕 자바 안녕 C heap stack 에 변수 복사 stack 에 heap에 새로운 객체를 생성 하여 저장 하고 stack에 있는 변수의 값인 주소를 변경함
  • 19. 3. 문자열 2. 변수, 자료형 2-3. 참조 자료형 (함정 ) • 문자열리터럴로객체를생성하면heap에동일한문자열이있는객체를공유 • new로생성하면무조건생성함 100 100 200 300 stack strA 안녕 자바 안녕 자바 안녕 자바 heap strB strC strD 100 500 200 300 stack strA 안녕 자바 안녕 자바 안녕 자바 안녕 C heap strB strC strD
  • 20. 3. 문자열 2. 변수, 자료형 2-3. 참조 자료형 • 문자열을합쳐서하나의문자열객체생성 • 정수연산이있으면정수연산후문자열로자동Casting후합쳐서문자열객체셍성 안녕 자바 안녕 자바 “안녕” + “자바" 1 2 안녕 자바 3안녕자바 1 + 2 + “자바"
  • 21. 3. 문자열 2. 변수, 자료형 2-3. 참조 자료형 함수명 설명 반환 값 예제 length 문자열의 길이 해당 객체의 문자열 길이를 반환(int형) 합니다. (null은 포함하지 않음) String str = "abcde"; System.out.println(str.length()); isEmpty 문자열이 비어 있는지 확인 문자열의 길이(length)가 0이면 true 반환(boolean형), 0이 아니면 false를 반환 String str = new String(); str.isEmpty()) ? True : false charAt 문자 반환 문자열 중 해당 인덱스의 문자(char형)를 반환합니다. (인덱스는 0 ~ 문자열의 길이(length) String str = new String("abed"); System.out.println(str.charAt(2)); getChars 문자 배열 복사 문자열을 문자(char) 배열로 복사 String str = new String("abcd"); char [] ch = new char[4]; str.getChars(0, 2, ch, 0); System.out.println(ch); equals 문자열 비교 해당 문자열과 매개변수의 문자열이 같은 지 비교하여 true 또는 false를 반환합니다.(boolean형) ( == 는 stack 주소 비교 ) String str = new String("abcd"); String str2 = new String("abc"); str.equals(str2) ? True : false; equalsIgnoreCase 문자열 비교 대소문자 구분 없이 문자열의 실제 내용 비교 compareTo 문자열 비교(사전 순으로 대소 비교) 해당 문자열과 매개변수의 문자열을 사전 순으로 비교합니다. String str = new String("aaa"); String str2 = new String("bbb"); System.out.println(str.compareTo(str2)) indexOf 문자열 위치 해당 문자열이 위치하는 인덱스를 반환합니다.(int형) String str = new String("abcd"); System.out.println(str.indexOf("c")); lastIndexOf 문자열 마지막 위치 해당 문자열이 마지막으로 위치하는 인덱스를 반환합니다.(int형) String str = new String("abcdeabcda"); System.out.println(str.lastIndexOf("c")) subString 문자열 자르기 해당 문자열의 인덱스만큼 잘라서 반환합니다.(String형) String str = new String("abcdefg"); System.out.println(str.substring(2, 6)); System.out.println(str.substring(5));
  • 22. 3. 문자열 2. 변수, 자료형 2-3. 참조 자료형 함수명 설명 반환 값 예제 concat 문자열 합치기 해당 문자열 뒤에 매개변수 문자열을 서로 합칩니다 String str = new String("a"); String str2 = new String("b"); String str3 = new String(); str3 = str.concat(str2); String str4 = str+str2; System.out.println(str3); System.out.println(str4); replace 문자열 치환 해당 문자를 찾아 다음 문자로 변경 String str = new String("abc"); str = str.replace('b', 'k'); System.out.println(str); contains 문자열 포함 해당 문자열이 포함되어 있는지 확인합니다. 포함할 경우 true, 아닌 경우 false 반환(boolean형) String str = new String("abc"); str.contains("bc") ? True : false; split 문자열 분리 문자열을 해당 문자열을 기준으로 모두 분리합니다.(String [] 반환) String str = new String("a b c d e f"); String[] str2 = new String[6]; for(int i = 0; i < 6; i++) { str2[i] = str.split(" ")[i]; } for(int i = 0; i < 6; i++) { System.out.print(str2[i]); } trim 문자열 공백 제거 해당 문자열의 앞, 뒤의 공백을 모두 제거합니다.(문자열 사이의 공백은 제 거되지 않음) String str = new String(" a b c "); String str2 = str.trim(); System.out.println(str2) toLowerCase 소문자 변환 영문 문자를 모두 소문자로 변환 toUpperCase 대문자 변환 영문 무자를 모두 대문자로 변환
  • 23. 1. 변수 구분 2. 변수, 자료형 2-4. 변수 구분 • 메소드내부에서정의되어사용하는변수 • 자동으로초기화되지않음 • 매개변수도지역변수 :메소드이인자로사용되는변수 지역변수(로컬변수) • static 으로선언되어있지않는모든멤버변수 • 객체(클래스의인스턴스)는자신만의복사본을Heap에저장함 :new로생성시마다Heap에할당 :인스턴스변수의값은각각이객체와구분됨 인스턴스변수 • 객체(클래스의 인스턴스)가 아니라 정의된 클래스와 연관되므로 Runtime Data Area의 Method Area에 한 개 존재 : 객체를 많이 생성 해도 하나만 존재 함 : 초기화가 한번만 실행 • static 한정자 - 생성시점 : 최초 new하는 경우 , Class가 최초로 참조 되는 경우 - 일반적으로 상수로 사용 static final double PI=3.14; Class.클래스변수로 접근 : ClassName.PI 클래스변수 변수자동초기화 ▪ 클래스,인스턴스변수는자동초기화됨 : boolean -> false : char -> ‘u0000’ : Byte : short : int : long -> 0 : Float -> 0.0f : Double -> 0.0d : Object type -> null ▪ 자동으로초기화되지않음 : 지역변수, 매개변수 : 매개변수도 지역 변수
  • 24. 2. 변수 구분 예제 2. 변수, 자료형 2-4. 변수 구분
  • 25. 1. JVM 상태 2. 변수, 자료형 2-6. JVM 상태 Method Area - main() - sum() - counter : 0 Stack total : args : main() 2. 메인 실행 Heap Area - NULL Stack total :, args : i : 10, j : 30, sum : 40 Stack total : 40, args : 3. SUM 실행 3. SUM 종료 * MAIN 종료 후 모두 사라짐 1. JvmVariableCycle Class가 시작 할 때 할당 됨 Method Area - main() - sum() - counter : 1
  • 26. 1. 형 변환 2. 변수, 자료형 2-7. 형 변환 • 자료형크기가큰쪽,범위가넓은쪽으로자동변환되는것->형확장->자동변환 ->Up Casting -범위안에있는경우자동Casting 됨 • 자료형크기가작은쪽,범위가좁은쪽으로자동변환되는것->형축소->수동변환->Down Casting “ 시스템에서 자동으로 하는 자동 변환(Up Casting), 개발자에 의해 강제로 하는 수동 변환 (Down Casting) “ 자료형변환 char short int long float double 자동변환 ( 형 확장 ) -> UpCasting 수동변환 (형 축소 ) -> DownCasting byte
  • 27. 1. 형 변환 2. 변수, 자료형 2-7. 형 변환
  • 28. 1. 변수 범위 2. 변수, 자료형 2-8. 변수 범위 • 변수의 선언 위치에 따라서 변수의 수명이 지역 범위를 가지는 지역 변수와 프로그램 전체에 영향을 주는 전역 변수. 외부에서 참조 시 public • 변수 선언 시 static, const keyword를 사용 하면 의미가 변경 됨 “ 위에서 아래는 사용 가능 “ 변수범위 프로그램 a.java 지역변수 함수 전역 변수 전역 변수 b.java 지역변수 함수 전역 변수 전역 변수 A 파일에 선언한 전역 변수를 B파일 사용 A 파일에 선언한 전역 변수와 동일한 변수명을 B에서 사용 (static )