A 언어
- 첫 개발언어라는 의미에서 A Programming Language 약자
- 프로그램을 만들기위해 기본적으로 필요한 기능 입/출력, 문맥 기능만 구현가능한 언어
B 언어
- Bell 사에서 개발해서 B 언어
- A언어 기능 + 기계식 데이터 타입, 연산기능, 메서드 구현이 가능한 언어
C 언어
- B언어에 비해 더 좋은 언어라는 의미로 알파벳 B 다음인 알파벳 C를 따서 C 언어
- B언어 기능 + 자료형 데이터 타입, 자료구조
Java 언어
- 어디서나 동작 가능한 자바 커피에서 이름을 따서 만든 언어
- C언어 기능 + 공통 실행환경, 클래스, 객체
자바 가상 머신 (Java Virtual Machine)
https://coding-factory.tistory.com/827
운영체제가 읽을 수 있는 코드
내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드(.class 파일)로 변환하는 변환기
java .class 코드 해석기
Java .class 코드 서포터 해석기
Java 데이터를 저장하는 영역
Java .class 바이트 코드를 메모리 영역에 담는 운반기
Java 쓰레기 청소기
자바 실행 환경 (Java Runtime Environment)
자바 개발 키트 (Java Development Kit)
Java 프로그램에서 값을 다루기 위해서는 값을 저장해둘 저장공간의 선언이 필요함
int number;
int
: 저장공간 타입
number
: 저장공간 이름
int number = 10;
int
: 저장공간 타입
number
: 저장공간 이름
10
: 저장할 값
int number = 10; // 초기화
number = 12; // 덮어쓰기
변하는 저장공간
int number = 10; // 1. 변수로 선언 및 초기화
number = 12; // 2. 변수의 값을 바꿈 (덮어쓰기)
변하지 않는 저장공간
final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final을 붙임)
number = 12; // 오류! 변수의 값을 바꿀 수 없음
boolean flag = true; // 1. 논리형 변수 boolean으로 선언 및 true 값으로 초기화
flag = false; // 2. False 값으로도 저장할 수 있음
char alphabet = 'A' // 쌍따옴표("")는 에러남
byte byteNumber = 127; // 1byte
// byte 는 -128 ~ 127 범위의 숫자 저장
short shortNumber = 32767; // 2byte
// short 는 -32,768~32,767 범위의 숫자 저장
int intNumber = 2147483647; // 4byte
// int 는 -21억~21억 범위의 숫자 저장
long longNumber = 2147483647L; // 8byte
// long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰 수를 저장
byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
float floatNumber = 0.123F; // 4byte (long보다 큼)
// float 는 숫자뒤에 알파벳 F 를 붙여서 표기하며
// 3.4 * -10^38 ~ 3.4 * 10^38 범위의 숫자 저장
double doubleNumber = 0.123123123; // 8byte (long보다 큼)
// double 은 1.7 * -10^308 ~ 1.7 * 10^308 범위의 숫자 저장
String message = "Hello World!"
(Wrapper Class)
기본형 변수를 클래스로 한번 랩핑(감싸는) 변수
클래스로 변수를 관리하면 객체지향의 많은 기능을 사용할 수 있게 됨
정수 <-> 실수 <-> 문자
들 사이에서 일어나며 어떤 변수형을 다른 형으로 변환함실수 -> 정수
double doubleNumber = 10.101010;
float floatNumber = 10.1010
int intNumber;
intNumber = (int)doubleNumber; // double -> int 형변환
intNumber = (int)floatNumber; // float -> int 형변환
// 실수형의 소수점 아래자리는 버려짐
정수 -> 실수
int intNumber = 10;
double doubleNumber = (double)intNumber; // int -> double 형변환
float floatNumber = (float)intNumber; // int -> float 형변환
1) 작은 크기의 타입에서 큰 크기의 타입으로 저장될 때 큰 크기로 자동 형변환이 발생함
2) 작은 크기의 타타입이 큰 크기의 타입과 계산될 때 큰 크기의 타입으로 자동 형변환이 발생함
(= 캐스팅)
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
public
: 접근 제어자class
: 객체를 만드는 클래스라고 선언Main
: 클래스 명public
: 접근 제어자static
: Java 컴파일러가 바이트 코드를 변환할 때 미리 정의되는 메서드 표기void
: 메서드의 응답값을 정의하는 곳String[]
: 문자열 여러개 데이터 타입args
: 변수 이름 (아무거나 써도 됨)package week02;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String title = sc.nextLine();
float rate = sc.nextFloat();
String input1 = sc.nextLine();
String input2 = sc.nextLine();
String input3 = sc.nextLine();
String input4 = sc.nextLine();
String input5 = sc.nextLine();
String input6 = sc.nextLine();
String input7 = sc.nextLine();
String input8 = sc.nextLine();
String input9 = sc.nextLine();
String input10 = sc.nextLine();
System.out.println("[ " + title + " ]");
int intRate = (int)rate;
System.out.println(intRate);
double percentageRate = intRate * 100 / 5.0;
System.out.println(percentageRate);
System.out.println("1." + input1);
System.out.println("2." + input2);
System.out.println("3." + input3);
System.out.println("4." + input4);
System.out.println("5." + input5);
System.out.println("6." + input6);
System.out.println("7." + input7);
System.out.println("8." + input8);
System.out.println("9." + input9);
System.out.println("10." + input10);
}
}