본문 바로가기

국비 2019.03.11/3월

03.13

수업정리)


1) 저급언어, 기계어는 물리장치에 맞춰서 만들어진것(운영체제가 바뀌면 맞춰서 새로 작성해야된다.)

2) javac은 컴파일러 java는 인터프리터. cmd에서 한것은 실행코드로 번역하지 않고 인터프리터로 바로 실행한것. 


- 1차 프로젝트는 : 스윙/awt 으로. 팀별. 다다음주 주제 만들어오기 ppt

3) 이클립스를 이용해 자바 프로젝트를 만드는 이점: 1. 편집기의 수준이 높음. 2. 폰트 사이즈 컨트롤+/-  3.들여쓰기 기능

4) 자바와 c언어의 차이점/ 자바의 특징: 메모리관리 최소화, 포인터 불편함 삭제. c는 코드에 통일성, 표준이 없어 모호함.

 c++를 보수한것이 자바. c++/자바와 c의 차이점: 클래스생성. 언어의 단순성. c언어의 문법구조를 가지고있다.

-> 객체생성, 제거. 객체의 포인터 제거, 데이터 구조 정의에서 struct 제거, 다양한 인코딩 방법. 함수는 메소드로만 사용한다.

 *간결성, 언어에 컬렉션 포함. 완전한 객체지향


5) 자바 값의 종류

값의 진법 변환: (0)00/000/000 8진법/ 0000/0000 16진법 ex)1011/0111   11/7  -> B7(16진수)

ex) 26(4바이트의 정수형)/26L(64비트의 정수형) = 0x1a(16) = 032 = 0b11010 = 0x1aL(64비트의 정수를 16진수로 표현)


- 정수는 32개 비트. 실수는 64개 비트(소수점 사용을 위해) 123.4f(실수를 표현할때 사용 FLOAT/명시적으로 8비트를 지정하려면 123.4d 써주기)

1.234e2는 왼쪽으로 2칸 옮겼다는 뜻. / 오른쪽 방향이면 -e/1.234e2d(명시적으로 지정.123.4의 double형)


* 자료형)

분류
이름
바이트 수
비고
정수형
byte
1
-127 ~ +128
short
2
-32,768 ~ + 32,767
int
4
-2,147,483,648 ~ +2,147,483,647
long
8
-9,223,372,036,854,775,808~
+9,223,372,036,854,775,807
실수형
float
4
단정도 실수형 (유효 자리는 7 정도임)
double
8
배정도 실수형 (유효 자리는 15정도)
문자형
char
2
유니코드 문자열
논리형
boolean
1
true, false


-> 묵시적 형변환: 작은 수를 큰 수의 형으로 변경시에는 자바에서 자동으로 묵시적 형변환을 실행한다.

*자동형변환 순서: byte -> short/char -> int -> long -> float-> double (역은 명시적으로 해야한다)


-> 명시적 형변환: 큰 수를 작은 수로 변경하는 경우엔 값의 소실이 일어나기 때문에 묵시적 형변환이 되지 않아 명시적으로 형변환 해줘야 한다. 


- 실수형식: float x = 3.5;의 문제점은 실수형의 기본이 double이라 에러난다. double x =20 + 3.5f 가능(int형인 변수는 자동 형 변환규칙으로 float으로 형변환이 이루어진다. 20.0f+3.2f가 되는것이다. 자료형이 double이라 float형 20.0f+3.5f는 double형으로 자동변환되어 저장된다.)


* int num =30; long num2 =(long)num이렇게 코드를짜고 부족한 4바이트는 0으로 채워진다.(이상적인 코드)  // 이클립스에서 자동으로 형변환해줘서 int를 long에 넣는것은 가능하다. 

*byte, short 이클립스에서 돌아가는데..?


-자바 컴파일 과정: 1단계) 형태소 분석 - 단어단위로 자른다  2단계) 구문분석 3) 의미분석 4) 기계어로 변환하기 위한 중간코드(바이트코드, 의사코드, 슈도코드) 생성  => 여기까지가 javac단계 /cpu가 번역하는 기계 단계 5) 최적화 단계 6) 물리코드 생성 =>java 단계



'국비 2019.03.11 > 3월' 카테고리의 다른 글

03.14 과제  (0) 2019.03.14
03.14 수업정리  (0) 2019.03.14
03.13 과제 정리  (0) 2019.03.13
03.12 자바 프로그래밍  (0) 2019.03.12
1주차 (03.11) 컴퓨터 프로그램  (0) 2019.03.12