이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO이것이 자바다 익명 객체 + Chap.11 기본 API 클래스(java) 발표용 PPT.
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
프론트엔드스터디 E03 - Javascript intro.Young-Beom RheeJavascript 흐름, 동적데이터타입(Dynamic typing), 연산자, 객체, 배열, 동적 파라미터, Script 선언위치 등 Javascript를 처음 접했을때 꼭 이해해야 되는 내용들에 대해서 알아봅니다.
이것이 자바다 Chap.11 기본 API 클래스(java)(KOR)MIN SEOK KOO이것이 자바다 익명 객체 + Chap.11 기본 API 클래스(java) 발표용 PPT.
간단하게 정리한 것.
이것이 자바다 책을 기반으로 작성한 강의용 PPT입니다.
부족한 게 많으니 쓰실 때에는 추가하셔서 쓰세요~
참고 자료 : 이것이 자바다
사진 첨부 : http://palpit.tistory.com/
프론트엔드스터디 E03 - Javascript intro.Young-Beom RheeJavascript 흐름, 동적데이터타입(Dynamic typing), 연산자, 객체, 배열, 동적 파라미터, Script 선언위치 등 Javascript를 처음 접했을때 꼭 이해해야 되는 내용들에 대해서 알아봅니다.
Javascript introduction, dynamic data type, operatorYoung-Beom Rhee대상 : Javascript를 언어로 처음 접하는 개발자
범위 : Javascript의 흐름, 문맥(Context)를 모르면 이해할 수 없는 Dynamic typing(동적 데이터 타입), 멘붕을 마음껏 선사할 헷갈리는 연산자
JVM 메모리 해부학Greg Lee 오픈서베이의 새로운 결과 분석 서비스인 오픈애널리틱스를 개발하던 중 발생한 자바 메모리 이슈를 계기로 미시적 관점에서 JVM 메모리 할당을 분석/정리했습니다.
구체적으로, Integer / Long 등의 Object 형 타입과, ArrayList, / LinkedList / Set 등의 자료구조의 메모리 사용을 JDK코드 분석과 각종 도구를 통해 측정하고, 이를 효과적으로 사용하기 위한 방법을 탐구합니다.
파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영) Tae Young Lee파이썬 데이터과학 레벨1 - 초보자를 위한 데이터분석, 데이터시각화 (2020년 이태영)
- 파이썬 중고급 문법부터 실전 예제까지
- 국내 어떤 책에서도 다루지 않는 진짜 데이터분석 강의
- (귀차니즘에..) 소수 금융권/대기업/공기업에게만 강의된 자료
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번지
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 )
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
▪ 자동으로초기화되지않음
: 지역변수, 매개변수
: 매개변수도 지역 변수
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
28. 1. 변수 범위
2. 변수, 자료형
2-8. 변수 범위
• 변수의 선언 위치에 따라서 변수의 수명이 지역 범위를 가지는 지역 변수와 프로그램 전체에 영향을 주는 전역 변수.
외부에서 참조 시 public
• 변수 선언 시 static, const keyword를 사용 하면 의미가 변경 됨
“ 위에서 아래는 사용 가능 “
변수범위
프로그램
a.java
지역변수
함수
전역 변수
전역 변수
b.java
지역변수
함수
전역 변수
전역 변수
A 파일에 선언한 전역 변수를
B파일 사용
A 파일에 선언한 전역 변수와
동일한 변수명을 B에서 사용
(static )