Java언어의 기원
: 1991년 Sun Microsystems의 James Gosling의 팀에 의해 탄생
초기에는 가전용품 프로그래밍 목적으로 고안되었다.
객체지향언어(Object-Oriented-Programming)
Java는 객체지향 언어로 객체들간의 상호작용을 통해 동작한다.
같은 종류의 객체는 같은 type을 같거나 같은 클래스내에 위치한다.
Java Application Programs
Java 프로그램에는 두가지가 있다.
1. application
- main 이라는 이름의 메서드를 가진 클래스를 통해 동작한다.
-Java Application이 실행되면 run-time 시스템이 자동으로 main 메서드를 실행시킨다.
-모든 Java Application은 main 메서드로 프로그램을 시작한다.
2.applets
- 웹 브라우저를 통해 프로그램이 실행된다.
-보안상 로컬 파일 시스템에 접근할 수 없다.
-항상 windowing interface를 사용한다.
System.out.println
Java 프로그램은 객체가 메서드를 통해 동작하며 실행된다.
System.out : 화면에 결과를 보내는 객체
println : 출력하는 메서드
-> System.out이라는 객체가 println이라는 메서드를 호출하여 동작
ex) System.out.println("Java is easy!")
Byte-Code and the Java Virtual Machine
대부분의 프로그래밍 언어는 high-level language를 직접 machine language로 변환한다.
하지만 Java 컴파일러는 Java 프로그램을 byte-code로 변환하고 이를 Java Virtual Machine이 machine language로 변환한다.
- byte code는 언어나 운영체제에 상관없이 동일한 형태로 존재하여 컴파일러만 있다면 어디서든 실행이 가능하다. (이식성)
Interpreter : Java byte-code를 machine language로 변환해주는 프로그램
Class Loader
Class : 객체를 만들기 위한 템플릿 개념
Java 프로그램은 독립적인 기능을 하는 클래스들로 구성되어있으며 서로 다른 클래스가 연결되어 프로그램 전체를 구성한다.
Class Loader : 프로그램 실행에 필요한 클래스의 byte-code를 연결하는 프로그램
클래스명은 해당 .java 파일명과 반드시 동일하다.
각 클래스는 javac 명령어로 컴파일된다. (javac 실행시 .java, .class 는 제외하고 클래스명만 입력 ex) java FirstProgram)
Identifiers
Identifier(식별자) 는 클래스,메서드,객체 등의 이름을 정의하는데 사용되는 문자열이다.
- 숫자로 시작할 수 없다.
- 알파벳,숫자, 언더바(_) 기호만 사용 가능하다.
- 식별자의 길이는 제한없다.
- 대소분자를 구분해서 사용한다.
Java에 이미 정의된 식별자는 사용 불가하다.
- public, class, void, static
라이브러리에 이미 정의된 식별자는 재정의는 가능하나 위험이 있어 사용하지 않는 것을 권장한다.
- System, String, println
Naming Conventions
1. 변수, 메서드, 객체의 이름은 소문자로 시작한다. 숫자를 포함하여 사용가능하다.
ex) topSpeed, bankRate1
2. 클래스의 이름은 대문자로 시작한다. (소문자로 사용해도 컴파일 오류가 발생하지 않는다.)
ex) FirstProgram, MyClass
Variable Declarations
Java 프로그램에서 변수는 반드시 사용되기 전에 선언되어야 한다.
기본 타입을 primitive types 라고 한다.
ex) int number1;
double number2;
Constant
Constant(상수) : 특정 값을 가지고 절대 변할 수 없다.
문자열 상수는 큰따옴표를 사용한다. ex) "Welcome to Java"
boolean type에는 true,false 두 가지가 존재하며 반드시 소문자로만 사용한다.
String Class
string 은 primitive type이 아닌 Java에서 미리 선언된 클래스이다.
ex) String ejava = "Java is too easy";
Concatenation : + 연산자를 사용하여 string을 연결할 수 있다. 개수제한은 없으며 모든 타입에 대해 결합 과정에서 string type으로 자동전환된다.
ex) "The answer is " + 512 -> "The answer is 512"
Comments
주석처리
// : 해당 줄을 주석으로 처리
/* */ : 블럭 단위로 주석 처리