[Java] File IO

Featured image for [Java] File IO

  1. 노드스트림 가. InputStream System.in도 InputStream 타입이다. 메서드 설명 read() byte 하나를 읽어서 int로 반환. 더 이상 읽을 값이 없으면 -1 반환. read(byte[] b) 데이터를 읽어서 b에 넣고 읽은 바이트의 개수를 반환. 더 이상 읽을 값이 없으면 0 반환. read(byte[] b, int offset, int len) 최대 len 만큼 데이터를 읽어서 b의 offset부터 저장하고 읽은 … 더 읽기

[Java] 람다식

1. Lamda 표현식 고작 Inter.calc(1, 2)를 한 번 실행하기 위해서 Inter 인터페이스를 구현하는 InterImpl 클래스도 정의해야 하고 InterImpl impl 객체도 생성해야 하고 이를 s.m1()으로 전달까지 해야 한다. 결국 전달하고 싶은 것은 구체적으로 정의된Inter.calc() 메서드다. 이때 불필요한 코드를 획기적으로 줄일 수 있는 방법이 람다식이다. 가. Anonymous inner class InterImpl처럼 단 한 번만 사용하는데 .java 파일을 만드는 … 더 읽기

[Java] Collection

Featured image for [Java] Collection

1. Collection Framework 데이터를 저장하기 위한 개발자들의 몸부림. 한계점 : 한번 정해진 배열의 크기를 변경할 수 없다. 이미지 출처 : https://beginnersbook.com/java-collections-tutorials/ 모든 Collection은 Iterator interface를 구현한다. Iterator는 3 가지 메서드를 가지고 있다. 이러한 기능을 조합하면 다수의 데이터를 순차적으로 처리할 수 있다. Iterator (Java Platform SE 7 ) interface 특징 중복 종류 List 입력 순서가 있는 … 더 읽기

[Java] 예외 처리

Featured image for [Java] 예외 처리

1. 예외 처리   Error Exception 상황 프로그램을 잘못 작성자바가 해결할 수 없는 심각한 오류 프로그램을 잘못 작성한 경우프로그램의 작성 의도와 달리 사용되는 경우자바가 처리할 수 있는 오류 대처 디버깅으로 코드 개선 디버깅으로 코드 개선예외 처리 코드로 상황 수습 예 메모리 부족, stack overflow 등 null인 객체의 사용, 1/0, 읽으려는 파일이 없음. 가. 예외 클래스의 … 더 읽기

[Java] String

Featured image for [Java] String

1. String 객체의 불변의 원칙 String 문자열은 불변한다. ”java”는 “algo”로 변하지 않는다. 값이 “java”와 “algo”인 2개의 String 객체를 생성한다. ss는 참고값만 바꾼다. 하지만 기존의 객체(ss)는 변하지 않는다. toUpperCase()가 새로운 문자열을 결괏값으로 반환할 뿐이다. String만 예외적으로 불변이다. 2. String을 조심해서 사용해야 하는 이유 자바는 연산자 오버로드가 없기 때문에 특수한 과정을 겪게 된다. 대표적으로 + 하면 컴파일러는 … 더 읽기

[Java] 인터페이스

Featured image for [Java] 인터페이스

1. abstract class 가. 추상 클래스 정의 클래스들의 공통 모듈을 모아서 상속 구조로 정리 Vehicle에서 구현한 코드는 반드시 자손 클래스에서 재정의해서 사용하기 때문에 무의미함. 메서드의 선언부만 남기고 구현부는 ;로 대체 abstract 키워드를 메서드 선언부에 추가. 객체를 생성할 수 없다는 의미로 클래스 선언부에 abstract 추가. 이런 형태를 Abstract method design pattern이라고 한다. abstract 클래스는 상속 전용의 … 더 읽기

[Java] 다형성

Featured image for [Java] 다형성

다형성에 대하여 정리하기 전에 접근제한자를 활용하는 거 조금 공부함. 1. 접근제한자 활용 가. Encapsulation 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 나. Singleton 디자인 패턴 객체 생성을 제한해야 하는 경우가 있다. 외부에서는 언제나 getter를 통해서 객체를 참조하므로 하나의 객체를 재사용. 2. 다형성 하나의 객체가 다수의 형(타입)을 가질 수 있는 성질. 가. 다형성의 … 더 읽기

[Java] 상속

Featured image for [Java] 상속

1. 상속 가. 객체지향 언어의 특징 특성 내용 추상화 현실의 객체를 추상화 해서 클래스를 구성한다. 다형성 하나의 객체를 여러 가지 타입으로 참조할 수 있다. 상속 부모 클래스의 자산을 물려받아 자식을 정의함으로 코드의 재사용이 가능하다. 캡슐화 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호할 수 있다. 나. 상속 다. Object 클래스 모든 클래스의 공통 조상. 별도의 … 더 읽기

[Java] 객체지향

Featured image for [Java] 객체지향

1. 객체 2. Class vs Object 현실의 객체가 갖는 속성과 기능은 추상화(abstraction) 되어 클래스에 정의된다. 클래스는 구체화되어 프로그램의 객체(instance, object)가 된다. 3. 객체 생성과 메모리 가. JVM의 메모리 구조 💡 JVM 버전에 따라 조금씩 달라질 수 있음. JVM의 메모리 구조는 크게 3가지로 나누어짐. PersonTest.main() 메서드부터 실행. metaspace에서 정보를 가져와 stack 영역에 main 메서드와 필요한 로컬 … 더 읽기

[Java] 배열

Featured image for [Java] 배열

1. 배열 가. Array Type arr의 타입은 Reference Type 중 Array Type이다. 나. 배열 선언 아래는 자료형마다 가지는 기본값이다. 자료형 기본값 boolean false char ‘\u0000’ byte, short, int 0 long 0L float 0.0f double 0.0 Reference Type null (아무것도 참조하지 않음.) 다. 배열의 성질 배열은 immutable 하다. 배열은 최초 메모리 할당 이후, 변경할 수 없음. … 더 읽기