Java/Basic

Java/Basic

자바 예외 처리

자바의 에러 프로그램 실행 중 어떤 원인으로 프로그램이 오작동하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 에러 또는 오류라고 한다. 에러의 종류는 두 가지로 나눌 수 있다. 컴파일 에러 : 컴파일 시 발생하는 에러. (잘못된 구문, 오타, 자료형 문제 등) 런타임 에러 : 실행 시 발생할 수 있는 에러. 예외 계층 자바의 런타임 에러. 즉 예외의 계층은 아래와 같다. Object : 모든 객체의 부모는 Object이다. 예외도 객체이므로 Object를 상속한다. Throwable : 최상위 예외이다. Error, Exception : 자바는 예외를 크게 Error와 Exception 객체로 구분한다. Error 타입 예외가 발생하면 매우 심각한 오류이므로 프로그램의 비정상 종..

Java/Basic

Java 람다식

람다식 람다식(Lambda expression)은 메서드를 하나의 식으로 표현한 것이다. 람다식을 익명 함수라고도 부른다. 람다식의 기본 형태는 메서드의 이름과 반환 타입을 제거하고 매개 변수 선언부와 몸통 사이에 -> 을 추가한다. /* int max(int a, int b) { return a > b ? a : b; } */ (int a, int b) -> { return a > b ? a : b; } 함수형 인터페이스 람다식은 익명 클래스와 동등하다. 익명 클래스 선언 시 익명 객체를 반환하는데 람다식도 마찬가지로 익명 객체를 반환한다. 익명 클래스로 만든 익명 객체는 부모 클래스 타입 또는 인터페이스 타입의 참조 변수로 받아 사용할 수 있었다. 하지만 익명클래스에서 부모를 상속받아 추가적인 멤버를..

Java/Basic

Java 익명 클래스

익명 클래스 클래스 중에는 단 한번만 객체로 생성하고 더 이상 재사용되지 않는 클래스가 있다. 예를 들어 이벤트 처리, 스레드 객체는 보통 프로그램에서 단 한번만 사용된다. 만약 이러한 객체의 클래스를 클래스 파일로 보관한다면 유지보수 측면에서 좋지 않다. 따라서 이런 클래스는 익명 클래스로 만드는 것이 좋다. 익명 클래스(Anonymous Class)는 이름이 없는 클래스를 뜻하며 클래스 선언과 동시에 객체를 생성하는 일회용 클래스다. 이때 생성된 객체를 익명 객체라고 한다. 그 후 더 이상 익명 클래스를 재사용할 수 없다. 익명 클래스를 선언하는 방법 익명 클래스를 선언하는 방법에는 두 가지가 있다. 부모를 상속받은 자식 익명 클래스 선언 인터페이스를 구현한 익명 클래스 선언 객체는 참조 변수로 받아..

Java/Basic

Regex

Regex (정규식) 전체 문자열 또는 문자열의 substring이 어떤 패턴 또는 규칙을 만족하는지 알고싶을때 Regex (정규식)을 사용한다. Regex는 문자열의 패턴을 나타내는 언어이다. Regex 기호 아래의 사이트에 잘 정리되어 있다. 왼쪽 메뉴의 CheatsSheet를 보고 실습하면서 기호를 파악하고 자세한 내용은 RegEx Reference를 참고하자. https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com JAVA에서 사용 String 객체의 matches 메서드는 모든 문..

Java/Basic

[JVM - 2] ClassLoader

ClassLoader 자바 소스 코드가 컴파일된 클래스 파일(.class)은 JVM에 탑재 되어 실행되면서 자바 프로그램이 실행된다. 그러면 어떻게 클래스 파일을 JVM에 탑재시킬까? 자바의 기본적인 클래스 파일은 $JAVA_HOME 내부 경로에 있으며 자신이 만든, 또는 다른 사람이 만든 클래스 파일은 여러 디렉터리에 흩어져 있다. 흩어져 있는 클래스 파일을 찾아 JVM에 탑재(load) 시키는 역할을 하는 것이 ClassLoader이다. ClassLoader는 크게 Loading, Linking, Initialization 3가지 단계로 클래스 파일을 JVM에 탑재한다. Loading은 클래스 파일을 JVM에 탑재하는 과정, Linking은 클래스 파일을 검증하고 기본 값으로 초기화하는 과정, Ini..

Java/Basic

Java 정렬

Array 정렬 배열의 정렬은 Java.util.Arrays의 sort 정적 메서드를 사용한다. 기본 자료형 배열 정렬 int, double, float와 같은 기본 자료형 배열은 오름차순으로 정렬된다. 만약 내림차순으로 정렬하고 싶다면 wrapper class로 변환 후 객체 배열을 정렬하는 방법을 사용하자. import java.io.*; import java.lang.*; import java.util.*; public class Main { public static void main(String[] args) { int[] arr = {3,5,6,4,1,3}; Arrays.sort(arr); for(int num : arr) System.out.print(num + " "); } } 객체 배열 정..

Java/Basic

[JVM - 1] JVM, JRE, JDK

자바의 등장 자바가 등장하기 전 프로그램은 운영체제(플랫폼)에 종속적이었다. 사용자들은 각기 다른 운영체제를 사용했기에 개발자는 각 운영체제에 맞춰 프로그램을 빌드하고 운영체제가 지원하지 않는 코드가 있다면 코드를 다시 짜야했다. 이런 상황속에서 운영체제에 독립적인 프로그램을 만들 수 있는 언어인 자바가 등장했다. 자바의 특징 운영체제에 독립적 JVM을 통해 자바 응용프로그램은 운영체제에 독립적으로 실행된다. 자바 이전의 언어인 C/C++로 만들어진 실행 파일이(.exe)나 목적 파일(.obj)은 운영체제에 종속적이다. 객체지향언어 Garbage collector를 통한 자동 메모리 관리 멀티쓰레드 지원 동적 로딩 (Dynamic Loading) 지원 JVM Java Virtual Machine의 약자로..

gunjoon98
'Java/Basic' 카테고리의 글 목록