운영체제에 독립적
java application <-> JVM <-> OS <-> hardware
일반 application <-> OS <-> hardware
JVM : 실제 컴퓨터가 아닌 소프트웨어로 구현된 컴퓨터
컴퓨터 속의 컴퓨터
JDK
Hello.java 작성->javac.exe 바이트로 코드로 컴파일->Hello class 생성->java.exe 바이트코드 해석하여 실행-> "Hello World"
class 클래스이름
{ public static void main (String[] args) {}}
eclipse에서..
1.프로젝트 생성 : File > New>New Project
2.클래스 생성 : 프로젝트 이름 우클릭>New>Class(package에서 내용X)
Project>build Automatically 체크 안할 경우
저장-> project->build project 해야 class 파일 생성
bin: class / src: source
# 지역 변수는 사용되기 전에 반드시 초기화
int a = 10 ;
변수 타입 변수이름 = 리터럴 ;
변수 타입은 기본형과 참조형(주소가 저장됨)
변수타입 변수이름 ;//기본형
클래스이름 변수이름 ;//참조형
2.1 기본형 ( 기본 자료형의 종류와 크기는 반드시 외우기)
boolean 참 거짓 1byte= 8bit
char 2byte=18bit
byte lbyte=8bit
short=int1/2 2byte=16bit
int 4byte=32bit (-20억 ~+20억)
long=int2 8Byte=64bit
float 4byte=32bit
double 8byte=64bit
2.2 상수와 리터럴
상수 = 변경할 수 없는 값
final int A =20;//상수 이름은 대문자 , 암묵적 관례
리터럴 = 그 자체로 값을 의미
int year = 2014
여기서 year 변수이름, 2014가 리터럴
단, 리터럴에도 타입이 존재한다!!
int year = 60;
long year = 60l;
long year = 60L;
short year = 60;
Byte year =60;
float a = 0.1f;
float a = 0.1F
double a=0.1;
double a=0.1d;//d생략 가능
2진수:0b숫자 or 0B숫자
8진수:0숫자
16진수:0x숫자 or 0X숫자
int a= 100000_000_000;//로 구문자 가능
0x0.2p-1
216의 -1승 2의 -1승
타입의 불일치
변수의 타입 > 리터럴의 타입
변수의 타입 = 리터럴의 타입
문자 리터럴과 문자열 리터럴
String a ="";
char a='';//오류, 문자는 안에 하나의 문자라도 있어야 한다.
char a=' ';
System.out.println(7+7+"");
System.out.println(""+7+7);
차이를 생각해 보세요
문자열의 경우
문자열 + 숫자 => 문자열 + 문자열
숫자 + 숫자 + 문자열=> 덧셈+ 문자열=> 문자열+ 문자열
이렇게 계산합니다.
2.3 printf VS. println
지시자(형변환 가능) + %n VS. 줄바꿈 + '+'