프로그래밍/Java
[자바의 정석 - 1 ] 자바란?
나무늘보Programmer
2024. 4. 1. 01:56
👉해당 게시글은 남궁성의 "자바의 정석 3판"을 읽고 공부하며 정리한 내용을 공유합니다.
자바(Java Programming Language)
자바란?
- 썬 마이크로시스템즈에서 1996.01.에 공식 적으로 발표한 객체지향 프로그래밍 언어
- 운영체제에 독립적임 - 운영체제의 종류에 관계없이 실행이 가능
- C++의 장점을 채택하며 잘 사용되지 않는 부분을 과감히 제외
자바언어의 특징
- 운영체제에 독립적이다
- 객체지향언어이다
- 비교적 배우기 쉽다
- 자동 메모리 관리(Garbage Collection)
- 네트워크와 분산 처리를 지원
- 멀티쓰레드를 지원 - 시스템과의 관계없이 멀티 쓰레드 구현 가능
- 동적 로딩(Dynamic Loading)을 지원 - 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있음
JVM(Java Virtual Machine)

- 자바를 실행하기 위한 가상 기계(컴퓨터)
- Java애플리케이션은 JVM을 한 번 더 거치고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행시에 해석(interpret)속도가 느리다는 단점이 있음
- Java 애플리케이션은 JVM하고만 상호작용하기 때문에 OS에 독립적이라는 장점을 가지고 있음
- 썬에서는 일반적으로 많이 사용되는 주요 OS용 JVM을 제공하고 있음
자바의 실행
- Hello.java 실행 예제를 만들어서 진행
class Hello { public static void main (String[] args) { System.out.println("Hello, world."); // 화면에 글자 출력 } }
- 결과

자바의 진행 순서

자바에서 클래스 만들기
- 자바에서 모든 코드는 반드시 클래스 안에 존재 해야함
- 관련된 코드들을 그룹으로 나누어 별도의 클래스를 구성하게 됨]
- 클래스들이 모여서 하나의 Java 애플리케이션을 만듬
클래스를 작성하는 방법
- 키워드 ‘class’ 다음에 클래스의 이름을 적고 클래스의 시작과 끝을 의미하는 괄호(’{}’) 안에 원하는 코드를 넣으면 됨
class 클래스 이름 {
public static void main(Sting[] args){ //main 메서드 선언부
/*코드 내용 입력*/
}
}
- 클래스 작성시 ‘pulbic static void main(String[] args)’는 main메서드의 선업부로 프로그래밍을 시작할 때 ‘java.exe’에 의해 호출 될수 있도록 미리 약속된 부분 → 항상 똑같이 적어주어야 함
class 클래스 이름 {
/*코드 내용 입력*/
}
- Java 애플리케이션은 main메서드의 호출로 시작해 main메서드의 첫 분장 부터 마지막 문장 까지 수행을 마치면 종료됨
- 모든 클래스가 main메소드를 가지고 있는것은 아니지만, 하나의 Java 애플리케이션에는 main메서드를 포함한 클래스가 반드시 하나는 있어야 함
- 하나의 소스 파일에 둘 이상의 클래스를 정의 하는것도 가능
- 소스 파일의 이름은 public class의 이름과 일치해야함
- public class가 없다면 소스파일의 이름은 소스파일내 어떤 클래스 이름으로 해도 상관 없음
- 하나의 소스파일에 둘 이상의 public class가 존재하면 안됨
주석
- 주석을 이용해 프로그램 코드에 대한 설명을 붙여 놓으면 프로그램 이해에 많은 도움이 됨
- 프로그램 작성자, 작성일시. 버전과 그에 따른 변경이력등의 정보를 제공할 목적으로 사용
- 주석은 컴파일러가 무식하고 건너 뛰기 때문에 프로그램 성능에 영향을 미치지 않음
- 문자열을 의미하는 큰 따음표 안에서는 주석이 작동하지 않음(주의)
주석을 작성하는 방법
- 범위 주석 : ‘/*’와 ‘*/’ 사이에 내용은 주석으로 만듬
- 한줄 주석 : ‘//’부터 라인 끝까지의 내용을 주석으로 간주
실습 예제
GitHub - JoonHoSeong/Java_Study: 자바의 정석을 공부하면서 실습한 내용을 기록합니다.
자바의 정석을 공부하면서 실습한 내용을 기록합니다. Contribute to JoonHoSeong/Java_Study development by creating an account on GitHub.
github.com