자바 이론
자바의 특징
- simple
- No Pointer Operation 포인터 연산이 없다
- No Multiple Inheritance 다중상속을 지원하지 않아 모호하지 않다
- No Memory Management 메모리 관리를 따로 안해도 Garbage Collector가 관리하여 편리하다.
- object-oriented language 객체지향언어
- 캡슐화(Encapsulation) : 자료추상화를 기반으로 정보은닉을 제공하는 단위
- 상속성(Inheritance) : 기존의 클래스가 지닌 잘구조, 연산을 기반으로 새 클래스 저으이하는 기능
- 다형성(Polymorhphism) : 적용되는 객체에 따라 연산의 의미가 달라지는 것
- architecture neutral 플랫폼 독립적
- windows, linux, solaris, mac... 다양한 플랫폼 지원
WORA(Write One Run Anywhere) : 한 번 쓰면 어디서든 실행된다.
자바 소스를 컴파일한 목적 코드, cpu 종속적이지 않은 중립코드, jvm이 해석 = byte code
byte code는 .class 파일에 저장, jvm이 인터프리팅함
- windows, linux, solaris, mac... 다양한 플랫폼 지원
- dyamic linking 동적 링킹
- 라이브러리가 변경되어도 컴파일을 다시 수행할 필요 없다.
라이브러리를 공유하기 떄문에 자원절약 가능
- 라이브러리가 변경되어도 컴파일을 다시 수행할 필요 없다.
- multithreading 멀티스레드를 지원함
- 하나의 프로세스 안에 다수의 스레드가 존재하는 것
Process 프로세스 - 실행 중인 프로그램
Thread 스레드 - 경량화된 프로세스... 추가
- 하나의 프로세스 안에 다수의 스레드가 존재하는 것
자바 프로젝트 > 자바 패키지 > 자바 클래스
java파일 저장시 .class 파일 생성
//-------------------------
주석
/* 실행과 무관 */
/** 소스코드 맨 앞 전반적 설명을 작성하는 주석, 자동으로 소스코드의 매뉴얼 생성을 가능케함 javadoc명령*/
// 같은 라인에서 이후 나오는 내용은 실행과 무관
//-----------------------
public class Main{ ... }
package com;
public class Main{
public static void main(String[] args){
// ...
}
}
/*Public class Main은 Main.java에, Public class A라면 A.java파일에 저장되어야 한다.*/
default는 같은 패키지 내에서만 사용 가능
public 을 붙이면 어디서나 사용 가능
//--------------------------------
자바의 기본 타입
기본자료형 = 선언과 동시에 자룔를 저장하기 위한 기억 공간이 할당
참조형 = 선언과 동시에 받는 것이 아님, 참조형 변수를 위한 기억공간만 할당받음
(기본형을 뺀 나머지 자료형 = 참조형 변수)
| 기본자료형 (8개) | ||
| 자료형 | 이름 | 크기 |
| 논리 | boolean | 1bit |
| 문자 | char | 2byte |
| 정수 | byte | 1byte |
| short | 2byte | |
| int | 4byte | |
| long | 8byte | |
| 실수 | float | 4byte |
| double | 8byte | |
| 객체 참조형(object reference type) | ||
| 클래스 | ... | ... |
| 인터페이스 | ... | ... |
| 배열 | ... | ... |
| 열거 | ... | ... |
/--------------------------------------
변수와 자료형
| 종류 | 설명 | |
| 데이터 필드 | 인스턴스 변수 | 클래스 정의에서 non-static 필드 개별 객체가 소유한 변수 |
| 클래스 변수 | 클래스 정의에서 static필드, 동종 객체 간 공유변수(정적 변수) */static 프로그램 종료시까지 값 유지 |
|
| 지역변수 | 메서드 내부에서 선언된 변수 //지역 변수는 초기값을 지정한 후 사용해야함 |
|
| 파라미터 | 메서드 호출 시 전달하는 값을 저장하기 위한 변수 | |
지역 변수, 파라미터
선언된 곳부터 블록이 종료될 때까지 유효, 메소드 실행시 만들어짐, 종료시 소멸
여기부터 실습



Main.java
package com;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello java"); //ln줄바꿈
}
}
Test.java
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hi java");
}
}

public class : 어디서나 접근 가능한...
실습2 ?

package com;
//위의 package com; 지워버리면 default 패키지로 인색해서 오류뜸
class Grade{
int e;
int m;
void output_grade()
{System.out.println(e+m);}
}
public class Sungjuk {
public static void main(String[] args) {
Grade g1 = new Grade();
Grade g2 = new Grade();
g1.e = 90;
g1.m = 85;
g2.e = 80;
g2.m = 70;
g1.output_grade();
g2.output_grade();
}
}