일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- java 백준 1509
- 백준 연결요소 자바
- spring mongoTemplate
- spring mongodb
- kotiln const
- javav 1676
- spring mongodb switch
- java 1509
- Java Call By Refernce
- java 파티
- ipfs singletone
- java 팩토리얼 개수
- nodejs rabbitmq
- kotiln functional interface
- rabbitmq 싱글톤
- spring mongoTemplate switch
- 전략 패턴이란
- 익명 객체 @transactional
- 자바 1676
- go
- mongodb lookup
- Spring ipfs
- 백준 1504 java
- 백준 특정한 최단 경로
- 백준 2252 줄세우기
- ipfs bean
- 안정해시
- java 1238
- kotiln const val
- 자바 백준 팩토리얼 개수
Archives
- Today
- Total
공부 흔적남기기
JAVA 자바 기본적인 배경지식 본문
728x90
반응형
자바란?
자바는 객체지향 프로그래밍 언어로 운영체제로 부터 독립적으로 실행할 수 있다.
자바의 역사
자바는 1991년 오크라는 언어로부터 시작되어 썬의 엔지니어들이 가전제품에 탑재하기 위한 소프트웨어를 만들 용도로 만든 언어이다. 자바는 정적인 웹페이지에 사운드와 애니메이션 등 멀티미디어적인 요소들을 제공할 수 있는 유일한 방법이였기 때문에 많은 인기를 얻게된다. 하지만 보안상의 이유로 더이상 사용되지 않고 현재는 Servlet과 JSP, 안드로이드, 웹개발에 자주 사용된다.
자바의 특징
- 운영체제에 독립적이다. ( 자바로 개발된 Application은 하드웨어와 직접 통신하지 않고 JVM을 통해 통신하기 때문에 운영체제에 알맞은 JVM만 존재한다면 운영체제와 상관없이 동작한다. 즉 운영체제마다 알맞은 JVM을 설치해야 가능하다.)
- 객체지향 언어이다.(상속, 캡슐, 다형성)
- 자동 메모리 관리( C와 달리 자동으로 gc가 메모리를 관리해준다. minor gc, major gc)
- 네트워크와 분산처리를 지원한다. (socket api)
- 멀티쓰레드 지원
- 동적로딩
JVM이란
JVM은 위에서 언급했다시피 자바 Application을 운영체제로 부터 독립적으로 실행할 수 있게 만들어주는 가상머신이다.
.java파일을 javac(컴파일러)를 통해 class 파일(byte코드)로 만들어 JVM에 보내면 JVM 인터프리터를 통해 읽어 이를 운영체제에 보내고 운영체제는 하드웨어와 통신해 Applcation이 실행된다. 즉 컴파일을 하고 인터프리터를 통해 읽는 2가지 과정을 거친다. 이는 속도를 늦출 수 있는데 이에 대한 해결책으로 JIT compiler를 이용하여 자주 사용되는 코드를 cashing하여 한번에 기계어로 바꾸어 속도 문제를 해결한다.
출처: JAVA의 정석
728x90
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
JAVA 자바 ThreadLocal 쓰레드 로컬이란 (0) | 2023.05.16 |
---|---|
JAVA 자바 프로세스와 쓰레드 (0) | 2023.05.16 |
java string 문자열 뒤집기 reverse하기 (0) | 2022.01.15 |
java ArrayList.contains 헷갈리는 부분 (0) | 2022.01.15 |
java string.replace (0) | 2022.01.15 |