<복습>
ㅇ환경변수
ㅇJDK 설치폴더의 bin폴더 - 다양한 명령어 있음 - 대표적으로 컴파일하는 javac 명령어, 컴파일된 파일을 실행하는 java명령어가 bin 안에 있음.
javac와 java 명령어는 bin 안에 있기 때문에 다른 폴더에서 실행 불가. 다른 폴더에서 실행하려면 환경 변수 Path에 bin 폴더를 등록해야 한다. --> 시스템 변수에서 Path 환경변수를 편집한다. bin을 등록하고 맨 위로 올려줘야 한다. 왜냐하면 명령 라인에서 명령어를 찾을 때 등록된 순서대로 찾기 때문이다.
ㅇ.java 확장자인 자바 소스 파일을 컴파일러인 javac 명령어로 컴파일한다. 컴파일에 성공하면 확장자 .class인 '바이트 코드 파일'이 생성된다. 이는 완전한 기계어가 아님. 이 바이트 코드 파일을 완전히 기계어로 번역해 실행을 하려면 java 명령어를 사용해야 함. 바이트 코드 파일은 '자바 가상 기계 (JVM)' 이라는 번역기가 필요함. 자바의 큰 장점임. 바이트 코드 파일을 다양한 운영체제에서 사용할 수 있도록 하는 것임. JVM만 운영체제에 맞게 이용하면 됨. 즉, 하나의 바이트 코드 파일을 개발하면 각 운영체제에 맞는 기계어로 변역할 수 있음.
ㅇ뉴 자바 프로젝트 생성시 JRE를 자바8 이상으로 설정 --> New module-info.java 대화상자 나타남. 모듈명은 기본적으로 프로젝트명....
ㅇmodule-info.java 편집 뷰에서 앞으로 기본적으로 이렇게 작성하고 닫아주자.
Java JDK 가 제공하는 모든 모듈이 필요함을 의미한다.
ㅇ 자바는 소스 파일 및 컴파일된 바이트 코드 파일들을 기능별로 쉽게 관리하기 위해 패키지를 사용한다.
폴더와 비슷. 패키지가 없는 프로젝트는 거의 없다고 한다.
ㄴ 자동 컴파일된 바이트 코드 파일은 bin 폴더 내부에 생성된 패키지 폴더에 생성된다.
ㄴ 이클립스에서는 소스 코드를 저장하면 자동으로 컴파일된다. 컴파일하는 메뉴가 따로 없다.
ㅇ이클립스에서 소스 파일 작성하고 실행해보기
오케이~
ㅇ명령 라인에서 컴파일하고 실행하기
ㄴ이클립스 개발 환경이 아니라 명령 라인에서 javac와 java 명령어로 소스 파일을 직접 컴파일하고 실행해야 하는 경우가 있다고 한다.. 해봅쉬댜
1. 명령 프롬프트에서 chap1폴더로 이동
2. src 폴더에 있는 소스 파일을 javac 명령어로 컴파일해서--> 바이트 코드 파일을 bin폴더에 생성해보자.
+src 폴더에는 소스 파일이 요로코롬 들어있다.
+JDK11 이후부터는 모듈 기술자 module-info.java도 컴파일 대상에 반드시 포함해야 한다. 모듈 기술자에 requires 키워드로 의존성 모듈이 기술되이 있기 때문이라 한다...
javac 명령어로 컴파일 하기
javac -d 바이트 코드 파일 저장 위치 소스 경로/module-info.java 소스경로/*.java
javac 명령어로 컴파일한 후 tree /f /a 명령어를 실행하면
bin 폴더에
module-info.class와
바이트 코드 파일(sec03/exam01/Hello.class)가 생성된 걸 볼 수 있다.
여기까지.. 소스파일을 javac명령어를 통해 컴파일하여 바이트 코드 파일을 생성해봤다.
이제 java 명령어로 파이트 코드 파일을 실행해보자.
java -p 바이트코드파일저장위치 -m 모듈/패키지이름...클래스이름
(바이트 코드 파일은 .class가 붙지만, java 명령어를 사용할 때에는 생략한다.)
다음..
프로그램 소스를 분석해보자. Hello.java 소스 파일을 보자.
ㅇ패키지에서 소스 파일이 생성되었기 때문에 맨 위에 패키지를 선언한다.
여기까지.. 소스 코드 작성하고 컴파일하는 과정을 알아봤다. 컴파일하면 바이트 코드 파일이 생성되고 이건 .class 클래스 파일이라고 한다. 명령 라인에서 컴파일은 javac 명령어를 통하고, 바이트 코드 파일이 만들어지면 이것의 실행은 java 명령어를 통해 이루어진다. class 안에 있는 메인 메소드는 엔트리포인트이고, 명령 라인을 통해 바이트 코드 파일을 실행할 때 가장 먼저 main 메소드를 실행한다.
오케잉잉용~~
췍췍
변수 이름
ㅇ예약어로 하면 컴파일 에러가 난다.
ㅇ_랑 $만 첫글자로 가능쓰 숫자 안됨
ㅇ관례가 있다. 첫영소문자다른단어대문자 ex) carBodyColor 아하 이게 관례였구나
변수
ㅇ변수를 초기화 해주어야 메모리 번지에 값이 저장된다.
ㅇ자바의 모든 변수는 중괄호 {} 블록 내에서 선언되고 사용된다.
ㅇ메소드 블록 내에서 선언된 변수를 로컬 변수라고 한다. 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.
ㅇ변수는 기본적으로 선언된 블록 내에서만 사용 가능하다. 메소드 블록 내의 중괄호 블록에서도 마찬가지이다.
타입
ㅇ실수저장 타입 float, double
ㄴfloat: 4byte(32bit)
ㄴdouble: 8byte(64bit)
저장되는 값의 허용 범위는 double이 훨씬 크다. 정밀도도 2배정도 높다. (<--double)
++자바는 실수 리터럴을 기본적으로 double로 인식한다. float타입 변수에 저장하고 싶으면 리터럴 뒤에 f나 F를 붙여줘야 한다.
++5e2 --> 5.0 x 10^2 = 500.0, 0.12E-2 = 0.12 x 10^(-2) = 0.0012 (가수 부분이랑 지수 부분으로 표현됨)
ㅇ정수저장 타입 byte, char, short, int, long
ㄴbyte: 1byte(8bit): -2^7 ~ 2^7 -1
ㄴshort: 2byte(16bit): -2^15 ~ 2^15 -1
ㄴchar: 2byte(16bit): 0 ~ 2^16 -1
ㄴint: 4byte(32bit): -2^31 ~ 2^31 -1
ㄴlong: 8byte(64bit): -2^63 ~ ~ 2^63 -1
@long타입은 수치가 큰 데이터를 다루는 프로그램에서 사용.. 은행or과학
기본적으로 컴파일러는 정수 리터럴을 int로 인식하기 때문에 int범위를 벗어나는 정수값을 long으로 선언하려면 정수 뒤에 L 또는 l을 붙인다. long = 1000000000000L;
@char은 문자 리터럴과 관련 있다. 문자 리터럴은 하나의 문자를 작은따옴표로 감싼 것이다. 문자 리터럴은 유니코드로 변환되어 저장된다.
유니코드: 문자를 2byte로 표현할 수 있는 숫자 0~65335(=2^16-1)로 대응시킨 국제 표준 규약.
자바는 유니코드를 저장할 수 있도록 2byte 크기인 char을 제공한다.
10진수 or 16진수 형태로 유니코드를 저장한다.
ㄴint에 문자 리터럴을 저장하면 출력할때 유니코드 자체가 출력된다.
ㄴchar에 문자 리터럴을 저장하면 출력할때 문자로 변경하여 표시한다.
++큰따옴표로 감싸면 문자열이라고 한다. 컴파일러는 ''와 ""를 통해 문자 리터럴과 문자열 리터럴을 구분한다.
문자열을 변수에 저장하려면 String이라는 클래스 타입 (!=기본타입)을 사용한다.
cf) 리터럴(literal) : 소스 코드에서 프로그래머에 의해 직접 입력된 값.
입력된 리터럴 중 자바가 정수로 인식하는 경우는 다음과 같다.
ㅇ2진수: 0B or 0b로 시작하고, 0과1로 구성된 형태 --> 0b1011, 0b10100
ㅇ8진수: 0으로 시작하고, 0~7숫자로 구성 --> 013(=1x8^1 + 3x8^0 = 11) 0206(=2x8^2 + 0x8^1 + 6x8^0= 134)
ㅇ10진수: 0~9 숫자로 구성
ㅇ16진수: 0x또는 0X로 시작하고, 0~9 숫자와 ABCDEF 또는 abcdef로 구성된다. (0xB3, 0x2A0F)
이스케이프 문자 (\) 역슬래시
문자열 내부에 특정 문자 포함시킬 수 있음. ex) String str = "나는 \"완전\" 예뻐";
출력 제어도 가능하다.
\t -->탭만큼 띄우기
\n -->개행
논리타입
'JAVA' 카테고리의 다른 글
[혼자 공부하는 자바] 6/28 02-4 변수와 시스템 입출력 (0) | 2020.06.28 |
---|---|
[혼자 공부하는 자바] 6/28 02-3 형변환 (0) | 2020.06.28 |
[혼자 공부하는 자바][신용권] 목차 (0) | 2020.06.28 |
[JAVA] 클래스의 구성요소 / 필드(field) (0) | 2020.04.22 |
[JAVA] 변수타입 / 참조형 변수 String / String 클래스 (0) | 2020.04.22 |