[Java] 프로그램 구조와 데이터 타입
* 코알못이 개인 공부용으로 작성한 글이므로 틀린 정보가 있을 가능성이 매우 높음 *
Java의 프로그램 구조
자바에서는 Class를 만들고 Class 내부에 변수,상수,method 등 프로그램 요소를 작성한다.
자바 프로그램은 main() 메소드에서부터 실행을 시작한다. (python의 __main__이나 C의 main()과 같다)
main()은 반드시 public static(메모리 정적) void(return X) 로 선언되어야 하며 한 클래스는
두 개 이상의 main을 가질 수 없다.
public class Hello {
//main method
public static void main(String[] args) {
int i = 0; //변수 선언 , 초기화
int s = sum(i,5); //sum method 호출
System.out.println("두 값의 합은 "+s+" 입니다"); //출력
}
//입력받은 두 수를 더하는 method
public static int sum(int n, int m) {
return n + m;
}
}
C/C++ 함수를 자바에서는 메소드(method)라 부름. 작성 방식,호출 방법은 비슷하나 반드시 Class내에서 작성되어야함.
식별자 (identifier)
식별자란 클래스,변수,상수,메소드에 붙이는 이름을 말한다 *예를 들어 int num; 에서 num은 식별자*
단 규칙이 있는데 @,#,! 같은 특수문자나 공백또는 탭은 식별자로 사용할 수 없으니 _(언더바)나 $는 가능하다.
이외에도 여러 규칙이 있으나 여기서는 생략.
자바의 데이터 타입
data type이란 자바에서 다룰 수 있는 데이터 종류를 말한다.
기본 타입 (Primitive type)과 복합 타입(Complex type / or non-primitive type)이 있다.
기본 타입은 CPU 레지스터에서 바로 처리 가능한 데이터 크기의 타입이며 대표적으로
byte,short,int,long등이 있다.
복합 타입은 하나 이상의 기본 타입으로 구성된 타입이며 대표적으로 Array,Class,Interface등이 있다.
정수 | byte | short | int | long |
실수 | float | double |
자바에서 문자열 String은 기본 타입에 속하지 않으며 JDK에서 제공하는 String 클래스를 이용한다.
자바에서는 다음과 같이 문자열 기본 타입의 +연산으로 문자열을 연결한 새로운 문자열을 생성한다.
String name = "Hello";
String name2 = "World!";
System.out.println(name+name2); //"Hello World!"
리터럴(literal)
리터럴은 프로그램에 직접 표현한 값을 말함.
예를 들어 실수 리터럴은 double 타입(8bytes)으로 자동 처리되며 변수와 함께쓰면 다음과 같다.
double d = 0.1234;
double d = 1234E-4; //1234E-4 = 1234 x 10^-4
숫자 뒤에 f or F를 붙이면 float 타입 (4bytes)으로 변환
float f1 = 0.1234;//compile error
float f1 = 0.1234f; // float type으로 변환
문자 리터럴은 단일 인용부호(' ')로 문자를 표시하거나 \u 다음에 문자의 유니코드 값을 사용하여 표현
char a = 'W';
char b = '아';
char c = '\uae00'; // '글'의 유니코드 값
논리 타입 리터럴은 true,false 두개뿐. boolean 타입의 변수에 직접 치환 또는 조건문에 사용
boolean a = true;
boolean b = 10> 5; // true
boolean c =1; //compile error! C처럼 1,0으로 t/f 사용불가
상수(constant)
final 키워드를 사용하여 값이 초기화되면 더 이상 변경할 수 없는 상수로 선언
static 키워드를 붙여 선언하는것이 바람직함.
static final double PI = 3.141592;