반응형

Java 69

[Java] File 클래스, 대표 함수들 간단한 정리

[Java] File 클래스, 대표 함수들 간단한 정리 경로 구분자: \\ 또는 / cf. [return type] boolean isExist = file.exists(); 로 파일 존재하는지 확인 - ∵ 해당 파일 없어도 file 객체는 생성됨 isFile(), isDirectory() [boolean] createNewFile() & delete() [boolean] mkdir() [boolean] getName() [String] - 파일 이름을 리턴 - ex. file.getName(); getParentFile() [File] - 부모 디렉토리를 file 객체로 리턴 list(), list(FilenameFilter filter) [String[]] - 디렉터리에 포함된 파일/서브디렉터리 리스..

Java 2021.12.13

[Java] 자바의 예외 종류

Exception 1. IOException 2. ClassNotFoundException 3. ... 4. RuntimeException: 프로그래머 실수로 발생한 에러 1) ArithmeticException 2) ClassCastException: 형변환 에러 3) NullPointerException 4) ... 5) IndexOutOfBoundsException: 배열 범위 벗어나서 발생한 에러 NullPointerException이 발생하지 않게하려면? String str = null; str.length(); // Error String str = ""; str.legnth(); // OK Object[] objArr = null; // Error Object[] objArr = new Ob..

Java 2021.11.12

[Java] 지네릭스(Generics)에 대한 간단한 설명

지네릭스(Generics)란? 지네릭스란 컴파일시 타입을 체크해 주는 기능이다. (JDK 1.5 이상부터 가능) ArrayList coffeeList = new ArrayList(); coffeeList.add(new Coffee()); // 컴파일 성공 coffeeList.add(new Cake()); // 컴파일 에러 (JDK 1.5 이전에는 컴파일 성공됐음) 지네릭스 도입 이후(JDK 1.5 이후)부터는 ArrayList list = new ArrayList(); 라고 쓰기보다는 ArrayList list = new ArrayList(); 라고 쓰는 것이 더 좋다. 지네릭스를 사용하지 않아도 에러가 나는 것은 아니지만, 지네릭스 도입 이후 버전에서는 전자와 같이 쓰는 것은 좋은 코드가 아니다. (*..

Java 2021.11.11

[Java] 내부 클래스의 접근성

내부클래스에서 중요한 것은, static 클래스만 static 멤버를 정의할 수 있다는 것이다. static 멤버는 객체 생성 없이 사용 가능해야하기 때문에 클래스도 static 클래스여야 한다. (단, final static은 상수이므로 가능) static 내부클래스에서는 외부클래스의 인스턴스 멤버에 접근할 수 없다. 클래스 변수가 인스턴스 변수에 접근할 수 없는 것과 원리는 같다. (출처: 유튜브 남궁성의 정석코딩)

Java 2021.11.10

[IntelliJ] 인텔리제이 프로젝트 깃허브에 올리기

[IntelliJ] 인텔리제이 프로젝트 깃허브에 올리기 1. Git 설치한 후 IntelliJ에 Path 설정하기 Git 설치는 https://git-scm.com에서 가능하다. path 설정 확인은 IntelliJ에서 다음의 경로에서 한다. File > Settings > Version Control > Git > Path to Git executable 2. IntelliJ에 GitHub 계정 연동하기 다음 경로를 통해 IntelliJ에서 GitHub 계정을 등록한다. File > Settings > Version Control > GitHub 3. Local Repository 생성하기 VCS > Share Project On GitHub > Repository name 입력 > Share Shar..

Java 2021.10.05

[Java] spring과 spring boot의 차이는 무엇일까?

[Java] spring과 spring boot의 차이는 무엇일까? spring은 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 프레임워크이다. 여기서 엔터프라이즈 애플리케이션이란, 대규모 데이터 처리나 트랜잭션을 처리하는 기업용 애플리케이션을 의미한다. 하지만 옛날에는 여러 가지 라이브러리를 설정하면서 작업해야했기 때문에, 이 과정에서 버전 충돌 등 여러 에러가 있었고, 자바는 생산성이 떨어진다는 말도 흔했다. spring 자체도 당시에는 개발자가 개발에만 집중할 수 있도록 설계된 것이었지만, spring boot는 개발자가 더욱 개발에만 집중할 수 있도록 설계된 프레임워크이다. spring boot는 spring 프로젝트를 개발하면서 기본적으로 설정해야하는 라이브러리들을 미리 내장하고 있거나 간편하..

Java 2021.09.07

[Java] 람다식 (Lambda Expression, 람다 표현식)

[Java] 람다식 (Lambda Expression, 람다 표현식) 람다식은 함수(메서드)를 간단한 식(expression)으로 표현하는 바법이다. 람다식은 익명 함수(anonymous function)와 비슷한데, 사실은 익명 객체이다. 익명 클래스처럼 객체의 선언과 생성을 동시에 한다. 함수 vs 메서드 함수와 메서드는 근본적으로는 동일하다. 함수는 일반적 용어이고, 메서드는 객체지향 개념의 용어이다. 함수는 클래스에 독립적이며, 메서드는 클래스에 종속적이다. 람다식 작성하기 1. 메서드의 이름과 반환타입을 제거하고 '->'를 블록{} 앞에 추가한다. int max(int a, int b) { return a>b ? a : b; } ↓ ↓ (int a, int b) -> { return a>b ? ..

Java 2021.08.19

[Java] 내부 클래스 (inner class, 중첩된 클래스)

내부 클래스는 말 그대로 class 안에 또 다른 class를 넣는 것이다. 클래스 내부에 구현한 중첩된 클래스이며, 클래스 내부에서 사용하기 위해 선언하고 구현하는 클래스이다. 주로 외부 클래스 생성자에서 내부 클래스를 생성한다. class A { // 외부 클래스 class B { } // 내부 클래스 } 내부 클래스를 만들면 객체 생성 없이도 외부 클래스(class A)의 멤버에 쉽게 접근이 가능하다. 또한 코드의 복잡성을 줄일 수 있다. 내부 클래스에는 아래와 같은 종류가 있다. class Outer { class InstanceInner {} // 인스턴스 내부 클래스 static class StaticInner {} // 스태틱 내부 클래스 void myMethod() { class Local..

Java 2021.08.19

[Java] 컬렉션 프레임워크 (Collections Framework)

[Java] 컬렉션 프레임워크 (Collections Framework) 컬렉션은 여러 객체(데이터)를 모아 놓은 것을, 프레임워크는 표준화·정형화된 체계적인 프로그래밍 방식을 의미한다. 참고로, 자바에는 Spring 프레임워크가 유명하다. 그렇다면 컬렉션 프레임워크는, 프로그램 구현에 필요한 자료구조와 알고리즘을 구현해 놓은 라이브러리이며, 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식이다. 이를 이용하면 개발에 소요되는 시간을 절약하고 최적화된 라이브러리를 사용할 수 있다. 컬렉션 프레임워크에서는 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공하며, 이러한 클래스를 컬렉션 클래스라고 부른다. (컬렉션 클래스 ex. Vector, ArrayList, HashSet) java.u..

Java 2021.08.18

[Java] Generics란? 지네릭 프로그래밍(지네릭스)

[Java] Generics란? (지네릭스, 제네릭스) 지네릭스(Generics)란 컴파일시 타입을 체크해 주는 기능이다. (JDK 1.5 이상부터 지원된다.) 지네릭스 도입 전에는 형변환 에러(ClassCastException)가 일어날 때, 컴파일 에러는 나지 않았도 실행시 에러(Runtime Error)가 발생하는 경우가 있었다. 지네릭스 도입 후에는 컴파일 에러로 바로 알려준다. 지네릭스는 객체의 타입 안정성을 높이고, 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. 지네릭 도입 전 ArrayList list = new ArrayList(); list.add(1); list.add("2"); // String을 추가했지만 컴파일 에러는 나지 않고, 실행시 에러가 난다. 지네릭 도입 후 ..

Java 2021.08.18
반응형