참조 : Do it Java 완전정복
http://www.yes24.com/Product/Goods/103389317
1장-자바 개발 환경
특징
- 플랫폼 독립성
- 객체지향 언어
- 함수형 코딩 지원
- 분산 처리 지원
- 멀티 쓰레드 지원
플랫폼 독립성
- 하나의 프로그램이 모든 플랫폼에서 실행가능 → 자바 가상 머신 덕분
- 다양한 플랫폼 위에 ‘자바 가상 머신’이라는 도구를 설치함으로써 자바에서 만든 .class 파일을 실행할수 있게 된다.
- 자바개발도구 > 자바 개발 환경 > 자바 가상머신
텍스트 인코딩
- 영문, 한글 등의 문자를 바이트 단위의 배열로 저장하는 방식
프로젝트 설정
- 프로젝트 생성시 Create module-info.jav file 항목 체크박스 항상 해제
- 모듈 - 패지키지의 집합
- 패키지 생성
- 소스파일이 저장되는 src폴더와 바이트 코드가 저장되는 bin 폴더 내에 하위폴더 생성
- bin 폴더 내용 확인하려면 윈도우탐색기 혹은 이클립스 내비게이터 창 사용
- 패키지명에 들어가는 ‘.’은 각각의 하위 폴더 의미 ex) abc.bcd → abc > bcd
- 클래스 생성
- 클래스 생성시 패키지를 지정하지 않으면 디폴트 패키지가 지정
- src 폴더와 bin 폴더 아래에 하위 폴더 없이 바로 소스파일과 바이트 코드 파일이 각각 위치
- 클래스를 생성하면 .class 파일이 생성되는게 아니라 소스파일(.java)가 생성
- 컴파일 및 바이트코드 생성
- 자바소스파일(.java)를 컴파일 하면 자바가상 머신에서 실행할 수 있는 바이트코드(.class)가 bin폴더내 패키지 폴더 하위에 생성됨
- 이클립스 사용시 소스파일 저장과 동시에 자동 컴파일 수행됨
- 실행하기
- 바이트 코드(.class)실행하기 RUN → Run As → Java Application [Ctrl + F11]
자바 프로그램 기본구조
자바 소스 코드 실행과정
- .java 소스 파일 생성 → 파일 저장 시 자동 컴파일
- .class 바이트 코드 파일 생성 → t실행
- 자바 가상머신은 운영체제에서 메모리를 할당받아 자바 프로그램 실행 →메서드 영역에 클래스 로딩
- main() 메서드 실행
소스 코드의 기본 구조
- 주석
- 클래스 선언부
- public(접근지정자) class Test(클래스명) { }
- 1개의 소스파일에는 여러 개의 클래스가 존재할 수 있으나, 최대 1개의 클래스만 public 포함 가능
- 클래스명은 반드시 소스 파일명과 일치해야한다. → Test.java
- 하나의 자바 소스파일에 클래스가 여려개일 경우, public이 붙은 클래스와 이름일치
- main() 메서드
- ~~ 리턴 타입 메서드명(...) {} 형태
- 바이트코드(.class)가 메서드 영역에 로딩되면 JVM은 main()메서드부터 실행.
소스 파일 컴파일과 바이트 코드 생성
- 자바의 바이트코드(.class)는 클래스당 하나씩 생성된다.
- 바이트 코드명
- 외부에 있는 클래스는 ‘클래스명.class’과 같이 생성된다 ex) A.class
- 내부의 이너 클래스는 반드시 자신을 감싸고 있는 클래스부터 표현해야한다.
- 아우터클래스이너클래스.classex)CD.class
콘솔 출력 메서드와 문자열 출력
- 문자열
- String 자료형으로 저장되며, 반드시 큰따옴표(””)안에 표기 해야한다.
- 문자열과 기본자료형을 더하면 다시 문자열이된다 ex) “안녕” + 3 = “안녕3”
- 줄 바꾸면서 출력하기 - System.out.prinln()
- 1줄로 출력하기 - System.out.print()
- 형식대로 출력하기 - System.out.printf()
- System.out.printf(”출력 포맷”, 인자, 인자, ...)
- %로 시작하는 위치는 인자로 값이 넘어오는 위치, 출력타입은 % 다음에 나오는 문자에 따라 결정.
- %d, %o,%x는 각각 정수를 넘겨받아 10진수, 8진수, 16진수로 출력
- %s와 %f는 각각 문자열과 실수를 인자로 넘겨받아 출력
- %전체자릿수 + . + 소수점자리수 + f
- %4.2f → 전체자릿수 4개 ,소숫점자리수 2자리까지 표현
- System.out.prinf(”d와 %4.2f”, 4, 5.8); → 4와 5.80