본문 바로가기

개념정리(JAVA)

자바 예약어 정리

 

타입과 관련된 예약어들(8개)

타입 설명
byte 8 bit 정수형
short 16 bit 정수형
int 32 bit 정수형
long 63 bit 정수형
float 32 bit 소수형
double 64 bit 소수형
char 0 ~ 65,535 범위를 갖는 정수형
boolean true, false 만 존재하는 타입

클래스, 메소드, 변수 선언, 객체 생성과 관련된 예약어들 (26개)

타입 설명
package 클래스의 패키지를 선언할 때 사용하며 코드 내에서 단 한 번만 지정 가능
import 다른 패키지에 있는 클래스 및 그 안에 선언된 요소들을 사용하려고 할 때 사용
interface 인터페이스 선언
abstract abstract 클래스 선언
class 클래스 선언
enum enum 선언
implements interface를 구현한다고 선언할 때 사용하며, 여러 개의 인터페이스를 구현할 경우에는 콤마로 구분하여 나열하면 됨
extends 클래스나 abstract 클래스를 확장할 때 사용하며, 하나의 클래스만 확장 가능
private 다른 클래스에서의 접근이 불가능하게 할 경우 사용
protected 같은 패키지 내에 있거나 상속받은 경우에만 접근하게 할 경우 사용
public 누구나 접근할 수 있도록 할 때 사용
final 변수에 사용할 경우 값을 변경하지 못하도록 선언하며, 클래스에 사용할 경우 확장을 못하도록 선언
synchronized 동시 접근 제어자
void 메소드에서 반환하는 값이 없음을 선언
static 하나의 인스턴스만 허용하는 제어자
return 메소드를 종료하고 값을 반환할 때 사용
assert 검증을 위한 로직 선언
native 다른 언어로 구현된 것을 선언
new 새로운 객체 생성을 선언
null 참조되고 있는 객체가 없다는 것을 선언
strictfp static 소수 값 제어자
super 상위 클래스 참조
this 현재 객체에 대한 참조를 명시적으로 나타낼 때 사용
transient Serializable 할 때 저장되거나 전송되지 않는 객체를 선언
volatile 하나의 변수를 여러 쓰레드가 참조할 때 동일한 값을 바라보도록 할 때 사용
instanceof 객체의 타입을 확인할 때 사용

조건 및 반복문과 관련 있는 예약어들 (10개)

타입 설명
if 데이터의 조건을 확인할 때 사용하며, if 괄호 안의 결과는 반드시 boolean 타입임
else if 조건에 부합하지 않는 경우를 선언
switch 정수형 및 String 문자열(JDK 7 이상)의 값에 따른 분기를 할 때 사용
case switch에서 선언한 변수의 값에 따른 작업을 선언
default switch에서 case 조건에 부합되는 값이 없을 때 기본적으로 수행되는 작업을 선언
for 조건에 따른 반복을 변수에 따라서 실행하고자 할 대 사용
do 한 번 수행 후 조건 반복을 하고자 할 때 사용
while 조건에 다른 반복만 수행하고자 할 때 사용
continue 반복 작업 시 조건 확인문으로 이동하고자 할 때 사용
break 반복 작업을 종료하고자 할 때 사용

예외 처리와 관련된 예약어들 (5개)

타입 설명
try 예외가 발생 가능한 코드의 범위 선언
catch try로 묶은 범위에서 예외가 발생할 때 처리 방법 선언
finally try~catch 수행 후 반드시 실행해야 하는 작업 선언
throw 예외를 발생 시키거나 호출한 클래스로 넘길 때 사용
throws 예외를 던질 수도 있다는 것을 선언할 때 사용

 

byte

데이터 정수형 타입 1byte = 8 bit

정수형: byte < short < int <long

 

short

데이터 정수형 타입 2byte

정수값을 저장하는데 사용됨

​정수형: byte < short < int <long

 

int

데이터 정수형 4byte

제일 많이 쓰이는 기본 정수형이 아닐까 싶습니다.

 정수형: byte < short < int <long

 

long

데이터 정수형 8byte

정수값을 저장하는 변수타입

​정수형: byte < short < int <long

 

​float

데이터 실수형 (변수) 타입 4byte

실수값 넣을때 사용됨

 

double

​데이터 실수형 (변수) 타입 8byte​

실수값을 넣을때 쓰임​

 

char

​데이터 문자형 (변수) 타입 2byte

ex)​'A'  로 입력, 하나의 문자만 저장할수있음

 

boolean

논리형 참(true) 과 거짓(false)

default 값은 false

 

package​

​클래스들을 편리하게 관리하기 위해 묶어놓은것 (하나의 폴더라고 생각)

​package 작성법: package 패키지명;

import 방법: import 패키지명.클래스명;​

 

import​

import 패키지명.클래스명;

import 패키지명.*; 을 사용하면

그 패키지 내에 모든 클래스를 가져올수있음.

java api, 외부클래스를 사용하고싶을때 쓰입니다.

단축키 : ctrl + shift + o

 

interface​

일종의 추상클래스, 상속을 목적으로 만들어지며 다중상속가능

상수와 추상메소드만​ 가짐 (내용선언안함)

interface 인터페이스이름 { public static final 타입 이름 = 값 ;

public abstract 메소드이름(매개변수); }

상속은 implements 로 한다.

 

abstract

추상 클래스 또는 추상 메소드에 사용함

 

class

모든 코드는 클래스 안에 존재해야함​

클래스 작성방법은 매우 간단함

class 클래스명{}

클래스 이름 첫글자는 '대문자'로 시작하는것이 좋음

ex) Pyh class

 

enum

 final static String, int와 같이 문자열이나 숫자들을

나타내는 기본자료형의 값을 Enum으로 대체해서 사용 가능

생성자는 Public으로 할 경우 컴파일 에러가 발생하여 private로 생성

Enum은 고정된 상수들의 집합으로, 런타임이 아닌 컴파일타임에 모든 값에 대해 알아야 함

즉, 다른 패키지나 클래스에서 Enum 타입에 접근해서 동적으로 어떤 값을 정해줄 수 없음

 

implements

​인터페이스 구현 할때 쓰임, 다중상속 가능

interface 는 메소드 선언만 되어있고

빈 껍데기 (내용이없음)

 

extends

클래스 상속에 쓰임

상속은 2가지 형태가 있음

1. extends - 부모의 모든권한을 가져오는것 (상속+내용까지모두)

클래스 한개만 상속가능.

2. implements​ - 인터페이스 (상속은 하지만, 내용은 비어있음, 추상)

다중 상속가능.

 

​private

접근제한자 중 가장 높은보안수준(?)

같은 클래스 내에서만 접근 가능한것

순서: public > protected > default (아무것도 안적음) > private

​protected

접근제한자 이며,  같은패키지와 상속받은 클래스에서 접근이 가능한것

순서: public > protected > default (아무것도 안적음) > private

 public

접근제한자 중 가장 제한이 없는것

접근제한이 없기때문에 같은클래스,패키지,상속에 상관없이

누구나 이용할수있다.

 

final

변수에 사용할 경우 값을 변경하지 못하도록 선언하며,

클래스에 사용할 경우 확장을 못하도록 선언

 

syn​chronized

동시 접근 제한자, 쓰레드 동기화 를 위해 존재함

쓰레드2가 방(syn​chronized) 메소드에 들어가기위해선

열쇠(lock)이 필요한데 이 열쇠(lock) 가 딱 하나밖에없다.

쓰레드1이 방(syn​chronized)에 열쇠(lock)를 들고 들어갔으면

일을 마치고​나와서 열쇠(lock) 를 반환할때까지

쓰레드2는 기다렸다가 쓰레드1이 방에서 일을 마치고 나오면

그 열쇠(lock) 를 받아서 방(syn​chronized)에 들어갈수가 있는것이다.

 

​void

아무것도 리턴할것이 없다.

void 에 속한 메소드는 리턴할게 없어서

처리를 끝낸 후 메소드를 호출한곳으로 넘어가 제어를 함.

 

​static

정적변수 혹은 클래스변수 라고 부르며

클래스 변수란 클래스 단위로 존재하며

클래스로부터 만들어진 모든 객체가 공유할수있는 변수를 의미

한번만 생성되고, 컴파일할때 만들기때문에 객체생성(인스턴스)이 불필요하다.

 static 은 main함수 보다 먼저 실행된다 (단 한번 실행함)

static 에서는 this 와 super 를 사용할 수 없다.

 

return

메소드를 종료하거나 값을 반환할때 쓰임

 

assert

검증을 위한 로직 선언

 

native

자바 외 다른 프로그래밍 언어로 구현되었음을 알려줌

new​

인스턴스,객체를 만들때 사용

객체를 생성하여 메모리공간을 만듬 ​

​null

ex) Box box1 = null

변수선언 하고 box1 의 값은 null로 초기화 시킨것

메모리에 할당 안된상태

숫자타입의 변수는 null을 넣을수없음

super

상위 클래스의 생성자를 호출할때 또는

상위 클래스의 멤버변수 또는 메소드에 접근할때 사용됨.​

super 로 호출하기 위해선 해당 멤버변수,메소드 가 protected,public 이여야함.

호출방법​

1. 상위 클래스의 생성자 호출 super(매개변수)

2. 상위 클래스의 멤버 변수 호출 super.변수명

3. 상위 클래스의 메소드 호출 super.메소드명(매개변수)

 

this​

인스턴스가 '본인(자기자신)' 을 가르킬때 사용할 수 있다.

 

​true

사전적의미 - 사실,참,진실

boolean 에서도 쓰임

 

false​

사전적의미 - 틀린,사실이아닌​

boolean 에서도 쓰임

 

​instanceof

​객체타입 검사시 사용됨

형변환이 가능한지 알고싶을때

true / false로 답을 얻을수있음

 

if

일반적으로 사용되는 조건문

1. if(조건) {실행내용}​

2. if(조건) {실행내용} else {실행내용}

3. if(조건){실행내용}  else if(조건){실행내용}  else if(조건){실행내용}  else{실행내용}

 

else

'사전적내용 - 또 다른 , 다른'

if~else 문에 쓰임

총 3가지 형식이 있음

1. if(조건) {실행내용}​

2. if(조건) {실행내용} else {실행내용}

3. if(조건){실행내용}  else if(조건){실행내용}  else if(조건){실행내용}  else{실행내용}

 

switch

조건문 중 하나

조건의 수가 많을때는 if문 보다 switch문을 사용하는것이 더 좋다.

switch(조건식) {

case 값1 :   내용     break;

case 값2 :   내용     break;

case 값3 :   내용     break;

case 값4 :   내용     break;

default :     내용

}

case

switch ~ case ~ default 를 많이 봤을것이다.

switch 조건문에서 사용함.

case 문에서는 리터럴과 상수만 허용

변수는 안됩니다~

break 를 만나면 switch 문을 빠져나옴

 

default

접근제어자 및 switch 문 에서 쓰임

접근제어자는 클래스,메소드,멤버변수 앞에 아무것도 선언을 안하면 default 가 됨.

switch 문에서 default 는 case 문을 돌다가

해당하는 case 가 없으면 default 로 와서 실행함.​

for

반복문 중 하나

for(초기값;조건식;증가값){내용}

ex ) for(int i = 0 ; i <= 9; i++)

{

                              System.out.println(i);

}

0부터9까지 화면에 뿌려줌​

 

do

do~while 문에서 쓰임

하지만 잘 쓰이지 않는 do~while 문​

do {  반복 실행 내용 } while (조건문)

 

while

반복문 for문과 while문은 항상 서로 변환이 가능함.

while(조건식) { 조건식이 맞으면 수행할 내용 }

*주의점 초기값 위치는 while문 밖에해야한다.

while 문 내에 하면 무한루프에 빠진다.

 

​continue

반복문, 루프돌때 현재 루프를 끝낸뒤,

뒤에 내용 무시하고

앞으로가서 다음 루프를 실행​함

 

break

반복문 또는 Switch 문을 벗어나거나 멈출때 사용함

try

try~catch~finally문에서 사용됨

예외처리 할때 사용됩니다.

try { 예외가 발생할만한 코드 }

catch(Exception e){ 예외처리 방법 }

예외가 발생할만한 코드를 try {} 안에 넣고

예외가 발생하면 실행을 멈추고 catch{}안의 내용을 실행함

finally{ try~catch 끝난후 처리할내용 }

예외처리 순서

try 문 -> 예외발생 -> catch -> 예외확인/에러처리 -> finally 예외발생 유무상관없이 실행

 

catch

try~catch~finally문에서 사용됨

예외처리 할때 사용됩니다.

catch(){}

() 안에는 예외에 해당하는 인스턴스를 집어넣음

ex) catch(예외클래스  변수)  // catch(Exception e)

{} 안에는

예외 처리 내용을 적어넣음

예외처리 순서

try 문 -> 예외발생 -> catch -> 예외확인/에러처리 -> finally 예외발생 유무상관없이 실행

 

finally​

try~catch~finally 예외처리에 쓰임

switch 문의 default 처럼 쓰임

try { 예외가 발생할만한 코드 }

catch(Exception e){ 예외처리 방법 }

예외가 발생할만한 코드를 try {} 안에 넣고

예외가 발생하면 실행을 멈추고 catch{}안의 내용을 실행함

finally{ try~catch 끝난후 처리할내용 }

예외처리 순서

try 문 -> 예외발생 -> catch -> 예외확인/에러처리 -> finally 예외발생 유무상관없이 실행​

 

throw / throws

​둘다 예외를 던질때 사용

throw 사전적의미 '던지다'

throw 와 throws 의 차이점

throw는 메소드내에서 상위 블럭 으로 예외를 던짐

throw 는 현재 메소드에서 상위 메소드로 예외를 던짐

throw 는 일부러 예외를 발생시킬때 사용되기도 하지만

현재 메소드 에러를 처리한후 상위 메소드에 에러정보를 줌으로써

상위 메소드에서도 에러를 감지할수있음

 

'개념정리(JAVA)' 카테고리의 다른 글

자료구조  (0) 2024.04.17
가비지 컬렉션(Garbage Collection)  (0) 2024.03.28
JUnit에 관하여  (0) 2024.03.28
Test & TDD  (0) 2024.03.28
이진검색  (2) 2024.03.27