JavaSE

[정리]Java란!? (Static, Heap, Stack포함)

알 수 없는 사용자 2015. 8. 13. 18:04

Java!?


C언어와 C++과 달리 인터넷환경에 적합한 언어로써, 객체지향 프로그래밍 언어이다.


C언어는 기계어로 변환해주는 프로그래밍 언어 이며,  C++은 C언어와 달리 객체지향 프로그래밍언어이다.


 --참고--


 C언어와 C++과 JAVA의 차이


C언어 : 인간의 명령어를 컴퓨터가 수용할 수 있도록 기계적 언어로 변환 시켜주는 역할
C++ : 객체지향형 프로그래밍 언어, C언어와 달리 중간에 변수 선언이 가능하다.
JAVA : 인터넷의 분산 환경에서 사용되도록 설계된 프로그래밍 언어이다.


JAVA의 특징!


1. 운영체제가 독립적이다


- JVM (JAVA Virtual Machine)의 약자로써, 각 응용프로램에 가튼 코드를 사용할수 있게 해주는 변환기의 역활이다.

 즉 -> 다양환 환경에서 JAVA를 가동시켜주는 역활을 한다.


2. 객체지향 언어이다

 

 - 객체지향개념의 특징인 '상속', '캡슐화', '추상화', '은닉화' 가 잘 적용된 순수한 객체지향 언어.


** 객체지향이란 ?

 

 ->실제 세계를 모델링 하여 소프트웨어를 개발하는 방법을 의미한다.



Java 컴파일 순서


 코드작성 -> JavaC.exe(컴파일러) -> .class 생성  -> Java.exe(인터프리터) -> 실행

                                                                             ㅣ-> 기계어번역 + 실행


- 보충설명


 : 프로그램의 실행에 필요한 클래스(*.class파일)를 로드 한 후, 클래스 파일을 검사한다. (파일형식), 최종적으로, 지정된 클래스 에서 main메서드를 호출한다.



Java의 메인메서드


 public static void main(String ar[]) {} 는 main메서드의 선언부로써, 모든 클래스가 main메서드를 가지고 있어야 하는것은 아니지만, 하나의 Java어플리케이션에는 Main메서드를 포함한 클래스가 반드시 하나는 있어야 한다.


Static이란!?

 처음 설정된 메모리 공간이 변하지 않음을 의미 한다. 객체를 아무리 많이 생성하여도, 해당 변수는 하나만 존재, 객체와 무관한 키워드
  가장 큰 특징 으론 : 멤버변수의 메모리는 한 번 만들어지므로 전체 객체에 공유할 수 있음.

Heap이란!?

 개체나 배열 new 키워드로 할당된 객체들이 저장된다
  즉! 모든 객체들이 저장되는 곳이다.
 ex) Static Test = new Static -> 이처럼 NEW을 이용한다.


Stack이란!?

메서드가 호출될 때 마다, 스텍프레임 이라 불리는 새로운 데이터 영역이 생성 (영역구분), 스택 프레임이 모여 자바 스택을 생성한다.



--참고--

JDK :  자바 개발 도구

 -> JRE +  개발에 필요한 실행파일(Javac.exe)

JRE : 자바 실행 환경

 -> JVM + 클래스라이브러리(JAVA API)


--기능참고--


 주석을 달기 위해선 // 을 사용 하거나 /**/을 사용한다.

//은 한줄씩 주석으로 처리 해주며, /**/은 여러줄을 주석으로 처리 할 수 있다.

단축키로는 컨트롤 + 쉬프트 + / 을 통해 주석처리 가능하다.