기존 학습 내용 복습
JDK : Java Development Kit
JRE : Java Runtime Enviroment
JDK 와 JRE 의 관계
JDK 는 자바를 개발할 수 있는 키트, JRE 는 자바를 실행할 수 있는 도구
JVM : Java Virtual Machine
컴파일 : 사람의 언어로 만든 소스 코드를 기계어로 번역하는 과정
javac Hello.java 를 컴파일하면 생기는 파일은 ?
- Hello.class
자바 파일을 컴파일하여 생성된 파일은 ?
- 클래스 파일
운영체제에서 독립적으로 바이트코드가 실행될 수 있는 이유는 ?
- 운영체제에 맞게 설계된 JVM 덕분에
경로 Path 를 설정하는 이유는 ?
- 소스 파일을 컴파일 하거나 실행하려고 할 때 원하는 버전의 자바로 실행할 수 있도록
bin 은 무엇의 약자인가
- binary
bin 디렉토리 안에는 무엇이 있나
- 자바를 실행하기 위한 exe 파일들이 있음
dll 확장자는 무엇인가
- Dynamic Linking Libary
LTS 는 무엇의 약자인가
- Long Term Support
변수 타입
숫자 정수형 : byte, short, int, long // byte ( 1 byte ), short ( 2 byte ), int ( 4 byte ), long ( 8 byte )
숫자 실수형 : float, double
문자형 : char, String
참거짓 : boolean
유효범위 ( Scope )
자바는 중괄호 안에 선언된 변수는 밖으로 벗어날 수 없다
전역 변수 - 클래스 변수
지역 변수 - 로컬 변수
지역 변수 오류 예시
public static void main(String[] args) {
int v1 = 15;
if ( v1 > 10){
int v2;
v2 = v1 - 10;
System.out.println("v2 의 값 : " + v2);
}
int v3 = v1 + v2 + 5; // v2 변수는 if 문 안에서 선언되어 컴파일 오류 발생
System.out.println(v3);
}
16 진수 출력 해보기
public static void main(String[] args) {
int var4 = 0xB3;
System.out.println("var4 : " + var4); // 10진수 값인 179 출력
}
long 변수 선언해보기
long var5 = 454452342444; // 숫자의 기본 변수형은 Integer 로 long 선언 시 long 변수임을 알려줘야 함
long var5 = 454452342444L; // 숫자 뒤에 l 또는 L 을 붙여 long 형임을 인식 시켜줘야 함, 주로 대문자 입력
char 형
char 는 숫자를 유니코드로 변환하여 저장하기 때문에 숫자를 저장하여도 숫자에 맞는 문자를 출력
public static void main(String[] args) {
char var1 = 'A';
char var2 = 65;
char var3 = 97;
System.out.println(var1); // A 출력
System.out.println(var2); // A 출력
System.out.println(var3); // a 출력, 알파벳 대문자와 소문자는 유니코드 32 차이
}
이스케이프 문자
String var5 = "홍길동\n전우치"; // 홍길동과 전우치 사이에 줄바꿈 실행
String var6 = "홍길동\t전우치\t이순신"; // 홍길동, 전우치, 이순신 사이에 tab 간격만큼 벌어짐
String var7 = "저는 지금 \"자바\"를 배우고 있습니다" // 저는 지금 "자바"를 배우고 있습니다 출력
실수형 변수
float var1 = 3.14F; // 실수형은 double 이 기본이기 때문에 숫자 뒤에 F 를 붙여
// 컴파일러가 float 형임을 알려줘야 함
double var2 = 3.14;
소숫점 등록하기
double var3 = 314e-2; // 314 에 10 의 -2 제곱을 곱한다는 의미
double var4 = 314e2; // 314 에 10 의 2 제곱을 곱한다는 의미
System.out.println(var3); // 3.14 출력
System.out.println(var4); // 31400.0 출력
자동 형 변환
byte < short < int < long < float < double
byte a = 1;
int b = a;
System.out.println(b); // 정상적으로 1 출력
수동 형 변환, 캐스팅 ( casting )
int a = 10;
byte b = (byte) a; // 역순은 자동으로 형 변환이 어려워 a 의 값을 (byte) 로 수동 형 변환을 해야 함
System.out.println(b); // 10 출력
byte 끼리의 연산, 자바에서의 연산은 자동으로 int 형으로 변환하여 연산 진행
int 보다 상위 연산자 끼리의 연산은 상관 없음
byte a = 10;
byte b = 20;
byte result = a + b; // 컴파일 오류 발생
byte result = (byte) (a + b); 혹은
int result = a + b; 로 작성해야 오류가 발생하지 않음
실수의 자동 형 변환
float c = 1.23F;
float d = 1.23F;
double e = 1.23;
double result1 = c + d; // float 끼리의 연산도 자동으로 double 변환
System.out.println(result1); // 2.4600000381469727 출력
double result2 = d + e; // float 과 double 연산도 자동 형 변환
System.out.println(result2); // 2.4600000190734863 출력
정수의 나눗셈
public static void main(String[] args) {
int a = 1;
int b = 2;
double result = a / b; // a / b 는 int 연산이라 소숫점이 존재하지 않아 소수 값이 버려짐
System.out.println(result); // 0.0 출력
}
연산의 데이터 타입 결정하기
public static void main(String[] args) {
int i = 1;
double d = 2;
double result1 = a + b; // int 보다 데이터 타입이 더 큰 double 으로 결정
System.out.println(result1); // 3.0 출력
}
데이터 타입 변환하는 방법
public static void main(String[] args) {
double result = (double) a / b;
double result = (double) a / b;
double result = a / (double) b;
double result = a * 1.0 / b;
}
위 방법 중 첫 번째 방법이 가장 많이 쓰임
문자열 선언하기
public static void main(String[] args) {
String a = "안녕하세요";
String b = "Hello";
int c = 4;
System.out.println(a + b + c + c); // 안녕하세요Hello44 출력, 자동 형 변환됨
System.out.println(c + c + a + b); // 8안녕하세요Hello 출력
}
문자열을 정수형이나 실수형으로 변환하기
public static void main(String[] args) {
int e = Integer.parseInt("3");
System.out.println(e + e); // 6 출력
double f = Double.parseDouble("0.3");
System.out.println(f + f); // 0.6 출력
}
모니터로 변수값 출력하기
System.out.println 해석하기
System. - 시스템이 가지고 있는
out. - 출력 장치로
println(); - 괄호 안의 내용을 출력하고 행을 바꿔라
Scanner 변수 사용하기
public static void main(String[] args){
Scanner scanner = new Scanner(System.in); // scanner 변수 선언
String b = scanner.nextLine(); // Enter 전까지 입력된 줄을 b 문자열에 저장
System.out.println(b);
int i = scanner.nextInt(); // 입력된 정수 값을 int 형 i 에 저장
System.out.println(i);
}
문자열 비교하기
문자열 간의 비교는 "==" 가 아닌 equals() 함수를 이용해야한다
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String e = scanner.nextLine();
String d = "Hello";
System.out.println(e==d); // Hello 입력 시 false 출력
System.out.println(e.equals(d)); // Hello 입력 시 true 출력
}
증감식 작성하기
public static void main(String[] args) {
int a;
a = 1;
System.out.println(a);
a += 1; // a = a + 1; 과 동일
System.out.println(a); // 2 출력
a++; // a 값에 1 을 더함
System.out.println(a); // 3 출력
}
증감식 예시
public static void main(String[] args) {
// 증감식
int a = 1;
a += 1; // a = a + 1; 과 동일
a++; // a 의 값에 1 을 더함
++a; // a 의 값에 1 을 더함
int b = a++; // b 에 a 값을 대입시킨 후 a 값 증가
System.out.println(b); // 4
System.out.println(a); // 5
b = ++a; // a 값을 증가시킨 후 해당 값을 b 에 대입
System.out.println(b); // 6
System.out.println(a); // 6
}
비교 연산자의 종류
+, -, *, /, % : 사칙연산 및 나머지 계산
+, - : 양수와 음수 부호
+ : 문자열 연결
=, +=, -=, *=, /=, %= : 우변의 값을 좌변의 변수에 대입
==, !=, >, <, >=, <=, instanceof : 값의 비교
!, &, |, &&, || : 논리 부정, 논리곱, 논리합
(조건) ? true 값 : false 값 // 삼항 연산자
삼항 연산자와 if문
public static void main(String[] args) {
int a = 88;
if (a > 90) {
System.out.println("A급");
} else if (a > 80){
System.out.println("B급"); // B급 출력
} else {
System.out.println("C급");
}
System.out.println((a>90) ? "A급" : "B급"); // 조건이 참이면 앞의 값 실행, 거짓이면 뒤의 값 실행
}
랜덤 주사위 굴려보기
public static void main(String[] args) {
double number = Math.random(); // Math.random() 은 0.0 ~ 1.0 사이 랜덤 값을 출력
int number2 = (int) (Math.random() * 6) + 1; // 0.0..1 ~ 0.99..9 값에 6 을 곱한 후 int 형으로 변환하여 소숫점 없앰
System.out.println(number2);
}
score 값에 따른 값 출력해보기
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("점수를 입력하세요 : "); // 점수 정수형으로 입력
int score = scanner.nextInt(); // 입력된 정수를 score 변수에 대입
if (score >= 80){
System.out.println("합격"); // score 가 80 이상이면 합격 출력
} else {
System.out.println("불합격");
}
}
주사위 만들기와 주사위 값에 따라 다른 문장이 나오는 switch case 문 만들기
public static void main(String[] args) {
int number2 = (int) (Math.random() * 6) + 1;
switch (number2){
case 1:
System.out.println("1입니다"); // number1 값이 1 이면 출력
break; // break 는 switch 문을 바로 벗어나게 해줌
case 2:
System.out.println("2입니다");
break;
case 3:
System.out.println("3입니다");
break;
case 4:
System.out.println("4입니다");
break;
case 5:
System.out.println("5입니다");
break;
case 6:
System.out.println("6입니다");
break;
}
for 문을 이용하여 1 ~ 100 의 값 모두 더해보기
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) { // i 가 100 보다 크면 반복문 종료
sum += i; // i 의 값을 sum 에 더하기
}
System.out.println(sum); // 5050 출력
}
while 문 이용하여 1 ~ 100 값 모두 더해보기
public static void main(String[] args) {
int i = 1;
int sum = 0; // i 와 sum 을 먼저 선언
while (i <= 100){ // 조건이 true 면 반복문 실행
sum += i;
i++; // i 의 값 1 증가
}
System.out.println(sum); // 5050 출력
}
짝수만 출력하는 for 문 만들어보기
for (int j = 1; j <=10; j++) {
if (j % 2 == 0){
System.out.println(j);
} else {
continue; // continue 를 만나면 반복문 이후 반복문 건너뛰기
}
}
'JAVA' 카테고리의 다른 글
231205 Java (0) | 2023.12.05 |
---|---|
231204 Java (2) | 2023.12.04 |
231201 Java (0) | 2023.12.01 |
Java 설치하기 (1) | 2023.11.29 |
231129 Java (0) | 2023.11.29 |