애노테이션(@, Annotation)이란? 사전적 의미로는 주석을 의미하며, 프로그램에 대한 데이터를 제공하는 메타데이터의 한 종류이다. 소스코드에 대한 문서를 따로 만들기 보다는 소스 코드와 문서를 하나의 파일로 관리하는 것이 더 낫다고 생각했다고 한다. 그래서 개발 시 설명이 필요한 부분의 경우 /**~*/ 안에 해당 로직에 대한 설명을 달고 이러한 주석으로 부터 HTML 문서를 생성하는 프로그램(javadoc.exe)을 만들고 사용했었다. 이 기능을 응용하여 프로그램 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이 애노테이션이라고 한다. 예를들어, 자신이 작성한 소스코드 중에서 특정 메서드만 테스트하기를 원한다면, 다음과 같이 '@Test'라는 애너테이션을 메서드 앞에..
열거형(enums)란? 열거형 이란 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 원래 자바는 C 언어와 달리 열거형이라는 것이 존재하지 않았으나 JDK1.5부터 새로 추가되었다. 자바의 열거형은 C 언어의 열거형 보다 더 향상된 것으로 열거형이 갖는 값 뿐만 아니라 타입도 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다. class Card{ static final int CLOBER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int SPADE = 3; static final int TWO =0; static final int THREE = 1; static f..
프로세스(Process)와 쓰레드(Thread) 프로세스란 '실행중인 프로그램(Program)'이다. 프로그램을 실행하면 OS로 부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드이다. 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스(Multi-threaded process)' 라고 한다. 쓰레드(Thread) 구현과 실행 쓰레드를 생성하는 방법은 크게 두가지가 있다. Thread 클래스를 사용 Runnable 인터페이스를 사용 Runnable 과 Thread 모두..
예외 클래스의 구조 Throwable 클래스를 상속받는 클래스는 Error와 Exception 이 있는데 모든 예외의 최고 조상 클래스는 당연히 Exception 이다. java.lang.Throwable class가 Java Exception의 Root Class이다. Throwable 클래스에 선언되어 있고, Exception 클래스에서 오버라이딩한 메소드는 10개가 넘으며, 가장 많이 사용되는 메서드는 다음과 같다. getMessage() 예외 메시지를 string 형태로 제공받는다. 예외가 출력되었을때 어떤 예외가 발생되었는지 확인할 때 매우 유용하다. 메시지를 활용하여 별도의 예외 메세지를 사용자에게 보여주려고 할 때 좋다. toString() 예외 메세지를 String 형태로 제공 받는다. g..
예외(Exception) 이란? 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 자바에서는 에러(Error)라고 한다. 에러는 JVM 실행에 문제가 생겼다는 것이므로, 프로그램은 실행 불능이 된다. 프로그래머는 이러한 에러에 대처할 방법이 없다. 예외(Exception)이란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인하여 발생하는 오류이다. 예외가 발생하면 프로그램이 종료된다는 점은 에러와 동일하나, 예외처리(Exception Handling)을 통해 프로그램을 종료하지 않고 정상 실행상태를 유지할 수 있다. 예외(Exception) 예시 존재하지 않는 파일을 열려고 시도하는 경우 FileNotFoundException 예외가 발생한다. BufferedRea..
인터페이스(Interface) 인터페이스는 일종의 추상 클래스이다. 인터페이스는 추상 클래스처럼 추상 메서드를 갖지만 추상 클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상 메서드와 상수만을 멤버로 가질 수 있다. 추상 클래스를 부분적으로만 완성된 '미완성 설계도' 라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑그림만 그려져 있는 '기본 설계도' 이다. 인터페이스 정의 interface 인터페이스 이름 { public static final 타입 상수 이름 = 값; public abstract 메서드 이름(매개변수 목록); } inteface 키워드 사용 interface에도 클래스와 같이 접근 제어자로 public ..
접근 지정자(접근 제한자)(Access modifier) 접근 지정자는 객체 지향의 4대 개념(추상화, 캡슐화, 상속, 다형성)에서 캡슐화와 관련되어 있다. 즉, 캡슐화라는 개념이 포함하고 있는 '은닉화'와 밀접한 관련이 있다. 접근 지정자에는 public, protected, default, private 4종류가 있다. 접근 지정자의 접근 가능 범위 private < default < protected < public 접근 지정자 접근 범위 동일 클래스 동일 패키지 다른 패키지의 자식 클래스 다른 패키지 public 접근 제한 없음 O O O O protected 동일 패키지/상속 받은 서브 클래스 O O O X default 동일 패키지 O O X X private 동일 클래스 O X X X ☞ p..
클래스 패스(CLASSPATH)란? JVM이 프로그램을 실행할 때, 클래스파일을 찾는데 기준이 되는 파일 경로를 의미한다. *.class 실행 파일(바이트 코드)을 찾는 경로이다. 만약 클래스 패스를 설정하지 않았다면, 디폴트는 현재 경로를 바라보게 된다. 소스 코드를(.java)를 컴파일 하면 소스코드가 '바이트 코드(바이너리 형태의 .class 파일)'로 변환한다. java runtime(java 또는 jre)로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾을 수 있어야 한다. 이때, .class파일을 찾을 때 classpath 에 지정된 경로를 사용한다. classpath는 .class 파일이 포함된 디렉토리와 파일을 콜론으로 구분한 목록이다. java runtime은 이 c..
- Total
- Today
- Yesterday
- 프로세스 주소공간
- 보험
- 리스트 복사
- CS.
- 정렬
- 리스트
- 프로그래머스강의
- 운영체제
- 데이터베이스
- 이진탐색
- https
- 리스트함축
- CS
- 스터디
- CS 스터디
- It
- 완전탐색
- SW
- 연결리스트활용
- 프로그래머스
- 파이썬
- 자바
- 코드업 기초
- 네트워크
- 리스트2
- 자료구조와알고리즘 23강
- 자료구조
- 알고리즘
- Greedy sort
- 이차 리스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |