java
Java - File read 2가지 방법
Java를 사용하여 파일을 읽어야 하는 경우 여러가지 방법이 있지만, 그 중 2가지 방법을 소개하고자 한다. Files.readAllLines(Path) Files.newBufferedReader(Path) & readLine() Files.readAllLines(Path) Path path = Path.of("/users/user/document/text.txt"); try { List content = Files.readAllLines(path); for(String line : content) { System.out.println(line); } } catch (IOException e) { System.out.println("File open failed : " + e.getMessage()); ..

Java BufferedReader, BufferedWriter 사용법
Java를 배우기 시작하여 입출력을 구현할 때 사용하는 메서드는 일반적으로 출력에는 System.out.println() 메서드를 사용하고 입력에는 Scanner 클래스를 사용하여 구현하게 될 텐데, 알고리즘 문제를 풀다 보면 속도로 인한 문제가 발생하게 됩니다. 이는 System.out.println() 메서드와 Scanner 클래스의 메서드 동작에 걸리는 시간으로 인해서 발생하는 경우도 있기 때문에 이를 해결하고자 입출력 속도가 빠른 BufferedReader와 BufferedWriter 클래스를 찾아서 사용하게 됩니다. 이 때 해당 클래스들의 사용법을 자주 사용을 하다 보면 외워지겠지만.. 아직은 사용법을 찾아서 사용하다보니 사용법을 정리한 포스팅을 작성하게 되었습니다. Buffered? 클래스의 ..

제네릭(Generic)이란?
제네릭에 대한 설명에 앞서, Java에서 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 컬렉션 프레임워크(collection framwork)라고 합니다. 자주 쓰이는 컬렉션 프레임워크의 클래스 구조도를 보면 아래의 이미지와 같습니다. (아래의 이미지에 나와있는 구조도는 간략화되어 있으며, 실제로는 훨씬 더 많고 복잡합니다.) 제네릭(Generic) 위 이미지에서 보면 라던가 라는 표현을 볼 수 있습니다. 해당 표현은 제네릭을 의미하며, 제네릭이란 사전적 의미로 "일반적인"이라는 의미를 갖고 있는 단어입니다. Java에서도 비슷한 의미로 사용되며, 클래스 내부에서 사용할 데이터 타입을 외부에서 파라미터 형태로 지정하여 일반화를 한다는 의미입니다. 즉, 클래스 및..

Java 클래스 검색법
Java에서 필요한 메서드를 찾을 때, 사용하고 있는 클래스의 문서를 참고하면 어떠한 메서드들이 있는지 알 수 있습니다. 여기서 말하는 문서란 Java의 공식 문서이며, Oracle에서 Java 버전별로 클래스의 문서를 제공하고 있습니다. 해당 문서를 검색하는 방법은 구글에 간단하게 "Java String doc" 이런 식으로 검색하시면 해당 클래스에 대한 문서가 나옵니다. 위 이미지처럼 구글링 시 나오는 페이지 중 Oracle Help Center 페이지를 참고하시면 됩니다. URL로는 docs.oracle.com인 사이트입니다. 해당 사이트를 들어가 보면 아래와 같은 이미지를 볼 수 있습니다. 아래의 이미지는 살짝 아래로 이동한 상태입니다. 보시면 필드 및 생성자, 메서드 요약(summary) 항목이..
![[2022.05.24] 자료구조/알고리즘 - 재귀](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbyzjBu%2FbtrH1CcXbL8%2FAAAAAAAAAAAAAAAAAAAAAFm-HiBp1p3gJj5NOtsY25s2MW-saSILy3sW2oJBjf4d%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dp%252BW65IH1m0YEXOQF8xV9T5hsbU8%253D)
[2022.05.24] 자료구조/알고리즘 - 재귀
Section1이 끝나고 Section2가 시작되었다! Section2부터는 매일 간단한 코딩 테스트 문제 1개를 풀기 시작하였다. 그리고 오늘은 자료구조/알고리즘에서 재귀함수에 대해 공부를 하였다. Daily coding 오늘은 입력받은 배열의 첫 요소와 마지막 요소를 뽑아 이를 각각 Key와 Value로 HashMap으로 만들어 반환하는 메서드를 구현하는 문제였다. 이제 시작인 부분이기 때문에 쉬운 문제가 출제된 것 같으나.. HashMap을 초기화하는 방법을 몰라서 검색을 해봐야 했다. 검색 결과 HashMap을 초기화하는 방법은 아래와 같이 구현이 가능하다는 사실을 알았다. new HashMap(){ { put("Key", "Value"); } } 처음 생각할 땐 "new HashMap(){ "K..
[2022.05.12] OOP 심화 1/2 - 상속화, 캡슐화
OOP의 4가지 특징 상속화 캡슐화 다형화 추상화 오늘은 위 4가지 특징 중 상속과 캡슐화에 대한 공부를 진행하였고, 해당 내용들을 두서없이 정리한 게시글입니다. 틀린 내용이 있다면 알려주세요! 상속(inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 문법 요소 상위 클래스와 하위 클래스로 나뉘며, 상위 클래스의 멤버(필드, 메서드, 이너클래스)를 하위 클래스에게 내려주는 것 이때 "두 클래스를 서로 상속 관계에 있다."라고 표현 하위 클래스는 상위 클래스가 갖는 모든 멤버를 상속받기 때문에 상위 클래스의 멤버 개수와 비교를 했을 때 언제나 같거나 많다. 상위 클래스 - 하위 클래스의 관계를 "부모 - 자식" 관계로 표현하기도 한다. (But, 상위 - 하위 클래스라는 표현이 바람..
클래스와 인스턴스 - class & instance
TIL 순서가 밀리기도 했고.. Java 관련 설명이 대부분이라 Java 카테고리에 작성하였습니다. 해당 게시글의 내용은 2022년 05월 10~11일에 공부한 내용입니다. 두서없이 편하게 정리하였음을 참고해 주세요. 작성된 내용 중 틀린 내용이 있다면 알려주세요! OOP의 맨 첫 글자인 Object, 즉 객체를 만들기 위해서 Java에서는 어떤 개념들을 사용하는가? 클래스(class) 객체(object) 인스턴스(instance) 인스턴스화(instanciate) 위 개념들을 사용하여 OOP를 구현하고 있으며, Java에서 클래스와 인스턴스를 어떻게 사용하는지 알아보자 (각 개념들의 내용은 이전에 작성했었던 게시글인 OOP - 객체 지향 프로그래밍을 참고하여 주세요.) 추가로 static과 java의 ..