자바 시작!
하기 전에 자바에 대해 간단하게 조사해보고 시작하려고 한다. 하루하루 공부한 내용들을 적을 계획이다.
0. 자바란?
현재에는 오라클에 인수되었지만 썬 마이크로시스템즈의 제임스 고슬링과 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.
주로 웹 애플리케이션 분야에서 가장 많이 사용한다고 하지만 안드로이드 뿐만 아니라 스프링과 같은 백엔드에서도 많이 사용하고 있다. 코틀린이 떠오르고 있다고는 하지만 아직까지 주류는 자바인듯하다.(코틀린으로 안드시작한 사람.....)
2023년 3월에 오라클에서 '자바 20'을 발표했다! 통계 보면서 알게된 내용이 8이랑 17을 제일 많이 쓴다고 봤다.
장점
① 컴파일된 코드가 플랫폼 독립적이다 :
자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다.(.class) 그 뒤 이 바이트코드를 실행하기 위해 JVM(자바 가상 머신)이 필요하다고 한다. 이때 운영체제, CPU의 종류와 상관없이 JVM을 설치할 수 있는 시스템 어디서나 이 자바 프로그램을 실행할 수 있다고 한다.
② 객체 지향적 :
자바 프로그램의 경우 객체로 주고 객체를 통해 프로그램 코드를 작성한다. 이러한 방식은 모듈 방식 프로그램이나 재사용 가능한 코드를 작성할 수 있다는 장점이 있다.
③ Garbage Collection을 제공 :
C나 C++과는 달리 JVM이 자동으로 메모리를 관리한다고 한다. 이 내용은 나중에 자세하게 공부할예정
④ 멀티스레딩을 지원함
⑤ 보안성이 뛰어남 :
네트워크 분산 처리 환경에서 사용하기 위해 설계된 언어이기 때문에 바이러스가 침투하지 못하는 구조를 가지고, 메모리에서 데이터 접근을 제어할 수 있다.
단점
① 속도가 느림 :
컴파일러를 통해 자바 바이트 코드로 변환한 뒤, 자바 인터프리터를 이용해 한 줄 씩 실행되기 때문에 속도가 느리다.
즉, JVM을 거쳐 실행되기 때문에 다른 언어에 비해 느리다.
② 메모리 소비 :
Garbage Collection이 메모리를 자동으로 회수하지만, 이로 인해 추가적인 CPU 자원이 필요하며 때로 메모리 사용량이 늘어날 수 있다.
③ 상대적 복잡함(개인적)
kotlin을 먼저 배우고 지금 java를 배우고 있던 입장에서 개인적으로 코틀린이 클래스 선언이나, data class와 같이 더 간결하게 작성이 가능하다. 특히 kotlin이 함수형 언어인게 이점에서 크게 와닿았지 않나 라는 생각이 든다. 물론 java도 점점 업그레이드 하고 있지만 조금 더 알아봐야겠다!
1. 클래스, 메소드 선언
public class 클래스명 {
[public|private|protected] [static] (리턴자료형|void) 메서드명(입력자료형 매개변수,...){
명령문;
}
- public, private, protected는 접근제어자 역할
- 메소드 작성시 리턴,void의 경우 리턴값이 있을 경우 -> 리턴 자료형 / 없을 경우 -> void를 써줘야 한다.
public class Sample {
public static void main(String[] args) {
System.out.println("안녕");
}
- main 메소드의 경우 알아보니 자바로 구현된 프로그램이 실행되면 가장 먼저 실행되는 부분이라고 한다! 약속된 메소드
2. 변수 선언
- 변수 : 값을 저장할 수 있는 메모리 공간에 식별 가능한 이름을 붙여 데이터를 저장하는 공간.
- 자료형 변수명 = 값;
int a;
String b;
a = 1;
b = "hello java";
- a,b라는 변수명과 1, hello java라는 데이터가 메모리 주소에 각각 저장됨!
'Language > java' 카테고리의 다른 글
[Java] HashMap이란 (0) | 2024.12.16 |
---|---|
[Java] ArrayList란 (0) | 2024.12.13 |
[Java] String이란 (0) | 2024.12.12 |
[Java] 자료형 개요 & 숫자 (0) | 2024.01.24 |