[day01] java-basic : 자바 기초 개요

2 분 소요

자바 공부법

  • UML, 디자인패턴 공부가 필수로 수반되어야 함

설치

  • jdk8
  • Eclipse IDE for Enterprise Java Developers

교수님 폴더관리법

  • [Lecture]
    • [java-workspace] : 소스코드 관리
    • [bin] : zip파일 모음
    • [setup] : 설치파일
  • .meta 파일은 .gitignore에 등록해둔다.

자바 언어의 특징

  • 자바는 플랫폼 독립적이다.
  • 컴파일러와 인터프리터라는 해석기관을 모두 사용하고 있기 때문이다.
    image
    • 보안에 강세를 보이는 해석기관은 컴파일러이다. (.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가지

  • 출력 메소드는 상수값들을 화면에 출력하는 것이다.
  • 상수의 종류? : 정수형 상수, 실수형 상수, 문자형 상수, 문자열 상수, 논리값 상수
  1. System.out.print()

  2. System.out.println() : ln은 enter와 같이 줄바꿈의 개념이다.

  3. 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 문서가 생성되어 열린다.

선언부와 내용부

참조클래스와 실행클래스

변수