<어제 검색해서 찾은 것들>
: 없다
<데일리 루틴>
내배캠 공부
밥 잘 먹기
운동
1. Java의 역사
1) 1990년대에 발표, 어디서나 마시는 커피처럼 어디서나 동작 가능한, 자바 커피에서 이름을 따 만든 언어, 가장 대중적인 언어이다.
2) 핵심기능 = C언어 기능 + 공통 실행환형(JVM) + 클래스 + 객체;
3) 객체는 모든 것을 표현하기 위한 개념, 특징(=속성, 변수)과 행동(=메서드, 함수)을 가지고 있음. 매우 중요한 개념.
4) 특징은 대표적인 객체지향언어(클래스&객체)이며, 여러 운영체제에서 실행 할 수 있다(JVM). 유지보수가 쉽고 프로그래밍 오류를 방지하고 있어 프로그램이 상대적으로 무겁지만 보안상 안전하다. 대규모 앱 개발이 가능하고(API제공) 다양한 개발 도구와 라이브러리를 사용할 수 있다.
2. JVM이란?
1) Java Virtual Machine, 자바 가상 머신이라는 뜻이며 여러가지 기기 위에 Java를 실행시킬 수 있는 가상의 기기를 만들어 주는 것을 의미(ex. 어디든 모포를 깔면 화투를 칠 수 있다. '예림이 그 패 봐봐 사쿠라여?' 의 장면은 선상이었다.)
2) 구성
2-1. 바이트 코드 : ~~.java 운영체제가 읽을 수 있는 코드로 컴파일러가 변환한 코드.
2-2. 컴파일러 : 현 수준에서는 ~~.java파일을 Class파일로 변환하는 기능을 수행한다 로 정의한다. ~~.java는 사람이 이해할 수 있는 방법으로 짠 운영체제는 읽을 수 없는 코드이다. Class는 운영체제가 읽을 수 있다.
2-3. 클래스 로더 : ~~.class 바이트 코드를 메모리 영역에 담는 운반기, JVM으로 Class파일을 불러와서 메모리에 저장함
2-4. 인터프리터 : 운영체제가 읽은 바이트 코드(Class파일)를 기계가 실행할 수 있는 기계어로 번역하는 기능
가) JIT 컴파일러 : 인터프리터의 효율을 높여주는 서포터 해석기
2-5. 메모리 영역 : Java데이터를 저장하는 영역, 운영체제로부터 JVM이 할당받은 메모리 영역
2-6. 가비지 컬렉터 : 메모리 영역에서 안 쓰는 데이터를 주기적으로 청소하는 기능
3) JVM을 설치하려면 JRE를 설치해야한다.
3. JRE란?
1) Java Runtime Environment, 자바 실행 환경
2) JRE만 있다면 Java를 실행만 시킬 수 있다. 즉 ~~.class파일만 실행 가능하다.
3) 이를 해결하기 위해서는 JDK가 필요하다.
4. JDK란?
1) JRE를 포함하고 있다. Java Development Kit, 자바 개발 키트
2) ~~.java 파일을 ~~.class 파일로 변환해 주는 컴파일러 기능과 코드를 디버깅하는 jdb 등의 기능이 잇다.
3) 디버깅 : 코드를 면밀히 살펴보고 수정할 수 있는 기능
5. Java실행 이후
1) 모든 Java프로젝트는(=자바 앱은) 제일 먼저 클래스의 main 메서드를 무조건 실행시킨다. 이는 JVM의 약속이다.
2) 메소드 : 현 수준에서는 클래스 밑의 하위 요소라고 정의한다.
3) class : 현 수준에서는 ~~.java파일을 ~~.class로 컴파일할 때의 기준이 되는 영역이라고 정의한다.
4) public : 현 수준에서는 접근 제어자, class를 어떻게 제어할지(=어디까지 접근하게 할 것인가?)를 결정한다. 종합해서 public이 붙은 class는 공통적으로 어디서든 접근이 가능하다. 로 정의한다.
5) 파일 이름 : public class의 이름은 해당 ~~.java파일의 이름과 일치시켜야 한다.
6) static : 현 수준에서는 해당 프로그램이 실행될 때 무조건 실행된다 로 정의한다.
7) void : 메서드 출력 값의 정의는 메소드 이름 앞에 위치한다. void는 메소드 출력 값의 데이터 타입의 한 종류. 출력이 없다는 뜻. 출력이 있다면 메소드 내부에 return ~~~ 이 있고 메소드 출력 값으로 ~~~에 해당하는 데이터 타입을 기입힌다. input과 output 중 output이다.
ex)
public class Main {
// A라는 메소드는 String을 리턴한다.
public static String A() {
return "String 은 문자열";
}
// one이라는 메소드는 int를 리턴한다.
public static int one() {
return 1;
}
// A메소드와 one메소드를 출력하는 main메소드
// 메소드 이름 뒤의 ( )는 매개변수(=input) 자리 이다.
public static void main(String[] args) {
//객체 : 특징(속성, 변수) , 행동(메소드, 함수)
//System클래스 .(의 하위 요소) out이라는 객채 . println 행동
System.out.println(A());
System.out.println(one());
}
}
출력하면 이렇게 나온다.
8) (String[] args) : 매개변수, 메서드 이름 뒤 의 ( )에 위치한다. main 이라는 메서드를 호출할 때 'input은 무엇으로, 어떤 타입으로 할 것이냐?' 는 질문에 'String타입의 args라는 이름으로 메소드를 호출할 것이다.' 고 답하는 자리. input과 output 중 input이다.
9) ㅁ.ㄴ : ㅁ의 하위 요소 ㄴ. 온점(.)은 하위 요소를 표현할 때 사용한다.
#5-2 에서 계속#