
다른 것과 구분되는 이름
자바 개발을 하면서 변수나 메서드, 클래스 등이구분될 수 있도록 이름을 짓는 것을 식별자라고 하며, 자바에는 각 식별자마다 규칙이 존재한다.
| 구분 | 규칙 | 예시 | 네이밍 규칙 |
|---|---|---|---|
| 클래스 | 의미있는 명사형, 첫글자는 대문자 | class Student {...} | - |
| 변수 | 의미있는 명사형, 첫글자는 소문자 | int totalCount = 0 | camel case |
| 매서드 | 의미있는 동사형, 첫 글자는 소문자 | public String calcVol(){...} | camel case |
| 이름, 상수 | 의미있는 명사형, 모든 문자를 대문자 | int NUM_SIZE = 15 | snake case |
자바에서 자신의 기능을 사용하기 위해 미리 사용하는 단어
![[Pasted image 20230918110929.png]]
byte, short, int, long 각각 1, 2, 4, 8 바이트이다.float, double 각각 4, 8 바이트이다.char 2바이트boolean 1비트수치형 데이터를 제외한 나머지이다.
문자열형, 배열, 클래스 인스턴스 등이 여기에 해당한다.
public class VarTest {
public static void main(String [] args){
String name = "홍길동";
String address = "인천광역시 부평구";
boolean isTrue = false;
System.out.println(name);
System.out.println(address);
System.out.println(isTrue);
}
}
🚨팁! : 인텔리제이에서
sout + enter조합 사용시 프린트 매서드가 자동으로 생성된다.
| 종류 | 선언 위치 | 생명주기 | 주의사항 |
|---|---|---|---|
| 지역 변수 | 매서드 내에 선언 | 매서드 호출시 생성, 복귀시 소멸 | 선언과 동시에 초기화 |
| 인스턴스 변수 | 클래스의 맴버로 선언되는 변수 | 클래스 객체 생성 시에 메모리에 생성되고 소멸시에 변수 소멸 | 객체 생성마다 만들어짐 |
| 클래스 변수 | 인스턴스 변수 중 static으로 지정된 변수 | 프로그램 생성시 객체 생성과 상관없이 생성, 프로그램 종료시까지 | 단 한번만 생성됨 |
public class VarTest {
int width;
int height;
int depth; // 인스턴스 변수
public static void main(String [] args){
int h = 5; // 지역 변수 (항상 초기화 해야함)
int w = 5;
int d = 5;
VarTest vt = new VarTest();
System.out.println("Volume :"+ vt.calcVolume(w, h, d));
}
public int calcVolume(int w, int h, int d){
width = w;
height = h;
depth = d;
int vol = width * height * depth; // 지역 변수
return vol;
}
}
원래 가지고 있던 데이터형이 다른 종류의 데이터 형으로 변환되는 것.
종류가 다른 데이터 간에 연산이나 값을 할당하는 경우 원래 가지고 있던 데이터 형이 다른 종류의 데이터형으로 전환되는 것.
// promotion이 일어나는 경우
float fNum = 0f;
fnum = 5.0f;
fNum = 7;
3행에서 정수형 데이터 7이 7.0f로 promotion됨.
// type casting이 일어나는 경우
int num = 0;
num = 5;
num = 5/3;
3행의 결과는 실수이지만, 정수형이므로 형 변환이 일어나 소수점 아래의 값이 버림되어 1이 저장됨.
public class VarTest {
public static void main(String [] args){
byte bVar1 = 12;
byte bVar2 = 17;
byte bVar3 = (byte)(bVar1 + bVar2);
System.out.println(bVar3);
// byte와 short 모두 연산시 int로 바뀌므로 타입캐스팅이 필요함
double h = 3.14f;
float f = (float)3.14;
float f2 = 3.14f + 3.14f;
System.out.println(h);
System.out.println(f);
System.out.println(f2);
//10행에는 double형 변수에 float형 값을 담고 있다.
// double형이 더 크므로 내부적으로 promotion이 진행되어 3.14d가 저장된다.
// 변수 f에는 double형 변수가 입력되었으므로, float로 타입캐스팅이 필요하다.
}
}
컴퓨터가 주변 장치를 제어하는데 사용하는 특수 문자
| 기호 | 의미 |
|---|---|
| \b | 백 스페이스 |
| \t | 탭 |
| \n | 개행 |
| \r | 열 복귀 |
출력 데이터를 다른 데이터 형식으로 출력
| 기호 | 의미 |
|---|---|
| %s | 문자열 출력 |
| %d, %i | 부호있는 10진수 |
| %o | 부호 없는 8진수 |
| %x | 부호 없는 16진수 |
| %f | 부호 없는 10진수 실수 |
| %e | 지수 형식으로 실수 |
| %g | 값에 따라 %e 또는 %d |
| %c | 문자로 출력 |
현실에서 사용하는 사칙연산
| 산술 연산자 | 설명 |
|---|---|
| + | 왼쪽의 피연산자에 오른쪽의 피연산자를 더함. |
| - | 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌. |
| * | 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함. |
| // | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔. |
| % | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함. |
| 대입 연산자 | 설명 |
|---|---|
| = | 왼쪽의 피연산자에 오른쪽의 피연산자를 대입함. |
| += | 왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| -= | 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| *= | 왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| /= | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| %= | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함. |
| &= | 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 AND 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| |= | 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 OR 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| ^= | 왼쪽의 피연산자를 오른쪽의 피연산자와 비트 XOR 연산한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| <<= | 왼쪽의 피연산자를 오른쪽의 피연산자만큼 왼쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| >>= | 왼쪽의 피연산자를 오른쪽의 피연산자만큼 부호를 유지하며 오른쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
| >>>= | 왼쪽의 피연산자를 오른쪽의 피연산자만큼 부호에 상관없이 오른쪽 시프트한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
결과 값은 boolean
| 비교 연산자 | 설명 |
|---|---|
| == | 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함. |
| != | 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함. |
| > | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함. |
| >= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함. |
| < | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함. |
| <= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함. |
| 논리 연산자 | 설명 |
|---|---|
| && | 논리식이 모두 참이면 참을 반환함. (논리 AND 연산) |
| | | 논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산) |
| ! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (논리 NOT 연산) |
| 비트 연산자 | 설명 |
|---|---|
| & | 대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산) |
| | | 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산) |
| ^ | 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산) |
| ~ | 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산, 1의 보수) |
| << | 명시된 수만큼 비트들을 전부 왼쪽으로 이동시킴. (left shift 연산) |
| >> | 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산) |
| >>> | 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨. |
조건이 맞으면 콜론 앞, 틀리면 콜론 뒤 값이 저장된다.
int var1 = 1;
int result = 0;
result = (var1 != 1)? 0 : 1;
참조형 변수를 사용하기 위해 사용. 상속 개념과 함께 사용. 변수의 타입 비교
String address = "인천시 부평구";
if (address instanceof String){
System.out.println("String Type");
}