남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. JVM(Java Virtual Machine) 구조와 동작방식Java 소스파일(.java)개발자가 작성한 Java 소스코드 파일이다. Java 바이트코드(.class)Java 컴파일러(javac)가 Java 소스코드 파일을 Java 바이트코드로 컴파일한다. Class Loader(클래스 로더)Java는 클래스를 동적으로 로딩합니다. 클래스로더가 바이트코드(.class)들을 읽어서 필요 시점에 동적으로 Runtime Data Area 영역에 동적 적재한다. Execution Engine(실행엔진)클래스 로더를 통해 Runtime Data Area 에 배치된 바이트코드를 읽어서 명령어 단위로 해석하고 바이트 코드를 실제 JVM..

Programming/Java
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 배열이란?동일한 자료형을 연속된 메모리 공간에 순차적으로 저장하기 위한 자료구조 2. 배열 선언 및 초기화배열의 크기가 N이라고 하면 index는 0 ~ N - 1까지 사용// 저장할 데이터를 모를 때자료형[] 변수명 = new 자료형[크기];// 저장할 데이터를 알고 있을 때자료형[] 변수명 = {데이터1, 데이터2, 데이터3, ... }; 3. 다차원 배열차수의 크기를 모두 같게 지정 int[][] arr1 = new int[5][3];첫번째 차수의 크기만 지정한 후 나머지 차수는 서로 다르게 지정int[][] arr2 = new int[5][];arr2[0] = new int[4];arr2[1] = new int[3];..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 조건문자바에서 조건문은 if, switch문 두 가지 뿐이다.if문은 위에서 아래로 순차적으로 조건식을 확인하는 반면, switch case 문은 해당되는 경우를 바로 찾아서 실행문을 실행시켜준다.switch-case는 정수, 문자, 문자열 형태만 가능하여, 정수로 값이 떨어지고 비교하려는 조건이 많아지면 swith-case를 사용하는 것이 성능면에서는 좋다.// if 문if(조건식1) { // 조건식1이 true일 때 실행} else if(조건식2) { // 조건식2이 true일 때 실행} else { // 위의 모든 조건식이 fasle 일 때 실행}// switch-case 문switch (ch) { case 'A..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.1. 변수(Variable)변수란 데이터를 저장할 수 있는 메모리 공간을 의미 변수를 메모리의 어디에 저장하고 어떤 방식으로 저장할지는 프로그래밍 언어와 운영체제가 정하는데, 자바의 경우 JVM이 하게 된다. 2. 명명 규칙대소문자가 구분된다.길이에 제한이 없다.예약어를 사용해서는 안된다.숫자로 시작해서 안 된다.특수문자는 “ _ ”, “ $ ” 만 사용 가능 3. 명명 규칙(권장사항)한글 등 사용 x (오류 잡기가 힘듦)클래스 이름의 첫 글자는 항상 대문자Person, String변수, 메서드 이름은 항상 소문자getInfo(), age여러 단어의 경우 첫글자는 대문자lastIndexOf(), StringBuilder상수는 대문자..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 객체지향 프로그래밍(OOP, Object-Oriented Programing)객체지향 프로그래밍이란 프로그래밍에 필요한 데이터와 행위를 가진 객체를 만들고, 객체에게 적당한 책임을 할당하고 그 객체들 간의 유기적인 상호작용을 통해 논리적인 흐름(로직) 구성하는 프로그래밍 방법이다. 객체지향 프로그래밍을 한미디로 정리하면 객체들 간의 상호작용을 통해 프로그래밍하는 방법이다. 그럼 객체지향에서 말하는 객체가 무엇일까? 2. 클래스 / 객체 / 인스턴스 a. 클래스(Class)란?객체를 정의하고 만들어 내기 위한 설계도를 의미한다.속성(필드) + 행위(메서드)로 구성된다.사용자 정의 타입이라고도 하며, 서로 관련된 값을..