본문 바로가기

반응형

백엔드/자바

(15)
자바 - 예외처리 예외 클래스의 계층 구조 RuntimeException 클래스들 - 프로그래머의 실수로 발생하는 에러 Exception 클래스들 - 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException 클래스들은 예외처리를 해주지 않아도 컴파일러가 문제삼지 않는 것을 알아야한다.
자바 - 제어자 제어자는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 - public, protected, default, private 그 외 - static, final, abstract, native, transient. synchronized, volatile, strictfp final을 사용하면 값을 변경할 수 없는 상수가 되며, 메서드에 사용되면 오버라이딩을 할 수 없게 되고 클래스에 사용되면 자신을 확장하는 자손클래스를 정의하지 못하게 된다. abstract는 미완성의 의미를 가지고 있다. 메서드의 선언부만 작성하고 실제 수행내용은 구현하지 않은 추상메서드를 선언하는데 사용된다. 접근 제어자..
자바 - package 패키지란 클래스의 묶음. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있다. 자신만의 패키지 체계를 유지함으로써 같은 이름의 클래스일지라도 서로 다른 패키지에 존재하는 것이 가능하다. 클래스가 물리적으로 하나의 클래스 파일인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. - 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용한다. - 모든 클래스는 반드시 하나의 패키지에 속해야한다. - 패키지는 점(.)을 구분자로 하여 계층 구조로 구성할 수 있다. - 패키지는 물리적으로 클래스 파일을 포함하는 하나의 디렉토리이다.
자바 - Super() super()는 조상 클래스의 생성자이다. 자손 클래스의 인스턴스를 생성하면 자손의 멤버와 조상의 멤버가 모두 합쳐진 하나의 인스턴스가 생성된다. 그래서 자손 클래스의 인스턴스가 조상 클래스의 멤버들을 사용할 수 있는 것이다. 자손 클래스의 멤버가 조상 클래스의 멤버를 사용할 수도 있으므로 조상의 멤버들이 먼저 초기화되어 있어야한다. class SuperTest { public static void main(String args[]){ Child c = new Child(); c.method(); } } class Parent { int x = 10; } class Child extends Parent { int x = 20; void method(){ System.out.println("x=" + x)..
자바 - JVM 메모리 구조 응용 프로그램 실행시, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 메서드 영역 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일을 읽어서 분석하여 클래스에 대한 정보를 이곳에 저장한다. 이 때 그 클래스의 클래스 변수도 이 영역에 함께 생성된다. 힙 인스턴스가 생성되는 공간, 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성. 즉, 인스턴스 변수들이 생성되는 공간. 호출스택 호출스택은 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 호출되면, 호출스택에 호출된 메서드를 위한 메모리가 할당되며, 이 메모리는 메서드가 작업을 수행하는 동안 지역변수들과 연산의 중간결과 등을 ..
자바 - 클래스와 객체 클래스와 객체의 정의와 용도 클래스의 정의 - 클래스란 객체를 정의해 놓은 것 클래스의 용도 - 클래스는 객체를 생성하는데 사용된다. 객체의 정의 - 실제로 존재하는 것, 사물 또는 개념 객체의 용도 - 객체가 가지고 있는 기능과 속성에 따라 다름 객체와 인스턴스 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 객체의 구성요소 - 속성과 기능 일반적으로 객체는 다수의 속성과 다수의 기능을 갖는다. 속성 - 멤버변수, 특성, 필드, 상태 기능 - 메서드, 행위, 함수 클래스의 또 다른 정의 클래스를 데이터와 함수의 결합으로 보는 관점 데이터 저장형태의 발전 : - 하나의 데이터를 저장하기 위해 변수를, - 같은 종류의 데이터..
자바 - Stream, 표준 스트림과 File 클래스 개요 - 다양한 장소에 존재하는 데이터들을 핸들하기 위해서는 입출력 데이터를 처리하는 공통된 방법이 있어야 합니다. - 만약 입출력 데이터를 처리하는 공통된 방법이 없다면 여러분은 각각의 하드웨어 장치에 직접 접근해서 데이터를 읽고 기록해야 할 것입니다. - 키보드로부터 데이터를 읽기 위해서는 키보드가 동작하는 원리를 알아야 하며, 하드디스크에 있는 파일을 읽거나 기록하기 위해서 하위 레벨의 하드 디스크를 알아야 합니다. - 이러한 불편을 없애기 위해서 자바에서는 스트림(Stream)이라는 기법을 제공합니다. 자바에서 제공하는 스트림 메카니즘을 이용하면 입출력 장치가 무엇이든 상관하지 않고 데이터를 읽거나 기록할 수 있습니다. 사용자는 단지 스트림을 상대로 작업하면 되는 것입니다. - 하드웨어적인 요소들..
자바 - Thread and Synchronization (배경, Thread의 기본) 1. 배경 1-1. 프로세스 - 하나의 프로그램 혹은 하나의 프로세스에 해당 - 프로세스의 경우에는 자동으로 운영체제가 관리하기 때문에 완벽하게 멀티 태스킹의 지원을 받을 수 있습니다. 프로그램을 만들고 실행만 시킨다면 운영체제 차원에서 CPU의 시분할(Time Sharing)을 지원받을 수 있습니다. 1-2. 멀티태스킹 - 프로세스(Process)의 경우 운영체제에서 자동으로 관리해 준다. - 운영체제 차원의 프로세스(Process) 관리를 멀티 태스킹(Mutitasking)이라고 한다. 1-3. 프로세스와 스레드 - 하나의 프로세스(Process) 내에는 여러 개의 스레드(Thread)가 존재할 수 있다. - 우리가 목표로 하는 것은 프로그램 단위의 멀티 태스킹이 아니라 하나의 프로그램 내에서 실행되..

반응형