Java 공부 5

2023/03/28 - 추상클래스와 인터페이스의 공통점과 차이

* 추상클래스와 인터페이스의 공통점과 차이* - 먼저 추상클래스와 인터페이스는 가지고 있는 추상 메서드를 구현하도록 강제하고, 인스턴스화가 불가능하다는 공통점을 가지고 있습니다. 하지만, 추상클래스는 확장의 개념으로 extends를 사용하여 자신의 기능을 자식들에게 물려주는 방식이라면, 인터페이스는 설계의 개념으로 implements 를 사용하여 다중상속이 가능하고, 보다 더 추상화 정도가 높습니다. 정리하자면 추상 클래스 관련성이 높은 클래스 간에 코드를 공유하고 싶은 경우 추상 클래스를 상속 받을 클래스들이 공통으로 가지는 메소드와 필드가 많거나, public이외의 접근자(protected, private) 선언이 필요한 경우 non-static, non-final 필드 선언이 필요한 경우 (각 인스..

Java 공부 2023.03.29

[JAVA] 프레임워크 vs 라이브러리 vs API

프레임 워크의 개념에 대해 공부할 때에는 항상 라이브러리의 개념 혹은 API의 개념과 비교하여 공부하는데 프레임 워크란? 프레임워크는 개발자가 Java 프로그래밍 언어로 어플리케이션을 만들기 위해 사용할 수 있도록 미리 만들어 놓은 코드들을 의미한다. 우리가 파워포인트를 만들때 미리 작성된 템플릿을 이용하듯이 프레임워크 또한 우리가 어플리케이션을 만들때 필요에 따라 사용할 수 있도록 미리 작성된 템플릿이라고 알면 된다. 예시로는 Spring Django Node.js 등이 있다. 라이브러리란? 라이브러리의 사전적 정의로는 컴퓨터 프로그램에서 빈번하게 사용되는 사전 컴파일된 루틴 또는 리소스의 집합이다. 이렇게 정리하면 이해가 되기 어려우니 쉽게 말하자면 우리가 직접 작성하는 class외에 빈번하게 사용되..

Java 공부 2023.03.03

[Java] Lazy Evaluation

Lazy Evaluation이란? Lazy Evaluation은 직역하면 "게으른 연산"이다. java에서의 Lazy Evaluationd은 불필요한 연산들을 피하기위해 연산을 지연시키는 것을 말한다. 불필요한 연산을 피한다라는 것의 이해를 돕기 위해 예시를 들어보자면, public class Lazy { public static void main(String[] args) { ArrayList list = new ArrayList(); for (int i = 0; i i i%2==0) .map(i -> i*10) .collect(Collectors.toList()) ); ..

Java 공부 2023.02.12

[JAVA] Char to Integer : 문자를 정수로 변환하기

Char 형을 Int형으로 바꾸어주기 위해서는 대표적으로 2가지 방법이 있다 아스키 코드를 이용한 변환 자바 라이브러리 안의 Character.getNumericValue() 메소드 사용 나는 두가지 방법중 java 라이브러리 안의 Character.getNumericValue() 메소드 사용을 선호한다. 아스키 코드 (ASKII code)를 사용할 경우보다 코드가 더 깔끔하기 때문이다. Character.getNumericValue() 예시 char c = '1'; int n = Character.getNumericValue(c); System.out.println(n); // 결과: 1

Java 공부 2023.01.25

[JAVA] 26장 I/O - 정의 및 File 클래스 생성자

I/O란 I (Input) / O (Output) 의 약자이며 "아이오" 라고 읽는다. 주로 두가지 경우에 사용된다. 파일을 읽거나 저장할 일이 있을 경우 다른 서버나 디바이스로 보낼 일이 있을 경우 JVM을 기준으로 Input은 파일에 읽을때, Output은 파일을 이용해 데이터를 가져오거나 외부로 전송할때 사용한다. byte 기반의 데이터를 처리할때는 java.io 패키지 안의 Stream 클래스를 사용하고, char 기반의 문자열로 이루어진 문자열 파일을 처리 할 때에는 Reader, Writer 클래스를 사용한다. Java 1.4 이후에는 보다 빠르게 I/O를 처리하기 위해 Buffer와 Channel 기반으로 데이터를 처리하는 NIO (New I/O)가 등장 Java 7 에서는 기존의 단점들을 ..

Java 공부 2023.01.19