728x90
자바 언어의 탄생
- 1991년 ~ 썬 마이크로 : 그린 프로젝트에서 가정용 전자기기에서 사용되는 작은 컴퓨터언어를 디자인함.
- virtual machine에서 동작하는 중간코드를 생성
- c++ : 절차지향 + 객체지향 → oak : 완벽한 객체지향 언어 (제임스 고슬링), 이후 java라는 이름으로 바뀜
- world wide web의 발전과 mosaic의 사용에 주목하여 자바를 기반으로 한 웹 브라우저를 제작함
- hotjava브라우저로 발전
자바 언어의 특징
- 단순 c++의 전위처리, 포인터 사용, 다중 상속, 구조체, goto문 사용, 연산자 중복 가능 등 기존 어려운부분 제외
- 가비지 컬렉터로 자동 메모리 관리
- 객체지향 언어라는 객체를 사용해서 프로그램을 작성하도록 하는 언어 재사용성을 높일 수 있음 코드의 재사용을 넘어선 객체의 재사용 프로그램 개발에 필요한 수많은 클래스 라이브러리를 api로 제공함
- 분산처리
- 인터넷 또는 네트워크와 같은 분산 환경에서 tcp, ip등의 프로토콜을 통해 효율적으로 실행될 수 있게 설계된 언어
- 원격 메서드 호출과 관련된 rmi기능의 라이브러리 제공
- 인터프리터
- 자바는 인터프리터에 의해 실행된다.
- .java → 컴파일 → .class (바이트코드) → interpreting(기계어로 해석) → 실행
- 자바는 컴파일 언어임과 동시에 인터프리터 언어!
- 견고
- 다양한 플랫폼(컴퓨터) 상에서 실행되기 위해 에러의 원인이 되는 요소들을 제거하거나 자동으로 해결
- 높은 신뢰성
- 포인터를 사용하지 않음
- 자동으로 가비지 컬렉션 기능을 수행하여 불필요한 메모리를 정리함
- 엄격한 데이터 타입의 검사를 통해 에러를 조기에 발견
- 안전
- 컴파일 시에 엄격하게 데이터 타입을 검사함으로써 프로그램 실행 시 발생할 수 있는 비정상적인 상황을 미리 방지
- 코드 분리 / 코드 검증
- 플랫폼 독립
- 사용하는 운영체제나 cpu등의 하드웨어 사양에 관계 없이 실행될 수 있음 자바 프로그램 → 자바 컴파일러 → 자바 가상 머신 → 유닉스, 윈도우 등
- 높은 성능
- 가비지 컬렉션 기능이 추가되어 있어 자동으로 메로리 관리가 가능
- 메모리가 할당된 객체의 상태를 추적 관리
- 멀티 스레드
- 스레드 : 독자적으로 수행하는 하나의 작은 프로그램
- 멀티스레드 : 하나의 cpu가 여러 개의 프로그램을 동시에 수행하도록 함 → 수행속도를 빠르게 함
- 자바는 동적이다
- 자바는 변화하는 환경에 잘 적응되도록 설계됨
- 기존의 프로그램에 영향을 주지 않고, 라이브러리에 새로운 메서드나 속성들을 추가할 수 있음
자바 플랫폼
- 소프트웨어만으로 구성됨
- JDK로 설치됨
- JAVA SE 가장 기본이 되는 에디션, 자바 언어 대부분의 패키지가 포함됨
- JAVA EE 현업에서 사용되는 API들이 집약된 에디션 JSP, SERVLET, JDBC, JNDI, JTA, EJB등의 많은 기술들이 포함됨
- JAVA ME 모바일 기기 등에서 사용되는 API가 포함된 에디션 스마트폰의 자체적인 OS로 인해 거의 사장된 에디션이다.
자바 API
- 프로그래머가 필요로 하는 기본적인 클래스들을 거대한 라이브러리로 미리 만들어서 제공하는 것
- 미리 제공되는 클래스를 표준 클래스라고 함
- 자바 언어 자체는 작고 단순한 구조를 갖지만 많은 기능들을 API에서 제공하고 있음
- 자바 패키지 : java.util 등
실습 환경 구축
JDK 자바 개발 환경
Java Development Kit 설치
환경변수 → 시스템 변수 → path → jdk bin폴더 경로 추가
명령프롬포트 → javac 확인
728x90
'JAVA' 카테고리의 다른 글
기능문자 / 서식문자 / 지정자 (0) | 2023.03.31 |
---|---|
클래스의 구조 (0) | 2023.03.30 |
인터페이스 (0) | 2023.03.14 |
업캐스팅과 다운캐스팅 (0) | 2023.03.14 |
상속 (0) | 2023.03.14 |
댓글