프로그램 실행단계는 다음과 같다.
Hello.java --(javac.exe:컴파일)--> Hello.class 생성 --(java.exe:실행)--> "hellow world" 출력
class 클래스 이름{
}
메인 메소드의 선언부는 프로그램을 실행할때 java.exe에 의해 호출될 수 있도록 미리 약속된 부분으로 항상 똑같이 적어주어야 한다.
class 클래스이름{
public static void main(String[] args){
}
}
Java 어플리케이션은 main 메서드의 호출로 시작해서 main 메서드의 첫문장부터 마지막 문장까지 수행을 마치면 종료된다. 모든 클래스가 main 메서드를 가지고 있어야 하는 것은 아니지만 하나의 Java 어플리케이션에는 main 메서드를 포함한 클래스가 반드시 하나는 있어야 한다. main 메서드는 java 어플리케이션의 시작점이라 main 메서드 없이는 java 어플리케이션을 실행할 수 없다.
하나의 소스파일에 하나의 클래스만을 정의하는 것이 일반적이지만 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다. 이때 주의해야하는 점은 '소스파일의 이름은 public class의 이름과 동일해야 한다는 것이다.' 만약 소스파일 내에 public class가 없으면 소스 파일내의 어떤 클래스의 이름으로 해도 상관없다.
문자열이 아니라 각각 다음의 변수를 의미한다.
1) 정수
2) 실수
3) 문자
4) boolean
int var_integer = 10;
double var_real = 3.141592;
char var_character = 'A';
boolean var_bool = true;
문자열이라면
String string_empty = "";
String string_word = "Hello";
// compile error
String str = 'String';
char var_char = "A";
\n
을 사용함으로써 new line 한줄뛰기가 가능하다.
String str_literal = "Hello";
String str_object = new String("Hello");
char[] char_arr = {'A', 'B', 'C'};
char_arr[2] = 'E';
System.out.println(char_arr);
출력값: ABE
문자열인 경우 중간 index로 접근하면 compile err 발생
대신 중간 문자로 접근하는 메소드가 있긴하다.
String str = "ABCDEF";
system.out.println(str.charAt(4));
출력값: E
메소드가 있긴해도 값변경은 불가능하다.
String str = "ABCDEFG";
str = "ABCDEEF";
System.out.println(str);
출력값: ABCDEEF
문자열을 배열로 수정하여 원하는 값 수정한 이후 문자열 출력
String str = "ABCDFFG";
char[] temp_arr = str.toCharArray();
temp_arr[4] = 'E';
str = new String(temp_arr);
System.out.println(str);
출력값: ABCDEFG
substring() 메소드로 문자열과 문자를 이어줌으로써 출력
String str = "ABCDFFG";
str = str.substring(0,4) + 'E' + str.substring(5,7);
System.out.println(str);
출력값: ABCDEFG
StringBuilder() 메서드를 이용하여 출력
String str_literal = "test";
힙으로 생성한 문자열인 경우
new로 새로 생성할때마다 새로운 객체를 가리킴
String str_object = new String("test");
System.out.println(str_literal.equals(str_object));