반응형

공부 25

[Java] 예외 처리 코드 (다중 catch / 두 개 이상의 예외 처리 |)

예외 처리 코드 예외가 발생했을 때 프로그램의 종료를 막고 정상 실행을 유지할 수 있도록 처리하는 코드 예외 처리 코드는 try-catch-finally 블록으로 구성되며 생성자 내부와 메소드 내부에서 작성된다. try 블록에서 작성한 코드가 정상 실행되면 catch 블록은 실행되지 않고 finally 블록이 실행된다. try 블록에서 예외가 발생할 경우 예외를 잡기 위해 catch 블록이 실행되고 연이어 finally 블록이 실행된다. 예외가 발생하면 예외 객체가 catch 선언부의 예외 클래스 변수에 대입된다. finally 여기서 알아야 할 점은 예외가 발생하던 안하던 finally 블록은 무조건 실행된다는 것이다. 심지어 try 블록과 catch 블록에서 return문(메소드 종료) 사용을 하더라..

공부/Java 2023.04.12

[Java] 옆사람도 헷갈려하는 추상클래스와 인터페이스 차이점

매주 월요일, 목요일마다 회사 동기들과 Java 스터디를 진행하고 있는데 여주밀탱크로 불리는 사나이 영훈이의 내용이 좋아서 내가 찾은 정보를 더하여 어디 한번 쌈빡하게 정리해보고자 한다. ▶ 추상 클래스 추상 클래스는 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 (부모-자식 관계) 공통의 필드나 같은 부모 클래스의 기능을 사용하거나, 공통으로 사용할 구현된 메소드가 필요할 때 사용한다. ▶ 인터페이스 인터페이스는 서로 관련성이 없는 클래스들이 인터페이스를 구현하게 되는 경우 다중 상속이 필요하거나, 구현 방식 정의 없이 추상화만 필요할 때 사용한다. 추상 클래스(abstract class) 인터페이스(interface) ㆍ다중 상속 불가능 ㆍ일반 메소드와 추상 메소드 모두 가능 ㆍ상속시 추상 메..

공부/Java 2023.04.10

[Java] 자바에서 말하는 라이브러리와 자바 표준 모듈 개념 정리 (Java.lang import 필요없는 이유)

라이브러리(Library) 프로그램 개발 시 활용할 수 있는 클래스와 인터페이스들을 모아놓은 것을 의미 JAR 파일에는 클래스와 인터페이스의 바이트코드 파일(~.class)들이 압축되어 있는데 특정 클래스와 인터페이스가 여러 응용프로그램을 개발할 때 공통으로 자주 사용된다면 JAR 파일로 압축해 라이브러리로 관리하는 것이 좋다. 라이브러리를 사용하려면 라이브러리 JAR 파일을 ClassPath(클래스를 찾기 위한 경로)에 추가해야 한다. [Build Path 설정창 여는 방법 1] 프로젝트 선택 → Build path → Configure Build Path [Build Path 설정창 여는 방법 2] 프로젝트 선택 → Properties → 'type filter text' 창에 Java Build P..

공부/Java 2023.04.10

[Java] 중첩 인터페이스

중첩 인터페이스 클래스의 멤버로 선언된 인터페이스 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위함이다. 외부의 접근을 막지 않으려면 public, A 클래스 내부에서만 사용하려면 private를 붙인다. 접근 제한자를 붙이지 않으면 같은 패키지 안에서만 접근이 가능하다. 위의 예제에서는 외부 접근이 가능하도록 public이면서 Button 객체 없이 사용 가능한 static 중첩 인터페이스로 ClickListener와 onClick 추상 메소드를 선언했다. Button 클래스에 ClickListener 타입의 필드와 setter를 추가해서 외부 setter를 통해 ClickListener 구현 객체를 필드에 저장할 수 있도록 한다. 10라인의 Clic..

공부/Java 2023.04.10

[Java] 생성자나 메소드 내부에서 선언되는 로컬 클래스(local class)

[Java] 클래스 내부에 선언하는 중첩 클래스 중첩클래스 클래스 내부에 선언한 클래스 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 3mmmeee.tistory.com public class A { // 생성자 A() { // 로컬 클래스 선언 class B { } // 로컬 객체 생성 B b = new B(); } // 메소드 void method() { // 로컬 클래스 선언 class B { } // 로컬 객체 생성 B b = new B(); } } 로컬 클래스는 생성자와 메소드가 실행될 동안만 객체를 생성할 수 있다. 로컬 변수(생성자 or 메소드의 매개변수 or 내부에서 선언된 변수)를 로컬 클래스..

공부/Java 2023.04.10

[Java] 클래스 내부에 선언하는 중첩 클래스

중첩클래스 클래스 내부에 선언한 클래스 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 된다. 또한 클래스의 멤버(속성을 표현하는 필드(field) / 기능을 표현하는 메소드(method))를 쉽게 사용할 수 있고 외부에는 중첩 관계 클래스를 감춰서 코드의 복잡성을 줄일 수 있다. 종류 선언 위치에 따른 분류 선언 위치 객체 생성 조건 멤버 클래스 인스턴스 멤버 클래스 class A { class B { ... } } A 객체를 생성해야만 B 객체를 생성 가능 정적 멤버 클래스 class A { static class B { ... } } A 객체를 생성하지 않아도 B 객체 생성 가능 로컬 클..

공부/Java 2023.04.09

[Java] 조건문 정리 (비전공자 관점의 if문·중첩 if문)

if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다. 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나 boolean 변수가 올 수 있다. public class study { public static void main(String[] args) { int score = 95; // 성적이 90점 이상일 경우 합격 if(score >= 90) { System.out.println(score + "점은 합격입니다."); }else { System.out.println(score + "점은 불합격입니다."); } } } // [실행 결과] 95점은 합격입니다. 조건문이 여러 개인 if문도 당연히 존재하는데 else if는 상위 조건식이 false일 경우 평가되고, else if가 tr..

공부/Java 2023.03.30

[Java] 자바의 변수 선언

프로그램은 데이터를 메모리에 저장하고 읽는 작업을 빈번히 수행하는데 데이터를 어디에, 어떤 방식으로 저장할지 정해야 메모리 관리가 용이하다. 프로그래밍 언어는 이러한 문제를 해결하기 위해 변수를 사용한다. 변수(Variable) - 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름 int age; // 정수(int) 값을 저장할 수 있는 age 변수 선언. int(타입) age(이름) 자바 소스 파일명(클래스명)은 대문자로 시작하는 것이 관례이지만, 변수명은 소문자로 시작하고 한글을 포함하지 않는 것이 관례이다. (길이 제한X) 변수가 선언되었다면 값을 저장할 수 있는데 우측 값을 좌측 변수에 대입하는 대입 연산자 '='를 사용한다. int value = 100; 변수에 값을 최초로 대입하는 행위를..

공부/Java 2023.03.29

[Java] 바이트코드 파일과 자바 가상 머신

출처 : 소스 파일(.java) 작성 후 컴파일을 해야 한다. javac(java compiler) 명령어는 소스 파일을 컴파일하는데 결과는 확장명이 .class인 바이트코드(byteCode) 파일로 생성된다. 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불린다. (윈도우, 맥OS, 리눅스 등 어떤 운영체제라도 동일하게 바이트코드 파일 생성된다.) 자바 가상 머신 바이트코드 파일 ( .class)을 특정 운영체제가 이해하는 기계어로 번역하고 실행시키는 명령어는 java이다. java 명령어는 JDK와 함께 설치된 자바 가상 머신(Java Virtual Machine)을 구동시켜 바이트코드 파일을 완전한 기계어로 번역하고 실행시킨다. 바이트코드 파일은 운영체제 상관..

공부/Java 2023.03.29

[Java] 운영체제별 JDK 설치 (Open JDK/Oracle JDK 사이트)

자바 프로그램을 개발하고 실행하기 위해서는 먼저 Java SE(standard Edition) 구현체인 JDK(Java Development Kit)를 설치해야 한다. Oracle JDK는 Open JDK보다 응답성과 JVM 성능이 뛰어나지만, Open JDK의 성능도 지속적으로 향상되고 있는 추세이다. [Open JDK] https://jdk.java.net/ JDK Builds from Oracle Production and Early-Access OpenJDK Builds, from Oracle Looking to learn more about Java? Visit dev.java for the latest Java developer news and resources. Looking for Orac..

공부/Java 2023.03.28
반응형