java를 알기 위해서는 우선 각 언어들의 특징을 알아야한다.
- A언어 : 입/출력,문맥 기능만 구현가능한 언어
- B언어 : A언어 기능 + 데이터를 연산하고 묶어서 관리할 수 있는 메서드구현이 가능한 언어
- C언어 : B언어 기능 + 다양한 데이터 타입을 정의하고 자료구조에 담을 수 있는 언어
- Java언어 : 어디서나 마시는 커피처럼 어디서나 동작 가능한, 자바 커피에서 이름을 따서 만듦.
C언어 기능 + 여러 기기에서 실행가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는
클래스를 통해 객체를 만들 수 있는 언어
[Java의 놀이터 JVM이란?]
Java Virtual Machine의 약자로 '자바 가상 머신'이라는 뜻이다.
어느 장비(PC,모바일,서버 등)에서든 JVM을 깔아주면 java 프로그램을 실행시킬 수 있는 가상 기기가 된다.
- 바이트 코드 (Java 프로그램 변환 코드) : 코드를 운영체제가 읽을 수 있는 코드로 Java컴파일러가 변환한 코드
- Java 컴파일러(compiler) : Java 코드(.java)를 운영체제가 읽을 수 있는 바이트 코드(.class)로 변환하는 변환기
- 인터프리터 (Java.class코드해석기) : 운영체제가 읽은 바이트코드를 기기가 실행할 수 있는 기계어로 번역
- JIT 컴파일러 (빠른 Java.class 코드 해석기) : 인터프리터의 효율을 높여주는 서포터 해석기
- 메모리 영역 (Java 데이터를 저장하는 영역) : 운영체제로부터 JVM이 할당받은 메모리 영역
- 클래스 로더 (Java.class 바이트 코드를 메모리 영역에 담는 운반기) : JVM으로 class(바이트코드)를 불러와서 메모리에 저장함
- 가비지 컬렉터 (Java 쓰레기 청소기) : 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
이번 수업에서 사용할 프로그램은 IntelliJ IDEA 이다.
[코드 해석하기]
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
- class Main : (.java)를 (.class)로 바꿔주기때문에 class 라고 명칭을 하고 Main 클래스 라고 한다.
- public static void main(String[ ] args) 에서 형광펜 쳐진 부분을 main 메소드 라고 한다.
자바 프로젝트(앱)는 제일 먼저 클래스의 main 메소드를 실행시킨다.
모든 프로젝트는 이 main 메소드로부터 시작되어서 가지를 뻗어나가면서 프로젝트를 구동함. - static : 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현.
- public : "(접근)제어자" src폴더에 있는 main class는 어디서든 접근이 가능,
<output>
- void : 메서드의 출력값의 데이터 타입
"아무것도 없다." → 출력은 없다.
ex) 출력이 String 으로 나와야 한다 라고 하면 public static String main(String[ ] args)~~
<input>
- String[ ] args : 매개변수 자리
main 메서드를 호출할 때 input은 뭘로 할거냐, input의 타입은 뭘로 할거냐
→ string 타입으로하고 변수명은 args(변수명은 아무거나 써도 노상관)이다.
<객체> : 특징(속성, 변수), 행동(메소드)
하위요소를 표현할 때 온점(.)으로 표현함
public class Main {
public static void main(String[] args) {
System.out.println("Our First Project!");
}
}
System class안에 있는 out이라는 놈 안에 있는 행동을 통해서 "Our First Project!"를 콘솔창에 프린트 한다.
print → 줄 바꿈x
println → 줄 바꿈 o
ln → line을 의미
'코딩 공부 > 개념정리' 카테고리의 다른 글
HTTP & MVC (0) | 2023.04.16 |
---|---|
java_연산자 (0) | 2023.04.06 |
Java_개행문자? (0) | 2023.04.05 |
Java 변수, 아스키 코드 (0) | 2023.04.03 |
github에 관해서(23.04.03) (0) | 2023.04.03 |