javac.exe : 컴파일러 입니다.
개발자가 자바 규칙으로 지키면서 작성한 클래스 코드를
컴파일해서(jvm 검사 : 작성한 클래스 코드가 자바 규칙을 잘 지켰는지 : 자바 리소스, 규칙)
자바 규칙을 잘 지켰으면 자바 클래스 코드로 변환하는 컴파일러하고 한다.
자바 규칙
키워드, 기호 : . ; [] () {} , \ = 연산자,
빌트인 클래스 (api) <-- rt.jar
C:\Program Files\Java\jdk1.8.0_271\jre\lib\rt.jar
C:\Program Files\Java\jdk1.8.0_271\bin\javac.exe : jdk : java development kit : 개발 엔진
C:\Program Files\Java\jre1.8.0_271\bin : jre : java runtime environment : 실행 엔진
##############
자바 소스코드를 컴파일 했는데
에러가 나면 수정을 할 수 있어야 한다.
##############
java.exe : (컴파일된 자바 바이트코드를) 인터프리터 입니다. 실행 엔진 : jvm
C:\Program Files\Java\jdk1.8.0_271\bin : jdk : java development kit
C:\Program Files\Java\jre1.8.0_271\bin : jre : java runtime environment : 실행 엔진
sysdm.cpl
식별자 identifier : 자바 프로그램에서 소스 코드를 작성할 때 쉽게 작성하기 위한 규칙이다.
자바 소스를 알아먹기 쉽게 하는 규칙 입니다.
자바 소스코드에서 유일하게 개발자 맘대로 쓸 수 있는 것이 식별자
식별자에는 규칙이 있다. 이 규칙을 않지켜도 에러가 않난다.
클래스 이름은 영문으로하고
첫번째 이니셜을 대문자로 하고
명사형 합성어로 만들고
두번째 명사형의 인니셜도 대문자로 한다.
HelloWorld
helloWorld, helloworld
코드를 잘치는 것만 배우려고 하다보니 결과만 만들기
변수이름
첫번째 이니셜 소문자로 쓰세요
Main() : 인터넷에 있는데 : .NET 코드
클래스 이름
인터페이스 이름
변수 이름
메소드 이름
참조변수 이름
패키지이름
식별자가 중요한 이유 : Code Convention : Naming Convention :
프로젝트를 하면 : 프로젝트 개발방법론에 명시된다.
현대 코드는 혼자서 개발하는 코드가 거의 없다.
모두 다 협업 코드이다. <- 프레임워크
기본 생성자 Defalut Constructor :
클래스에 매개변수가 없는 생성자를 기본 생성자라고 한다.
컴파일 할 때 소스 코드에 생성자(매개 변수가 없는)가 없을 경우
JVM 이 가상으로 만들어주는 생성자를 기본 생상자(Defalut Constructor)라고 한다.
자바는 기본적으로 생성자가 제일 먼저 호출이 된다.
생성자 하는 역활중 중요 것 중 하나가 멤버필드롤 초기화 하는 것이다.
멤버필드 : 클래스 하고 함수 중간에 선언하는 변수들
참조변수 Reference Variable :
A a = new A();
요기서 a 가 참조변수 : 레퍼런스 변수 : 주소값 갔는다.
참조변수는 객체를 가르키는 주소값을 말한다.
멤버변수
클래스변수 : static 붙은 변수
상수
참조변수
지역변수
매개변수
파라미터
추상클래스
추상 클래스는
추상 함수를 가지고 있는 클래스 이다.
추상 함수는 몸통이 없는 함수이다.
추상 함수는 구현부가 없는 함수 입니다.
접근제한자 수정자 리턴형 함수이름 <-- 껍떼기
접근제한자 수정자 리턴형 함수이름(매개변수); <-- 구현부 가 없는 추상클래스
접근제한자 수정자 리턴형 함수이름(매개변수)
{
구현부
}
매개변수 { 구현부 } <-- 람다
인터페이스
추상 함수만 가지고 있는 클래스
int 형 배열을 선언
1차원 배열
int[] i = new int[2];
int i[] = {1,2}
int[] i = new int[]{1,2};
int[] ii[] = new int[2][3];
int[][] ii = new int[2][3];
int ii[][] = new int[2][3];
클래스 상속
다른 클래스에 있는 자원을 사용할 때 사용한다.
new 키워드 : 클래스 인스턴스 생성할 때 사용하는 키워드
자원을 사용하려고
JVM 입장에서 : 엄마 : 자식에게 하루 3끼 식사를 해주는데
new : 말 않듣는 자식
상속 : 말 잘듣는 자식
현대코드는 가능한 new 키워드를 지양 한다.
스프링 프레임워크에 IoC
인터페이스 상속
다른 클래스에 있는 자원을 사용할 때 사용한다.
DAO 패턴
Data Access Object : 데이터베이스에 : CRUD(ISUD) 비즈니스 로직을 하나에 가지고 있는
디자인 패턴(형식)
CREATE READ UPDATE DELETE
INSERT SELECT UPDATE DELETE
ISUD 메트릭스 작성하세요
DTO 패턴
데이터 트랜스 포트 하는 패턴
DTO 패턴 : VO : Value Object : 깡통 클래스 : Beans 컴포넌트
데이터 트래스포트 하는 역할 :
데이터를 실어 나르는 역활
네임스페이스
패키지 이름 + 클래스 이름 = 네임스페이스
서울시 양천구 목동 + 현병은 = 서울시.양천구.목동.현병은
pacakge a.b.c;
public class Hello{}
a.b.c + Hello = a.b.c.Hello : 네임스페이스 : 클래스이름
ArrayList
객체 배열, 오브젝트 배열
[]
파이썬 : 리스트
ArrayList 도 key(인덱스) : value(값) 이다.
HashMap
key : value
{}
파이썬 : 듀플
main()
콘솔 어플리케이션 : main() 함수 가 들어있는 프로그램
콘솔 어플리케이션의 시작점은 main() 함수 이다.
ClassLoader 클래스가 인스턴스해서 init() 함수를 호출하면
init() 함수에 링크된 main() 함수가 호출된다.
main() 함수에서 예외처리 한다고 throws Exception 하면 않된다.
자바 C/S GUI 프로그램
자바에서 스트링(String) 클래스 아주 특별한 클래스 이다.
프로그램에서 데이터 다루는데
문자, 문자열,
숫자(정수, 실수, 음의정수, 0 양의정수, 지수부, 가수부)
100 : 문자열 99 : 1 숫자
new 생략 하는 것입니다.