[day01] java-basic : 자바 기초 개요
자바 공부법
- UML, 디자인패턴 공부가 필수로 수반되어야 함
설치
- jdk8
- Eclipse IDE for Enterprise Java Developers
교수님 폴더관리법
- [Lecture]
- [java-workspace] : 소스코드 관리
- [bin] : zip파일 모음
- [setup] : 설치파일
.meta
파일은.gitignore
에 등록해둔다.
자바 언어의 특징
- 자바는 플랫폼 독립적이다.
- 컴파일러와 인터프리터라는 해석기관을 모두 사용하고 있기 때문이다.
- 보안에 강세를 보이는 해석기관은 컴파일러이다. (
.class
파일만 제공하면 소스코드를 해석할 수 없기 때문이다.) - 처음 구동은 속도는 인터프리터가 더 빠르다. (실행은 컴파일러가, 번역은 인터프리터가 더 빠르다)
- JRE - JVM안에 인터프리터가 들어 있다.
- 보안에 강세를 보이는 해석기관은 컴파일러이다. (
- 그래서 자바는 WORA(Write Once Run Anyone)라는 특징을 가지고 있다.
-
C언어는 윈도우에서
.c
파일을 개발하면 리눅스 환경에서는 돌아가지 않는다. - java코드와 관련되어서는 [bin], [src] 폴더가 두 개 만들어진다.
- [src] :
.java
파일이 저장되는 폴더이다. - [bin] :
.class
파일이 저장되는 폴더이다..class
파일은.java
를 컴파일한 파일이다.- 바이트 코드라고 한다.
- 이는 인터프리터로 실행되는 파일이다.
- 이클립스는 코드를 치면 바로바로 컴파일해서
.class
파일을 만든다. - Default output folder로 bin이라는 이름을 classes로 바꿔서 사용하는 사람들도 있다.
Eclipse Setting
- [General - Workspace : UTF-8로 인코딩하기
java 명명규칙
.java
파일 이름과 class명이 동일해야 한다.- 자바는 대소문자 구분한다.
- 클래스파일은 대문자로 시작해야 한다.
-
main메소드
를 포함하는 클래스는 프로그램의 시작 지점임을 알려주기 위해이름Main
이라고 클래스명을 짓는다. (예 :HelloMain.java
) - main메소드의 명칭은 아래와 같이 여러가지 방식으로 사용할 수 있다.
public static void main(String[] args)
: 가장 기본적인 표기 방식이다.static public void main(String[] args)
: 활용제한자와 접근제한자 순서는 뒤바뀔 수 있다.public static void main(String args[])
: 배열에서[]
위치는 바뀔 수 있다.public static void main(String aaaa[])
: 매개변수 명칭은 달라질 수 있다.
- 멤버변수나 메소드명은 소문자로 시작해한다.
-
두 단어 이상을 사용하는 경우에는 첫 글자를 대문자로 사용한다. (예 : printName(), juminNo)
-
상수변수는 모두 대문자로만 표기한다. 단어와 단어 사이는
_
로 구분한다. (예 : MAX_VALUE, MIN) - 클래스명 앞에는 패키지명이 붙어야 한다. (예 :
java.lang.System
) - 이때 앞의 패키지명을 생략하고자 한다면
import
를 package 밑에 선언하면 된다. -
다만,
java.lang
패키지는 자주 사용하기 때문에 JVM이 자동으로 로드해서 import를 사용하지 않아도 된다. - 일반적으로 3레벨 이상의 Package를 가지고 있어야 한다.
- Package를 사용하는 이유는? : 동명의 파일에 대한 충돌을 피하기 위하고, 폴더별로 관리하기 위함이다.
- 보통 Package는 회사 도메일을 거꾸로 쓴다. (예 :
kr.ac.kopo
,kr.co.sds
) -
혼자쓸때는
com.mlec.day01
형식으로 보통 작성한다. -
클래스, 변수, 메소드 갯수 찾기
public class NamingMain { public static void main(String[] args) { System.out.println("String Print"); } }
- 클래스 : NamingMain, String, System
- 변수 : num, args, out
- 메소드 : main(), println()
자바의 출력 메소드 3가지
- 출력 메소드는 상수값들을 화면에 출력하는 것이다.
- 상수의 종류? : 정수형 상수, 실수형 상수, 문자형 상수, 문자열 상수, 논리값 상수
-
System.out.print()
-
System.out.println()
: ln은 enter와 같이 줄바꿈의 개념이다. -
System.out.printf()
: JDK 1.5버전때 생겨남. f는 format의 약자로, %뒤에 format을 명시해준 뒤 출력하는 방식이다. (예 :System.out.printf("%d%c%s",10,'\n',"예시 문장");
)
- printf
- 형식 :
%[정렬옵션][간격옵션]문자형
/ 예 :System.out.printf("%-15s\t%6d\n", "빼빼로", 1500);
- 형식 :
%[전체자리수][.소수점 이하 자리수]f
/ 예 :System.out.printf("%.2f\n", 10.0/3.0);
- 형식 :
- 커서 이동
\t
: TAB\n
: Line Feed\r
: Carriage Return
Java Doc API
- https://docs.oracle.com/javase/8/docs/api/index.html
- eclipse 내에서는
ctrl
키를 누른채로 알고자하는 클래스나 인터페이스 등을 클릭하면 된다.
문서화 주석
/**
을 통해 문서화 주석을 작성해두면 해당 메소드나 클래스를 사용할 때, 내가 작성한 문서화 주석 내용이 보이게 된다.- [JavaDoc Generation]
- 인코딩 옵션 : locale ko_KR -charset utf-8 -encoding utf-8 -docencoding utf-8
- Generating 완료되면 workspace 디렉토리에 [doc]라는 폴더가 생성된다.
- 이때 클래스명을 클릭하면 java API 문서가 생성되어 열린다.