Post List

태그

2018년 8월 13일 월요일

자바 변수 상수

변수
변하는 수, 값을 저장할 수 있는 메모리상의 공간

숫자 값, 문자열 값 또는 클래스의 객체를 나타냄.
변수에 저장되는 값은 변경할 수 있지만 변수이름은 그대로 유지됨.
특정 데이터혁식과 레이블을 사용하여 선언됨.
자바의 데이터형식 중 어떤것인지 지정해야 함.
응용프로그램이 실행될 때 값을 저장하기 위해 할당해야하는 정확한 메모리 양을 지정함.


변수 정의 규칙
_, $로 시작할 수 없으며 공백을 포함할 수 없음.
숫자나 특수문자로 시작할수 없고 대소문자를 구분함.
자바의 키워드는 변수명으로 사용할 수 없음.
변수는 선언과 동시에 초기화할수 있음.





상수
변하지 않는 수, 자신의 표기법이 곧 자신의 값이 되는것.

선언과 동시에 상수로 반드시 초기값을 할당함.
상수에 저장되는 값은 프로그램이 컴파일 될때 대입되며 변경되지 않음.
공용 상수는 클래스 내부에서 static final 키워드를 사용하여 선언됨.
공용 상수를 사용하면 코드를 보다 읽기 쉽게 만들수 있음.

자바 키워드

자바 키워드
예약어라고도 함. 자바에서 미리 사용하기 위해 예약해둔 단어.

goto, const 는 키워드이지만 실제적으로 쓰이지는 않음.
키워드는 식별자 또는 명칭으로 사용될 수 없음.
모두 소문자임
true, false, null 은 컴파일러 내부에 미리 정의되어 있는 상수임.



기본데이터유형
boolean, byte, char, short, int, long, float, double, void

변수유형
tansient, volatile

상수
true, false, null

흐름제어
if, else, switch, case, default, for, while, do, break, continue, return

클래스
class, interface, extends, implements, static, abstract, final, new, instanceof, this, super

접근제어
public, protected, private

메소드유형
syncronized, native

패키지
package, import

예외처리
try, catch, finally, throw, throws

사용되지 않는 키워드
goto, const

자바 식별자

자바 식별자
프로그래밍 언어에서 변수, 상수, 배열, 클래스, 메소드, 레이블 등을 식별하기 위하여 붙이는 이름
어떤 대상을 유일하게 실별 및 구별할 수 있는 이름
*유니코드(Unicode) 형식
코드에 존재하는 변수, 자료형, *서브루틴 등을 가리키는 토큰

*유니코드(Unicode)
전세계의 모든 문자를 컴퓨터에서 일관되게 표한하고 다룰 수 있도록 설계된 산업 표준
유니코드 협회(Unicode Consortium)가 제정함.
유니코드가 다양한 문자 집합들을 통합하는데 성공하면서 유니코드는 컴퓨터 소프트웨어의 국제화와 지역화에 널리 사용하게 됨.
비교적 최근의 기술인 xml, 자바 그리고 최신 운영 체계 등에서도 지원함.


*서브루틴
프로그램 가운데 하나 이상의 장소에서 필요할 때마다 되풀이해서 사용할 수 있는 부분적 프로그램



규칙
첫글자는 반드시 문자, _, $ 를 사용하며 그뒤에 숫자가 올 수 있음.
문자, _, $, 숫자 외의 특수문자는 사용할 수 없음.
공백문자는 포함될 수 없음.
대소문자를 구별해야함.
키워드로는 사용할 수 없으나, 일부 사용되는 것은 가능함.

자바코드 분석

자바코드 분석

주석문
  "/*" 와 "*/" 사이, "//" 뒤에 기술.
  컴파일 대상에서 제외.
  프로그램의 이해를 증진함.(해당 코드를 설명함)

class 키워드
  객체지향 프로그래밍에서 가장 기본이 되는 클래스를 정의하는 키워드.
  자바 프로그램은 이 클래스를 하나 이상 가짐.
  선언된 클래스 이름은 자바 파일의 이름이 됨.
  컴파일하게 되면 클래스 이름 뒤에 ".class" 라는 확장자가 붙음.

main 메소드
  프로그램 실행시 제일 먼저 실행되는 메소드.
  자바에서는 함수라는 이름 대신에 메소드 라는 말을 사용함.
  main 메소드의 입력은 String args 라는 매개변수.
  void : 아무것도 리턴하지 않음.
  public : 누구든 이 메소드를 호출할 수 있도록 공개.
  static : 이 클래스 에서는 오직하나의 main 메소드 공유.

괄호
  () 소괄호 : 메소드, 수식의 우선순위
  {} 중괄호 : Block의 시작과 끝
  [] 대괄호 : 배열 선언 밑 요소 지정


JVM(Java Virtual Machine)

JVM(Java Virtual Machine)
  실제로 존재하는 것이 아닌 개념적인 컴퓨터, 소프트웨어로 하드웨어를 에뮬레이션하는 가상 컴퓨터

JVM 메모리 영역

메소드(method) 영역
  클래스의 메소드에 대한 바이트 코드
  전역변수(클래스 변수)

힙(heap) 영역
  객체를 저장할 때 사용하는 메모리
  new 연산자를 이용하여 동적 할당해서 생성하는 영역

스택(stack) 영역
  지역변수, 메소드의 인자, 메소드의 리턴값, 리턴 번지 등을 사용

레지스터(registers) 영역
  가상 머신의 현재 상태를 보여주며 현재 실행되고 있는 메소드의 실행 포인터 저장

실행 풀(Runtime Constant Pool)
  숫자 리터럴과 상수 필드 포함, 메소드 영역으로부터 할당 받음

자바 설치와 실행

자바 설치와 실행
1. JDK(Java Development Kit) 설치
http://www.oracle.com 에서 다운로드 받아 설치할 수 있음.
Java SE의 JDK 를 설치하면 JRE 도 함께 설치 가능

*JRE
자바 실행환경인 JVM 과 클래스 라이브러리(JAVA API)들이 포함.
JDK 는 자바 개발 도구인 JRE와 개발에 필요한 실행파일 포함.


2. 자바 통합 개발 툴
JDK(Java Development Kit) 는 GUI(Graphics user Interface) 형태의 개발환경을 제공하지 있지 않음.
메모장 같은 에디터 프로그램에서 자바 코드를 작성.

이클립스를 많이 사용함.
http://www.eclipse.org





코드실행단계
1.자바 코드를 메모장 같은 에디터 프로그램을 이용해서 코드 작성.
2.파일 이름을 "클래스명.java" 로 저장함.(만일 클래스명이 class Test{} 라면 Test.java로 저장)
저장시 대소문자 반드시 구별해서 저장(클래스 명 첫글자는 반드시 대문자)
확장자는 반드시 ".java"

3.Compile(컴파일)
cmd > javac Test.java

4.실행
cmd > java Test

JAVA 언어의 탄생

JAVA 언어의 탄생
1991년
썬 마이크로 시스템즈(Sun Microsystems)에서 제임스 고슬링(James Gosling)에 의해 개발.
단순하고 버그가 없는 가전 전자 제품을 만드는 것을 목적으로 개발되기 시작함.
Oak(오크) 라는 언어 개발.
Oak(오크) 에서 자바로 이름이 바뀜.

1993년
제임스 고슬링(James Gosling)은 *자바 애플릿(Java Applet)을 구현한 최초의 웹 브라우저인 핫 자바를 개발함.
Netscape Navigater 2.0 에서 Java를 공식 지원.

*자바 애플릿(Java Applet)
HTML에서 사용자와 서버 사이의 dynamic 환경을 제공하는 작은 프로그램.
애니메이션이나, 간단한 게임 수행.
사용자가 서버에 별도의 요청을 하지 않고서도 단순 작업 수행.
빠르게 확신, 대중화를 이룸.


1995년
썬 마이크로 시스템즈(Sun Microsystems)에서 JDK(Java Development Kit) 알파 버전을 발표.

1997년
자바의 소프트 개발환경인 JDK(Java Development Kit)의 공식 발표.
JDK 1.1 시작

1998년
SDK 1.2(SoftWare Development Kit)인 JAVA 2를 발표.


2013년
JDK 7 버전까지 발전.




자바의 플랫폼은 소프트웨어로 구성.
자바의 영역
JAVA EE(Java Enterprise Edition)
자바의 서버측 기술로써 비즈니스 로직을 수행하는 컴포넌트 (EJB) 개발

JAVA ME(Java Micro Edition)
PDA, 핸드폰, 스마트폰 등 모바일 환경 구축

JAVA SE(Java Standard Edition)
자바 개발의 기본적인 에디션
채팅, 메신저, 게임, 메모장 등 데스크톱 애플리케이션을 개발



JAVA의 특징
1.코드의 단순성
C++에서 잘 사용되지 않거나 모호하고 좋지 않은 기능을 제외하고 단순화

*JAVA / C++ 다른점
구조체(struct), 공용체(union), 포인터(pointer) 를 지원하지 않음.
typedef, #define 을 지원하지 않음.
연산자 다운 정의를 지원하지 않음.
클래스 다중 상속을 지원하지 않음.
문자 배열로서 String 클래스 지원.
쓰레기 수집 (Garbage Collection) 기능을 제공함으로써 메모리 할당과 해제가 되어 함수를 사용할 필요가 없음.



2.객체 지향 언어
C++에서와 같은 전역 변수와 독립 함수가 존재하지 않음.
자바에서는 오직 객체만이 존재함.
객체 = 속성(Attributes) + 행위(Behavior)
     변수(Variables) + 메소드(Method)



3.플랫폼 독립
네트워크 환경과 다양한 하드웨어에서 작동할 수 있음.
자바 가상(virtual) 머신이 있으면 자바 코드의 변경 없이 실행할 수 있음.
자바 컴파일러는 바이트 코드(Byte Code)라는 중립적인 구조의 실행 코드를 만들어냄.
바이트 코드(Byte Code)는 각 플랫폼에 있는 인터프리터를 통해 실제로 실행됨.


4.멀티쓰레드(Multi-thread)
하나의 프로그램 안에서 여러 작업을 동시에 처리함.