본문 바로가기

JAVA

Java 기초

* 스프링, 이클립스, IntelliJ 모두 자바 언어로 만들어진 애플리케이션

 

* 객체지향 언어 (그 밖에 c++, python, javascript...)

 

* 자바 가상 머신 (Java Virtual Machine)

- 자바를 실행하기 위한 가상 컴퓨터 (=소프트웨어라고 할 수 있음)

- 프로그램이 실행되기 위해서는 JVM을 꼭 거친다

- JVM은 OS마다 다르게 생겨서 자바 코드를 다양한 OS에서 수정 없이 사용 가능

- 한 번 작성하면, 어디서든 실행 (=어떤 OS에서든 코드의 수정 없이 사용 가능하다)
1. 메모리 관리
2. GC
3. JAVA와 OS사이에서 OS가 구애받지 않고 재사용을 가능하게 하는 스택기반 가상머신

 

* .java 파일을 컴파일하면 .class가 되잖아. cmd창에서 클래스 파일을 실제로 까보면 기계어가 잔뜩 나옴.

  왜? 컴파일하면 컴퓨터만 알아들을 수 있는 기계어로 변환되기 때문이지

 

* javac.exe

- 자바 컴파일러. 사람이 작성한 문장을 기계어로 번역

- .java 파일 --> .class 파일로 변경

 

* java.exe

- 자바 인터프리터

- .class 파일을 실행

*String의 초기값 null / boolean의 초기값 false / int의 초기값 0

 

* 지역 변수는 읽기 전에 꼭 초기화해야함

지역변수가 뭐라고? 메서드 안에 선언된 변수 = 로컬변수

 

* 상수와 리터럴의 차이

상수는 한 번만 값을 저장 가능한 변수명 그 자체

리터럴은 모든 변수와 상수에 들어가는 값 그 자체

등호를 기준으로 --> 변수상수 = 리터럴 --> int score = 100; -->  final int MAX = 200;

* L이랑 f 접미사 꼭 붙이기

* 기본형 변수

 1byte = 8bit2byte = 16bit4byte = 32bit8byte = 64bit
논리형boolean   
문자형 char  
정수형byteshortintlong
실수형  floatdouble

char 0 ~ 65535

byte -128 ~ -127

short -32768 ~ 32768

int -20억 ~ 20억 (대략 10자리 숫자, 10자리 숫자가 넘어가면 long으로 받자. 가령, 주민번호, 핸드폰번호 같은 것)

 

float와 int / double과 long의 크기는 같은데 저장하는 범위가 float,double이 큰 이유는 저장 방식의 차이에 있다

어떤 저장 방식? 부호, 지수, 가수로 나누어 저장하는 방식

오차가 발생하기도 해서 정밀도가 있다.

float는 7자리, double은 15자리!

 

* printf() 지시자

%d (정수) / %f (실수) / %s (문자열)

 

* && (AND, 둘 다 만족) / || (OR, 둘 중 하나 만족) -> 둘 중 &&의 우선순위가 더 높음

 

* 증감연산자가 독립적으로 사용되는 경우 전위형, 후위형 차이가 없다

i++ 이나 ++i 나 이렇게 단독으로 쓰이면 똑같음.

대신에 어떤 수식들 안에 들어가면 값이 달라진다.

 

* 유니코드 간단한건 외우자

문자 0 -> 코드 48 ~~~

문자 A -> 코드 65 ~~~

문자 a -> 코드 97 ~~~

 

* 형변환

int * int 해서 int 범위를 벗어나면, long으로 바껴야되는데 지들이 자동으로 바뀌지는 않음

계산 하기 전에!!! 반드시 계산 하기 전에 형변환이 이루어져야해서 long (int * int) 이건 의미 없음

(long) int * int 이렇게 한쪽에 미리 형변환을 하고 계산을 해야됨

 

* 정수는 0으로 나눌 수 없다 ( / , % 둘 다) -> 에러 발생

 

* x는 90~100 사이의 정수이다.

90 < x < 100 (X)

90 <= x && x <= 100    OR    x >= 90 && x <= 100

 

* str.equalsIgnoreCase("yes")

대소문자 구분안할 경우, equals 대신에 equalsIgnoreCase 사용

 

* if문 안의 내용이 두 줄 이상일때는 괄호 필수! 

괄호 안하면 if문과 붙어있는 첫 번째 문장만 인식

 

* Math.round()
괄호 안의 수를 소수점 첫째 자리에서 반올림하여 정수로 만들기

 

* Math.random()

난수를 얻기 위한 함수 / 0.0 ~ 1.0 사이의 값을 반환

'JAVA' 카테고리의 다른 글

switch문의 제약 조건  (0) 2020.09.29
Properties 클래스  (0) 2020.09.26
Scanner 클래스  (0) 2020.09.15
equals()와 hashCode()  (0) 2020.09.12
6장  (0) 2020.08.21