Java 16

5. 클래스 정리2 : final, 접근 제한자,

1. fiinal필드와 상수, final 메소드, final 클래스, final 지역변수 1) final 필드 final 키워드는 인스턴스 필드를 생성시 바로 값을 할당해 다시는 못바꾸게 하는 방법과 final 인스턴스 필드를 값을주지 않고 선언한 후 생성자를 통해 딱 한번 초기화 할 수 있다. 2) 상수 Static final는 정적 필드를 생성시 값을 주어 다시는 못바꾸게 하는 방법과 파이널 정적 필드를 값을 주지 않고 선언 후 정적 블록을 통해 딱 한번 초가화 할 수 있다. 이는 상수를 선언하는 방법으로 사용된다. 3) final 메소드 - final 메소드는 상속은 되나 자식 클래스에서 재정의할 수 없는 메소드이다. 4) final 클래스 - final 클래스는 상속할 수 없는 클래스 이다. 5)..

Java 2022.01.20

4. 클래스 정리 1 : JVM 메모리 사용 영역, class 맴버 정리(Instance, static 맴버), overloading

1. JVM의 메모리 사용 영역 JVM이 시작되면 즉 .class 파일을 실행하게 되면 OS에서 할당받은 메모리 영역을 아래와 같이 생성하게 된다. 1) Method Area 클래스들을 클래스 로더로 읽어서 Method Area에 클래스 별로 저장한다. Method Area는 JVM이 시작되면 생성되며 모든 스레드가 공유하게 된다. 2) Heap 객체, 참조 타입(배열) 등이 저장되는 공간으로 Call Stack에서 Heap 영역의 객체를 참조할 수 있고 Heap 영역에 서로 다른 객체들간에 참조가 이루어지 수 있다. 3) Call Stack(JVM Stack) 이 영역에서는 Thread별로 하나의 Call Stack이 존재한다. 프로그램에서 작업 스레드를 별도로 추가하지 않는다면 main thread에..

Java 2022.01.20

3. 배열을 활용한 문제 만들기

1-1. 프로그램 설명 사용자가 영어 단어를 입력한다. 입력 시 대 소문자 모두 입력 가능하다. 입력 된 단어에서 가장 많이 사용된 알파벳을 출력해줍니다. 가장 많이 사용된 알파벳이 여러 개일 경우 그 알파벳 모두를 출력해준다. c언어에서는 배열의 크기를 지정할 때 변수로 지정할 수 없다. 하지만 자바에서는 변수를 배열의 크기로 선언 할 수 있다. 그리고 자바의 2차원 배열에선 [2][] 이렇게 앞에 배열 크기만 선언 해주면 뒤의 배열 크기는 요소를 넣을 때 그 크기가 동적으로 정해진다. 1-2. 코드 package project1; import java.util.Scanner; public class Mainclass { public static void main(String[] args) { Scan..

Java 2022.01.17

3. 1,2 차원 배열 선언 문법

1. 1차원 배열 선언 방법 방법1) int[] a; a=new int[3]; a=new int[] {1,2,3}; 배열 길이를 모르는채로 배열을 선언한다 -> 배열의 크기를 지정한다 -> 배열에 요소를 할당한다. 방법2) int[] b=new int[3]; b=new int[] {1,2,3}; //또는 b[0] = 1; b[1] = 2; b[2] = 3; 배열을 생성할 떄 배열의 크기를 할당한다 -> 배열에 요소를 할당한다. 방법3) int[] c= {1,2,3}; //정석 처음 배열을 선언할 때 요소를 바로 삽입한다. ->크기가 요소의 크기만큼 자동으로 할당됨 방법4) int[] a=new int[]{1,2,3}; 처음 배열 선언시 요소를 바로 삽입하며 new연산자를 통해 요소를 할당한다. 2. 2차..

Java 2022.01.17

2. 자바 명령어 도구(javac, java)

JDK는 cmd에서 사용가능한 몇가지 명령 도구를 가지고 있다. 자바 컴파일러 javac, 자바 가상 기계 java 명령어가 있다. test 패키지에 Mainclass.java 하나 들어있는 상황이라고 치자 Mainclass.java 파일에는 hello word를 출력하는 자바 코드가 작성되어 있는데 패키지 선언이 안된 경우 -> default pakage 패키지 선언이 된 경우 package pac1; 위 두 가지 경우가 있을 수 있다. 1. 패키지 선언이 안된 경우 컴파일 방법 javac (클래스명).java 으로 컴파일 하고 실행하는 경우 (따로 패키지를 만들지 않는 경우) 1) 컴파일 cd C:\Users\MoonJH\Desktop\comback\src\test javac Mainclass.jav..

Java 2022.01.17

1. JVM, JDK, JRE

1) 바이트 코드파일 CPU가 이해할 수 있는 언어가 바이너리 코드라면 가상머신(자바에선 JVM)이 읽는 언어를 바이트 코드파일이라한다. 자바 소프파일을 컴파일러 (javac)에 의해 바이트 코드파일(.class)을 만든다. 2) JVM JVM은 바이트 코드 파일을 CPU가 읽을 수 있는 완전한 기계어인 바이너리 파일로 만들어준다. 그리고 CPU로 명령을 한줄 씩 로드해 명령을 실행시킨다. ※ 자바가 한번 작성되면 CPU나 운영체제 상관없이 어디서나 실행할 수 있는 이유는? 개발자에 의해 만들어진 .java소스 파일은 컴파일러 .javac로 .class의 바이트 코드파일을 만든다. 이 바이트 코드파일은 JVM이 해석을 하게 된다. JVM은 바이트 코드를 한줄 씩 읽어서 해석한 후 실행하게 된다. JVM은..

Java 2022.01.17