Java 34

제어자Modifier

📚 자바의 정석을 정리한 내용입니다. 제어자Modifier Non-Access-Modifiers 접근 제어자가 아닌 제어자들로는 static, final, abstract, synchronized......등이 있다. 몇 가지만 소개한다. static 멤버변수, 메서드, 초기화 블럭 앞에 붙는다. static이 변수에 붙으면 모든 인스턴스에서 공통으로 사용되는 클래스 변수가 된다. 메서드에 붙으면 인스턴스 생성없이 호출할 수 있는 static 메서드가 된다. final 클래스, 메서드, 멤버변수, 지역변수에 붙는다. final이 붙으면 수정할 수 없는 메서드, 변수, 클래스가 된다. 즉, final변수는 값을 변경할 수 없는 상수. final method는 오버라이딩 불가. final class는 ext..

Java 2020.09.06

객체지향2

📚 자바의 정석을 정리한 내용입니다. JVM 메모리 구조 JVM은 프로그램을 수행하는데 필요한 메모리를 할당 받는다. JVM은 이 메모리를 여러 영역으로 나누는데, 주요 영역 세 가지다. Method area 클래스가 사용될 때, JVM은 해당 클래스의 클래스 파일*.class를 읽고 클래스에 대한 정보를 이곳에 저장한다. 당연히 클래스 변수도 이곳에 저장된다. Call Stack 혹은 Execution Stack 메서드 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면 콜스택에 메모리가 할당되고, 작업이 끝나면 반환된다. Heap 인스턴스가 생성되는 공간이다. 인스턴스 변수도 이곳에 생성된다. 위에서 말한 호출스택Call Stack은 이런 식으로 동작한다. 클래스(static) 메서드와 인스턴스..

Java 2020.09.06

객체지향1

📚 자바의 정석을 정리한 내용입니다. 객체지향 코드 재사용 유지보수 용이 신뢰성 높은 프로그래밍 클래스와 객체 클래스란 객체를 정의해놓은 일종의 설계도다. 도대체 클래스를 왜 만드는데? 클래스는 일종의 부품이 아닐까? 이를테면 거대한 우주선을 만든다고 하자. 수만가지의 부품이 필요하다. 그렇다고 우리가 그 많은 부품들 직접 만들어서 쓰지 않는다. 이미 누군가 만들어놓은 부품을 그대로 가져와서 쓰는 것이 (합리적이랄 것도 없이)당연한 선택이다. 물론 없는 부품은 직접 만들 수도 있다. 사용자 정의 타입처럼. 아무튼. 클래스로 객체를 만드는 과정을 클래스의 인스턴스화라고 한다. 만들어진 클래스를 우리는 객체(=인스턴스)라고 부른다. 객체의 구성요소 속성property과 기능function이 있다. prope..

Java 2020.09.06

Java란?

📚 자바의 정석을 정리한 내용입니다. 자바란? 썬 마이크로 시스템즈Sun Microsystems에서 개발하여 1996년 1월에 발표된 객체지향 프로그래밍 언어 이 분이 자바를 만든 제임스 고슬링James Arthur Gosling이다 특징 JVM(Java Virtual Machine)을 이용하기 때문에 운영체제에 독립적 객체지향언어(순수하지는 않은 듯) 자동으로 메모리를 관리하는 Garbage Collection JVM Java Virtual Machine. 자바로 만든 애플리케이션은 모두 JVM 위에서 실행된다. 따라서 OS만 거쳐서 컴파일되는 언어에 비해 약간 느리다는 단점이 있다. (byte code를 바로 기계어로 변환해주는 JIT컴파일러 도입으로 지금은 많이 개선됨) 대신, OS에 종속적이지 않..

Java 2020.09.06