JAVA 개요
- 자바는 썬 마이크로 시스템즈(현재는 Oracle로 인수됨) 에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어
- 웹 브라우저인 넷스케이프에서 사용할 수 있는 객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영체제에서 사용할 수 있도록 클래스(class)로 제공된다. 객체 지향 언어인 C++언어의 객체 지향적인 장점을 살리면서 분산 환경을 지원하며 더욱 효율적이다.
JAVA의 역사
- 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체지향적 프로그래밍 언어이며, 썬 마이크로시스템즈에서 무료로 제공했다.
- 1991년 그린 프로젝트라는 이름으로 시작해 1995년에 발표했다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있다.
- 자바는 유닉스 기반의 배경을 가지고 있기 때문에 문법적인 특성은 C언어와 비슷하다.
자바를 다른 컴파일언어와 구분짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다. 자바 컴파일러는 실행하기 위해서 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 때문에 자바로 개발된 프로그램은 CPU나 운영체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아떨어져 폭발적인 인기를 끌게 되었다.
JAVA의 특징
간단하여 배우기 쉽다.
- 자바 언어는 C++를 기반으로 개반되었음에도 C++에서 혼란을 일으키는부분을 제거했다.
객체지향 언어이다.
- 소프트웨어를 개발할 때 재활용 측면에서 많은 장점을 가진다.
- 다양한 기종의 컴퓨터와 다양한 플랫폼(윈도우,솔라리스,매킨토시 등의 운영체제)에서 실행 가능하다.
보안에 강하다.
- 자바는 바이러스가 침투하지 못하는 구조를 가지고 메모리에서 데이터접글을 제한할 수 있다.
이식성이높다.
자동 메모리 관리지원
네트워크와 분산처리 지원
멀티쓰레드 지원
동적 로딩지원
JVM(Java Virtual Machine) 자바 가상 기계
- 자바 바이트 코드와 컴퓨터의 운영 시스템 간의 번역기 역할을 한다.
JVM을 이용하여 사용자는 매킨토시,윈도우, 유닉스 등 다양한 컴퓨터 플랫폼에서 자바를 실행시킬 수 있다.
- 사용자가 JAVA파일을 생성한 후 JDK의 컴파일을 거쳐 바이트코드(class)가되어 JVM을 거치면 컴퓨터가 사용할 수 있는 기계언어로 변경해주는 역할을 한다.
- 자바 실행 흐름 :: 소스코드(*.java)생성 -> JDK컴파일 -> 클래스 파일(*.class)생성 -> JVM -> 실행
변수의 종류
값 - 문자 -> char
- 숫자 -> 정수(byte, short, int, long) 실수(float, double)
- 논리 -> boolean
변수의 타입
기본형 - 8개(boolean, char, byte, short, int, long, float, double)
- 실제 값을 저장하는 변수
참조형 - 기본형을 제외한 나머지 (String, System 등)
< 기본형 >
논리형
- true와 false중 하나를 값으로 가지며, 조건식과 논리적 계산에 사용된다.
-> boolean (1byte)
문자형
- 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다.
-> char (4byte)
정수형
- 정수 값을 저장하는데 사용된다. 주로 사용하는 것음 int 와 long이며, byte는 이진데이터를 다루는데 사용되며, short는 c언어와의 호환을 위해 추가되었다.
-> byte(1byte), short(2byte), int(4byte), long(8byte)
실수형
- 실수 값을 저장하는데 사용된다. float와 double이 있다.
-> float(4byte), double(8byte)
자료형의 크기와 범위
논리 :: boolean 1byte false false,true
문자 :: char 2byte \u0000 0 ~ 65,535
정수 :: byte 1byte 0 -128 ~ 127
short 2byte 0 -32,768 ~ 32,767
int 4byte 0 -2,147,483,648 ~ 2,147,483,647
long 8byte 0 -9,223,370,036,854,775,808 ~ 9,223,372,036,854,775,807
실수 :: float 4byte 0.0f -3.4E38 ~ +3.4E38
double 8byte 0.0 -1.7E308 ~ +1.7E308
변수의 선언방법
선언형식 : 변수타입(자료형) 변수명
예) int score; //정수형 변수 선언
score = 100; //변수 초기화
int score =100; //정수형 변수 선언과 초기화
String str = new String("abc"); //문자열 변수 선언과 초기화
명명규칙
1. 대소문자가 구분되며 길이에 제한이 없다.
-> True와 true는 서로 다른 것으로 간주된다.
2. 예약어를 사용해서는 안된다. (int,false,long,double,for,char 등등...)
-> true는 예약어라 사용할 수 없지만, True는 가능하다.
3. 숫자로 시작해서는 안 된다.
-> top10은 허용하시만, 7up은 허용되지 않는다.
4. 특수문자는 '-'와 '$'만을 허용한다.
-> $harp은 허용되지만 S#arp는 허용되지 않는다.
명명규칙 < 권장사항 >
1. 클래스 이름의 첫 글자는 항상 대문자로 한다.
-> 변수와 메서드 이름의 첫 글자는 항상 소문자로 한다.
2. 여러 단어의 조합은 단어의 첫 글자를 대문자로 한다.
-> LastIndexOf,StringBuffer
3. 상수의 이름은 대문자로 한다. 단어는 '_'로 구분한다.
-> PI, MAX_NUMBER
<변수 선언 규칙>
<변수, 상수, 리터럴>
변수(variable) :: 하나의 값을 저장하기 위한 공간, 변하는 수
상수(constant) :: 한 번만 값을 저장할 수 있는 공간, 변하지 않는 수
리터럴(literal) :: 그 자체로 값을 의미하는 것
'Web Programming > java-jsp' 카테고리의 다른 글
java 연산자 (0) | 2018.08.29 |
---|---|
java 문자열 오버플로우 형변환 특수문자 (0) | 2018.08.29 |
java 예외 try catch finally (0) | 2018.08.29 |
JAVA Method 클래스 (0) | 2018.08.29 |
Spring PostConstruct 어노테이션 (0) | 2018.08.29 |