210721(수)_DAY 03
[수업 목표]
1. 자바의 기본 자료형과 참조형 중 기본 자료형 및 변수(지역변수: 매소드 안에 선언되는 변수, 반드시 초기값), 값 등을 선언하고 활용할 수 있다.
2. 자바 연산자의 종류를 살펴보고 이해할 수 있다.
- 산술, 비트, 논리(|, &, ^) _ (&&,||), 비교, 삼항, 쉬프트, [++,--], 대입연산자, 삼항연산자
- CRUD > 주소 ( . * > & ) System.out.println() > 참조 > 환경설정파일 (변수 =값; key =value; {key:value))
*프로그램은 CRUD가 빨라야 한다. *
- API > java.lang.System > out > PrintStream > print() println() printf(String format, object ... args);
정수(byte, short, int, long), 실수(float, double), 문자(char), 문자열(java.lang.String)
%d %o %x %g %f %c %s
- 클래스(속성 _값 + 메시지_메서드) > 상속 > 다형성
.java > .class > package > project > jar
project > package > java
서울시.강남구.도곡동 class 47번지{}
[class]
class = 자료형 = 자바의 실행단위
class = 값 + 기능
class = 속성 + 메소드
class = static final + user_method()
[선언 방법]
접근제한자 class userName{ }
[OS = M/M = Memory Map]
- cs (code segment): 코드를 관리하는 영역
- ds (data segment): 값을 관리하는 영역
- static: 정적영역으로 class, union, struct, static,user_function() 등이 선언되면 관리되는 영역으로 선언과 동시에 주소를 가지면서 bind
- heap: 자유 영역 공간 (= 동적할당 공간/)
프로그램 실행시에 다른 프로세스가 실행되지 않은 공간을 할당받아 실행되고 (동적할당 = 생성 = new)
실행이 끝나면 소거 되는 공간 (소멸, GC-garbage collector- 영역)
- stack: 고정영역으로 지역변수, 지역값 등을 고정적으로 관리하는 영역
[자바의 식별자 규칙]
: 클래스이름, 인터페이스이름, 메소드 이름, 변수이름, 상수이름, 배열 이름을 구별할 수 있는 규칙
1. 대소문자를 구별한다. eg/ ABc, ABC, aBC, abc, aBc
2. 132자는 넘지 않는다.
3. 숫자로 시작하지 않는다. eg/ 4test.java
4. 공백을 추가하지 않는다. eg/ class abc def{}
5. 키워드로 생성하지 않는다. eg/ for.java while.java
- 참고 사이트: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
6. 특수문장 중 예약과 관련된 이름으로 시작하지 않는다. eg/ $, #, &, *
[자바의 리터럴 규칙]
- Boolean: True, False
- 정수(int, long): 소수 없는 수
- 실수(float, double): 소수점 지수
- 문자(하나): char
- 문자열(하나 이상): String
[값을 출력하는 표준 출력 메소드]
- print(): 줄바꿈 X
- println(): 줄바꿈 O
- printf(): 포맷지정
eg/ public PrintStream printf(String format, Object... args)
[data size와 형 변환]
<───────────────────────────────── 명시 형 변환 | |||||
byte(1) → | short(2) → | int(4) → | long(8) → | float(4) → | double(8) |
char(2) | |||||
─────────────────────────────────> 자동 형 변환 |
- 명시 형 변환: 큰 데이터 타입의 자료형을 작은 데이터 타입의 변수에게 전달할 때 해당 데이터 타입으로 선언해주는 것
- 자동 형 변환: 작은 데이터 타입의 자료형을 큰 데이터 타입의 변수에 전달이 자동으로 이루어지는 것
cf/ 0,1 = bit * 8 =8bit = 1byte = -128~127
double d =100; // d(8byte) =100(4);
float f = (float)90.4; // f(4byte) = 90.4(8byte);
[연산자]
- | & ^
| | & | ^ | |
A B | A|B | A&B | A^B |
0 0 | 0 | 0 | 0 |
1 0 | 1 | 0 | 1 |
0 1 | 1 | 0 | 1 |
1 1 | 1 | 1 | 0 |
- |: 비트 AND 연산자
- &: 비트 OR 연산자
- ^: 비트 XOR 연산자
eg/
10 & 2 = 2
00000000 00000000 00000000 00001010
00000000 00000000 00000000 00000010
& ───────────────────────
00000000 00000000 00000000 00000010
10 | 2 = 10
00000000 00000000 00000000 00001010
00000000 00000000 00000000 00000010
| ───────────────────────
00000000 00000000 00000000 00001010
- >>와 <<
>>: 오른쪽으로 2칸 밀기
<<: 왼쪽으로로 2칸 당기기
eg/
a= 2;
b= a >> 2; //뒤로 2칸 밀기
c= a << 2; //앞으로 2칸 당기기
a 00000000 00000000 00000000 00000010
b 00000000 00000000 00000000 00000000
c 00000000 00000000 00000000 00001000