8. 자바 기초(2)
자바의 기초 언어를 공부하자.
8. 자바 기초(2)
들어가기전… 짤지식
C ⇒(컴파일러)⇒ 어셈블리어 ⇒(어셈블러)⇒ 기계어
인스트럭션 셋 → 명령어 묶음 (기계어 명령 설명서)
- 인스트럭션 = 기계어
Package(패키지)
역할에 따라 클래스를 분류하는 문법 : Package
- bitcamp-mystudy/ ← git 저장소
- java-lang/ ← project 폴더 (root)
- app/ ← main project
- src/
- main/
- java/ ← 소스 폴더
- study/ ←요기부터 하위 모두 패키지
- lang/ ←패키지
- test.java
- lang/ ←패키지
- study/ ←요기부터 하위 모두 패키지
- kotiln/
- java/ ← 소스 폴더
- test/
- main/
- src/
- app/ ← main project
- java-lang/ ← project 폴더 (root)
pakage에 속해있는 java 파일을 컴파일 시킬 때 빌드 위치를 패키지가 알아서 잡아준다. app/build/classes/main에 study/lang 패키지에 있는 java 파일을 컴파일 하려고 한다면…
1
javac -d app/build/classes/java/main/
- main하위에 study/lang/~.class 로 자동 생성된다.
1
javac -d app/build/classes/java/main/study/lang
- study/lang/study/lang/~.class로 생성된다
실행을 할때에 패키지는 /가 아닌 .으로 나타낸다.
1
java -cp app/build/classes/java/main study.lang.~class
들어가기전… 짤지식
polyglot : 다국어, 프로젝트에 적용 시 다양한 언어로 프로젝트를 구성하는 것
주석(comment)
1. traditional comment
1
/* ~ */
- 여러줄의 코드를 주석 처리 하고 싶을 때 사용.
- .class 파일엔 포함이 되지않는다.
2. end-of-line comment
1
//
- 한줄의 코드를 주석 처리 할 때 사용.
- .class 파일엔 포함이 되지않는다.
3. javadoc 주석
1
2
3
4
5
6
7
8
9
/** 클래스에 대한 설명 */
class A {
/** 필드에 대한 설명 */
int a
/** 메서드에 대한 설명 */
void x( ) { ~ }
}
- javadoc으로 실행 할 경우 HTML API 문서가 자동 생성되는 주석이다.
- API 문서 : App Programming 할 때 사용하는 클래스나 메서드(Interface : 도구)의 사용 설명서
1
javadoc -d (APIfile path) -sourcepath (javafile path) (javafile 이름)
→ 만약 생성된 .java와 API 문서의 인코딩 방식을 정해준다면 -d 앞에 -encoding UTF-8 -charset UTF-8 를 더해 붙여준다.
- .class 파일에 포함되지않는다.
4. Annotation 주석
1
2
3
4
5
@Data
class A{
@Autowired int a
@Override void ~
}
- 컴파일러나 JVM에게 전달하는 특별한 정보로 이루어진 주석
- 이 주석만 유일하게 .class 파일에 포함이 가능하다
Literal(리터럴) : 값을 표현한 것
primitive Data Type
→ 자바에서 데이터를 구분하는 기본 분류
- 정수
- byte (1byte) : -128~127 / literal : -
- short (2byte) : -32768~32767 / literal : -
- int (4byte) : 약 -21억~21억 / literal : 100
- long (8byte) : 약 -922경~922경 / literal : 100L, 100l
- 부동소수점
- float (4byte) : 소수점 이하 약 7자리까지 / literal : 3.14f, 3.14F
- double (8byte) : 소수점 이하 약 15자리까지 / literal : 3.14
- 문자 (2byte) : ‘가’, ‘A’, ‘8’, ‘@’
- 논리값 : true, false
- JVM에서 boolean에 대한 명확한 byte 값은 없음. 하나 일때 int의 크기, 배열인 경우 개당 1byte를 가진다.
- 문자열 : “가”, “abc”, “123”
- null : 주소를 설정하지 않음
정수의 진수 표기
- 10진수 : 100
- 2진수 : 0b01100100
- 8진수 : 0144
- 16진수 : 0x064
부동소수점의 진수표기
부동(float-point)
- 3.14 ← 고정소수점
- 31.4e-1, 314e-2, 0.314e1, 0.0314e2 ← 부동소수점
문자 Literal
‘A’ = ‘\u 유니코드값’
- 키보드 자판으로 입력할 수 없는 문자를 다룰 때 유용하다.
- 문자에 대해 2byte의 숫자를 부여해서 메모리에 저장한다.
- ob 0000 0000
문자의 메모리 저장
- 문자는 전기적 신호로 저장됨
- 비트 신호로 저장됨
- 비트 신호를 쉽게 표기하기 위해서 2진수를 사용함
- 2진수를 좀 더 쉽게 표기하기 위해서 16진수를 사용한다.
- 컴퓨터 간에 저장의 일관성을 위해서 문자를 저장하는 규칙을 정의한다.
- 문자를 저장하는 규칙 : character set
문자 집합 ASCII
ASCII = American Standard Code for Information Interchange = 7bit
- 128 = 33개의 출력 불가능 제어문자 + 공백(space) + 95개의 출력 가능한 문자(A~z)
자주 사용하는 아스키코드
- A 1000001 (0x41), B 1000010 (0x42) ~
- a 1100001 (0x61), b 1100010 (0x62) 까지
- 0100000 (0x20) (space)
- ? 0111111 (0x3F)
- = 0111101 (0x3D)
- % 0100101 (0x25)
📍escape character : 제어문자
- CR(carriage return) 0001101(0x0D)
- LF(line feed) 0001010 (0x0A) → 두 개를 합쳐 줄바꿈임
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.