본문 바로가기

개발일지/Java + Spring

[Java] 기본용어 정리

기본용어

 

식별자

자바 코드에서 사용되는 변수, 메소드, 클래스, 배열 등의 이름
대소문자 구분
처음부터 숫자가 나올 수 없음
예약어(명령어)는 사용 못 함

 

클래스

대문자로 시작

두 단어가 합쳐질 땐 두번째 단어의 첫글자를 대문자로 지정

ex) HellowText

 

메소드

소문자로 시작

두번째 단어의 첫글자를 대문자

ex) getAge()

 

변수

소문자로 시작

두번째 단어의 첫글자를 대문자

ex) int maxCount;

 

상수(변하지 않음)

모든 문자를 대문자로 작성

두 단어가 합쳐질 경우? '_' 사용

final로 작성한다.

ex) final int MAX_ANGLE = 100;

 



자바주석
// 한줄 --> ctrl + 7 
/* */ 여러줄 --> Ctrl + Shift + /, Ctrl + Shift + \(해제)

 

실행 단축키 F11

 

 


변수 - 데이터 타입

 

1. 기본형 (=기본 데이터 타입)

8개 (boolean, char, byte, short, long, float, double)

실제 값을 저장하고 있음

 

2. 참조형 (=레퍼런스 타입)

기본형을 제외한 나머지(String, System 등)

객체의 주소를 저장(4Byte, 16진수)

 

종류 크기
byte 1byte(8bit) (-128~127)
short 2byte(16bit) (-32768~32767)
char 2byte(16bit) 유니코드(0~65535)
int 4byte(32bit) 약 -21억 ~ 21억
long 8byte(64bit)  
float 4byte(32bit)  
double 8byte(64bit)  
boolean 1byte  

 

public class DataTypeTest {

	public static void main(String[] args) {
		
		
		
		boolean var_boolean = true;
		// 변수명 = 값
		
		byte var_byte = 127;
		
		//short
		short var_short = 32767;
		
		//char
		char var_char1 = 66;
		char var_char2 = 'A';
		char var_char3 = '\u0041';
		char var_char4 = '가';
		
		//그 이상의 숫자들
		//int
		int var_int = 100000;
		int num0 = 011;
		int num0X  = 0x12; //8진수
		int num0B = 0B0111; //16진수
		int binaryInt = 0b1111_0000_1010_0000;
		
		
		//long
		long var_long = 1000000;
		long positionNumber = 122_122_122_122L;
		
		//float
		float var_float = 3.14f;
		
		//double
		double var_double = 3.14;
		
	//출력
		System.out.println("var_boolean : " + var_boolean);
		System.out.println("var_byte : " + var_byte);
		System.out.println("var_short : " + var_short);
		System.out.println("var_char1 : " + var_char1);
		System.out.println("var_char2 : " + var_char2);
		System.out.println("var_char3 : " + var_char3);
		System.out.println("var_char4 : " + var_char4);
		System.out.println("var_int : " + var_int);
		System.out.println("num0 : " + num0);
		System.out.println("num0X : " + num0X);
		System.out.println("binaryInt : " + binaryInt);
		System.out.println("var_long : " + var_long);
		System.out.println("positionNumber : " + positionNumber);
		System.out.println("var_float : " + var_float);
		System.out.println("var_double : " + var_double);
	}

}

 


형변환

public class ConversionTest {
	/*
	 * 형 변환 예제 
	 */
	public static void main(String[] args) {

		// 큰 타입으로 자동변환
		byte var_byte1 = 10;
		int var_int1 = var_byte1;
		System.out.println("var_int1 = " + var_int1);
		
		// 큰 타입의 값을 작은 타입의 변수에 할당
		// 명시적으로 형 변환해 주지 않으면 컴파일 오류 발생
		int var_int2 = 100;
		byte var_byte2 = (byte)var_int2;
		System.out.println("var_byte2 = " + var_byte2);
		
		//char와 short
		short var_short1 = 200;
		char var_char1 = (char)var_short1;
		System.out.println("var_char1 = " + var_char1);
		
		//int 타입보다 작은 타입의 정수 연산 : int 형으로 변환됨
		//int 형보다 작은 타입의 변수에 값을 할당 하려면 명시적으로 형변환해주어야함
		byte var_byte3 = 20;
		byte var_byte4 = 40;
		byte var_result1 = (byte)(var_byte3 + var_byte4);
		
		char var_char2 = 'A';
		int var_int_result = var_char2 + 1;
		System.out.println("var_int_result = " + var_int_result);
		
		//연산 시 피연산자 중 보다 큰 타입으로 형 변환된 후 연산됨
		int var_int3 = 100;
		long var_long1 = 100;
		long var_long_result1 = var_int3 + var_long1;
		System.out.println("var_long_result1 = " + var_long_result1);
		
		//정수와 실수를 연산하면 실수 타입으로 자동 형 변환됨
		long var_long2 = 100;
		float var_float1 = 3.14f;
		float var_float_result1 = var_long2 + var_float1;
		System.out.println("var_float_result1 = " + var_float_result1);
		
		//float 타입과 double 타입을 연산하면 double 타입으로 변환
		float var_float2 = 3.33f;
		double var_double3 = 4.22;
		double var_long_result2 = var_float2 + var_double3;
		System.out.println("var_long_result2 = " + var_long_result2);
		

	}

}

큰 타입은 자동변환

큰 타입 값을 작은 타입으로 변환하려고 할 땐 형변환이 필요함

기본타입 보다 작은 타입끼리의 연산을 할 때에도 형변환이 필요함

정수와 실수에서는 실수 타입으로 자동 형 변환

float와 double에서는 후자가 기본형이라서 자동으로 변환이 되고, double에서는 숫자 뒤에 d를 생략해도 됨

 


Args(Arguments)

Args-Arguments, 인수, 인자 등...

값을 받을 수 있는 방법은 다양하지만, 그 중에서도 문자열 타입으로 입력 받는 방법이다. 우리가 매일 쓰는 public static void main(String[] args) 자세히 배우지 않았지만 여기서 String[] args 이 부분은 실행 시 받은 인자 값을 String 타입으로 받는 뜻이다. 

public class ArgsTest {

	public static void main(String[] args) {
		 String args1 = args[0];
		 String args2 = args[1];
		 
		 System.out.println("args1 = " + args1);
		 System.out.println("args2 = " + args2);
	}
    
}

문자열 String으로 기억장소 args1과 args2를 잡았다. args[0], args[1]은 위쪽 main에 써 있는 args와 같은 공간이다. 다른 콘솔을 통해서 (무슨 값이든) 값을 받아 올 것이고, 배열에 순서대로 값이 입력 될 예정이다. 배열이 0부터 시작하기 때문에 0,1은 두 개의 공간을 가져왔다는 뜻이다. 다만 숫자를 입력해도 문자열로 받아 들일 것이다.

 

이클립스에서 값을 입력하고 싶다면?

 

클릭해서 보세요

오른쪽 마우스 -> Run As -> Run Configurations -> Main Tab -> Search -> 현재 클래스 선택 -> Arguments Tab -> Program arguments

사진에 Main탭 -> Search -> 현재 클래스 선택 빠져있으니 꼭 확인!!

Run -> Run Configurations -> Main Tab -> Search -> 현재 클래스 선택 -> Arguments Tab -> Program arguments

 


<성적을 입력 받아서 계산>

public class OperationTest2 {

	public static void main(String[] args) {
		//성적 계산하기
		int total = 0;
		int avg = 0;
		int kor = Integer.parseInt(args[0]); //국어
		int mat = Integer.parseInt(args[1]); //수학
		int eng = Integer.parseInt(args[2]); //영어
				//parseInt 정수형으로 바꿔서 소수점 이하 자르다.
				//외부에서 입력 받는 방법
				//입력 받는 방법은 다양하다
				//그 중에서 args를 이용해봤음
		
		total = kor + mat + eng;
		avg = total / 3;
		
		System.out.println("국어 성적 : " + kor);
		System.out.println("수학 성적 : " + mat);
		System.out.println("영어 성적 : " + eng);
		System.out.println("합   계 : " + total);
		System.out.println("평   균 : " + avg);

	}

}

 

위와 같은 방법으로 Args 값을 입력 받아서 성적을 계산하는 방법입니다.