개발일지/수업내용

210721(수)_DAY 03

jungwonyu 2021. 8. 1. 17:12
728x90

[수업 목표]

 

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