소스파일
파일이름.java
컴파일 javac.exe
javac -d 바이트코드파일 저장위치 소스경로
javac -d bin src/ch01/sec01/Hello.java
바이트코드파일
파일이름.class
javac가 하는 명령 -> 컴파일
클래스 파일 실행하기
java -cp : 바이트코드파일위치 패키지클래스명
java -cp bin ch01.sec01.Hello
자바는 이클립스에서 작성
이클립스 : 무료로 사용할 수 있는 통합개발환경
프로젝트 생성, 자동 코드 완성, 디버깅 개발에 필요한 여러가지 기능을 통합적으로 제공하는 툴
이클립스로
1. 자바 프로젝트 생성 thisisjava
2. 패키지 생성 day01 (src 안에 생성)
3. 클래스 생성 Exam01
컨트롤 + space 자동완성
컨트롤 + alt 방향키 한줄복사
컨트롤 + f11 실행
컨트롤 + s 저장
컨트롤 + d 한줄 삭제
컨트롤 + i 들여쓰기 자동 수정
바이트코드 파일 : 자바 소스파일을 javac 명령어로 컴파일한 파일
JVM : 자바가상기계
-> 바이트코드 파일을 운영체제를 위한 완전한 기계어로 번역하고 실행하는 역할
클래스 선언 : 자바소스 파일은 클래스 선언부와 클래스 블럭으로 구성
실행문 : 변수선언, 값 저장, 메소드 호출에 해당하는 코드
-> 실행문 끝에는 세미콜론(;)을 붙임
자바 개발순서
1) 소스파일을 작성 (.java)
2) javac 명령어로 컴파일 실행
3) java 명령어로 실행
4) 결과 확인
변수 : 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름
메모리에 값을 저장할 수 있도록 함
1. 변수 선언
데이터타입, 변수이름 지정
ex> int num1;
num1 = 10;
num1 = 20;
num1 = "Aa" -> 에러 (문자)
num1 = 1.0 -> 에러 (실수)
(int는 정수)
(변수에 담기는 값 : 할당)
2. 할당 = 대입연산자
ex> num1 = 10;
자바에서 제공하는 기본 타입
(타입 별로 담길 수 있는 값의 종류와 허용범위가 다름)
1. 정수형
byte 1byte
short 2byte
char 2byte
int 4byte
long 8byte
2. 실수형
float 4byte
double 8byte
3. 논리형
boolean 1byte
자바 주석은 // 사용
변수에 값을 담아주는 것 : 변수 초기화
변수 명명 규칙
1. 첫 번째 글자는 문자이거나 '$','_' 이어야하고 숫자로 시작할 수 없음
2. 영어 대소문자 구분 가능
int A int a
3. 첫 번째 문자의 첫 문자는 소문자로 시작하고
다른 단어가 붙을 경우에는 첫 문자를 대문자로 시작 (관례)
userName
userPassword
4. 문자 수의 제한 없음
5. 자바 예약어는 사용할 수 없음
예약어 : 자바 언어에서 의미를 지니고 사용되는 단어
리터럴
10진수 0~9
123
2진수 0~1
1011
8진수 0~7
234
16진수 0~15
#ffffff
10 --> a
11 --> b
12 --> c
13 --> d
14 --> e
15 --> f
이스케이프 문자(escape)
- 역슬러시와 함께 사용
1) \t 탭만큼 뛰움
2) \n 줄바꿈
3) \" "출력
4) \' ' 출력
String str2 = "나는 \"김그린\" 입니다."
변수의 종류
1. 클래스변수
선언 위치 : 클래스 영역 Method 영역
2. 인스턴스변수
선언 위치 : 클래스 영역 Heap 영역
3. 지역변수
선언 위치 : 블럭 내부 Heap 영역
타입변환
1. 자동타입변환 프로모션
2. 강제타입변환 프로모션
- (타입) 캐스팅 연산자
3. 문자열을 기본타입으로 변환
** int num = Integer.parselnt("3000");
byte num2 = Byte.parseByte("20");
double num3 = Double.parseDouble("1.1234");
boolean var1 = Boolean.parseBoolean("true");
4. 기본타입을 문자열로 변경
1) String.valueOf(20)
2) num2 + ""
연습문제
double var1 = 3.5;
double var2 = 2.7;
덧셈 후 소수점 이하는 버리려면?
int result = (int) (var1 + var2) ;
System.out.println(result);
변수와 시스템 입출력
변수에 저장된 값을 모니터에 출력하기
키보드입력값을 변수에 저장하기
시스템 표준 출력장치 : 모니터
시스템 표준 입력장치 : 키보드
System.out.println("내용")
: 모니터에 내용을 출력하기
println() 괄호 안의 내용 출력하고 줄바꿈해줌
String str = "김그린"
ex> println("내 이름은" + str + "입니다.")
printf() 괄호 안의 문자를 형식 문자열 대로 내용을 출력함
printf("형식문자열", 값1, 값2)
String str = "김그린"
ex> printf("내이름은 %s 입니다", str)
print() 괄호 안의 내용을 출력함
printf("내 이름은 %3$s이고 나이는 %2$d이다.", "자바", 30, "그린") : 3$ - 이름에 3번째 값이 들어감
%[순번$] [flags] [width] [.presision] --> 생략 가능,
conversion (%s - 문자열, %d - 정수) ---> 생략 불가능
flags : -,생략,0
-> 플래그 생략하면 왼쪽 빈자리 공백
-> -는 오른쪽 빈자리 공백
-> 0은 왼쪽 빈자리를 0으로 채움 (정수,실수형일 때만 가능, 문자열은 불가능)
%d 정수
%10d 자릿수 지정 -> 공백 생김
%s 문자열
%f 실수