티스토리 뷰

Chap01 자바 시작

  1. 컴퓨터와 프로그래밍
  2. 자바의 출현과 WORA
  3. 개발 도구와 자바 플랫폼
  4. 자바 프로그램 개발
  5. 이클립스를 이용한 자바 프로그램 개발
  6. 자바 언어의 활용
  7. 자바의 특징

Chap01 요약

  • 프로그램 또는 소프트웨어는 컴퓨터가 이해하고 처리할 수 있는 일련의 명령들이다.
  • 소스 파일을 컴퓨터가 이해할 수 있는 기계어로 변환하는 것을 컴파일이라 한다.
  • 자바는 1991년 선마이크로시스템스(오라클)의 제임스 고스링에 의해 개발되기 시작하여 1995년에 발표되었다.
  • 자바의 개발 목적은 매우 다양한 플랫폼을 갖는 가전제품을 위해 플랫폼에 독립적인 언어를 개발할 필요성에 있었다. 또한 가전제품에 들어가는 제어 장치는 매우 적은 양의 메모리를 사용하므로, 이러한 내장형 시스템의 메모리 요구 사항을 충족 할 수 있는 새로운 언어의 개발 필요성에 있었다.
  • 자바는 GPL로 소스를 오픈한 오픈 소스 소프트웨어이다.
  • 자바 배포판은 개발 응용의 실행 환경에 따라 데스크톱이나 서버 응용을 위한 Java SE. 모바일 장치를 위한 Java ME, 대규모 기업용 응용을 위한 Java EE로 나누어진다.
  • Java 9부터 모듈 개념이 도입되어 Java SE의 모든 클래스들이 모듈로 나누어 재구성되었다. 모듈화는 대형 프로그램을 작성, 유지관리하기 쉽게 하고 리소스가 제한적인 소형 컴퓨터에서도 자바 응용프로그램이 실행될 수 있게 한다.
  • 자바 프로그램을 개발하고 실행하기 위한 환경은 JDK/JRE에서 제공되며, IDE 환경을 제공하는 도구에는 이클립스, 인텔리J등이 있다.
  • 자바 프로그램은 class 키워드의 클래스 선언으로 시작하며, 클래스 내에서 모든 변수나 메소드를 정의한다. 실행은  main() 메소드부터 시작한다.
  • 하드웨어 독립적인 바이트 코드와 이를 실행하는 자바 가상 기계에 의해 한번 프로그램을 작성하면 어느 플랫폼에서도 자바 프로그램을 실행시킬 수 있는데, 이를 WORA(write once run anywhere)라고 한다.
  • 자바 소스 파일의 확장자는 java이고 컴파일된 콛의 확장자는 .class이며, 컴파일된 코드를 특별히 바이트코드라고 부른다. 바이트 코드는 자바 가상 기계 상에서만 실행 되는 코드로서 특정 CPU에 의존적이지 않기 때문에 WORA를 실현하는데 기여한다.
  • 하나의 클래스 파일에는 반드시 하나의 자바클래스가 컴파일되어 있다.
  • 자바 응용프로그램은 웹 클라이언트, 서버, 웹 스타트, 데스크톱, 모바일 등 광범위한 분야에서 사용되고 있다.
  • 자바 언어는 객체 지향, 멀티스레드, 캡슐화, 플랫폼 독립성, 패키지 등을 지원한다.
  • 자바 응용프로그램은 jar나 custom JRE 형태로 배포하고 실행이 가능하다.

Chap02 자바 기본 프로그래밍

  1. 자바 프로그램의 구조
  2. 식별자
  3. 자바의 데이터 타입
  4. 자바키에서 키 입력
  5. 연산
  6. 조건문

Chap02 - 1 자바 프로그램의 구조

  • public은 자바의 접근지정자로서 다른 모든 클래스에서 클래스 Hello를 자유롭게 사용할 수 있다는 선언이다.
  • main()은 반드시 public, static, void 타입으로 선언되어야 하며, 한 클래스에 2개 이상의 main()을 작성하면 안된다.
  • 클래스의 멤버 함수를 자바에서는 메소드(method)라고 부른다.
  • 변수란 프로그램 실행 동안 데이터를 저장하는 공간으로 개발자가 이름을 붙일 수 있다.
  • 메소드 내에 선언되어 사용되는 변수를 지역변수라고 한다.
  • 자바에서 모든 문장은 ' ; '로 끝나야 한다.

Chap02 - 2 식별자

  • 식별자란 클래스, 변수, 상수, 메소드 등에 붙이는 이름을 말한다.
  • 자바 키워드란 자바에서 이미 그 용도가 정해진 것으로 예약어 라고도 하며, 식별자의 이름으로 사용할 수 없다.
  • 클래스 이름의 첫번째 문자는 대문자로 시작한다.
  • 변수와 메소드 이름의 첫 단어는 소문자로 표기한다
  • 상수는 이름 전체를 대문자로 표기하도록 권장한다.

Chap02 - 3 자바의 데이터 타입

  • 데이터 타입이란 자바에서 다룰 수 있는 데이터의 종류를 말한다.
  • 기본타입 : 8개 
    • boolean (논리)
    • char (문자)
    • byte (정수)
    • short (정수)
    • int (정수)
    • long (정수)
    • float (실수)
    • double (실수)
  • 레퍼런스 타입 : 1개
    • 배열에 대한 레퍼런스
    • 클래스에 대한 레퍼런스
    • 인터페이스에 대한 레퍼런스
  • 레퍼런스란 C/C++의 포인터와 비슷한 개념이다. 그러나 C/C++와 달리 실제 주소 값을 가지지 않는다. 
자바는 독립적인 플랫폼 언어로 CPU의 처리 능력이나 운영체제에 따라 데이터가 차지하는 메모리 공간의 크기가 달라 질 수 있는 다른 언어와 달리 데이터 타입의 크기가 항상 일정하다. 예를들어, 자바에서 int타입은 항상 4byte 그러나 C언어에서 int타입은 16byte CPU에서는 16비트이며, 32비트 CPU에서는 32비트로서 CPU나 운영체제에 따라 변할 수 있다
  • 문자열 : 자바에서 문자열은 기본 타입에 속하지 않으며 String클래스를 이용한다.
  • 변수는 데이터를 저장하는 공간이다.
  • 리터럴이란 프로그램에 직접 표현한 값을 말한다. 정수, 실수, 문자, 논리, 문자열 타입 모두 리터럴이 있다.
정수 리터럴 : 10진수,  8진수,  16진수,  2진수
실수 리터럴 : 12.  12.0   0.1234   1234E - 4
문자 리터럴 : 'w',  'A',  '가',  '*',  '3',  '글'\,  \u0041
특수문자 리터럴 : '\b\,  '\t',  '\n',  '\f',  '\r'.  ' \ " ',  ' \ ' ',  ' \ \ '
논리 리터럴 : true,  false
  • 상수를 만드는 방법은 변수 선언 시 final 키워드를 사용하면 된다.
  • 타입변환이란 변수나 상수 혹은 리터럴의 타입을 다른 타입으로 바꾸는 것을 말한다.
    • 자동 타입변환
    • 강제 타입변환

Chap02 - 4 자바에서 키 입력

  • System.in은 키보드 장치를 직접 제어하고 키 입력을 받는 표준 입력 스트림 객체이다.
  • Scanner는 응용프로그램이 키 입력을 쉽게 받을 수 있도록 자바 패키지에서 제공하는 클래스이다.
Scanner scanner = new Scanner(system.in);      // Scanner 객체 생성
메소드 설명
String next() 다음 토큰을 문자열로 리턴
byte nextByte() 다음 토큰을 byte 타입으로 리턴
short nextShort() 다음 토큰을 short 타입으로 리턴
int nextInt() 다음 토큰을 int 타입으로 리턴
long nextLong() 다음 토큰을 long 타입으로 리턴
float nextFloat() 다음 토큰을 float 타입으로 리턴
double nextDouble() 다음 토큰을 double 타입으로 리턴
boolean nextBoolean() 다음 토큰을 boolean 타입으로 리턴
String nextLine() '\n'을 포함하는 한 라인을 읽고, '\n'을 버린 나머지 문자열을 리턴
void close() Scanner 사용 종료
boolean hasNext() 현재 입력된 토큰이 있으면 true, 아니면 입력 때까지 무한정 대기, 새로운 입력이 들어올 때 true 리턴, crtl - z 키가 입력되면 입력 끝이므로 false 리턴

Chap02 - 5 연산

  • 연산자 : ==
  • 피연산자 : a, n
  • 산술 연산자는 더하기, 빼기, 곱하기, 나누기, 나머지
  • 증감 연산자 : ++, --
연산자 내용 연산자 내용
a++ a를 1 증가하고 증가 전의 값 반환 ++a a를 1 증가하고 증가된 값 반환
a- - a를 1 감소하고 감소 전의 값 반환 - -a a를 1 감소하고 감소된 값 반환
  • 비교 연산자 : true, false
  • 조건 연산자는 3개의 피연산자로 구성되어 삼항 연산자라고 한다.
  • 비트 시프트 연산 
    • << 연산자 : a의 각 비트를 왼쪽으로 b번 시프트
    • >>> 연산자 : a의 각 비트를 오른쪽으로 b번 시프트
    • >> 연산자 : a의 각 비트를 오른쪽으로 b번 시프트 

Chap02 - 5 조건문

  • if 문
  • if-else 문
  • switch 문
  • case 문

명품 JAVA Programming - 황기태, 김효수 - 내용을 정리한 내용입니다.