목록Java & Kotlin (15)
DOing
새 프로젝트의 요구사항 중에 '리스트 내 요소들은 중복되지 않아야 합니다'가 있었습니다. 리스트 내 요소들이 중복되는지를 확인하고, 있다면 예외를 발생시켜야 했습니다. 이와 같은 상황을 어떻게 자바에서 해결해야할지 알아보도록 하겠습니다. 1. Set 이용 : Set은 중복을 허용하지 않는 자료구조 입니다. : 리스트를 set으로 변환해서 크기를 비교합니다. 크기가 달라졌다면 리스트에 중복된 요소가 있었다는 것을 의미합니다. public static void main(String[] args) { List numList = Arrays.asList(1,1,2,3,4,5); // Set 으로 변환 Set numSet = new HashSet(numList); if(numSet.size()!= numList...
💡 컬렉션? 자바에서 자료구조를 표현하는 인터페이스이다. 컬렉션을 구현한 자료구조에는 List, Stack, Queue, Set, Map이 있다. 자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어진다. 대표적으로 기본 타입에는 char, int, float, double, boolean 등이 있고 참조 타입은 class, interface 등이 있다. Collection의 자료형에는 primitive 타입은 올 수 없다. primitive 타입에 해당하는 wrapper class 가 존재하니 그것을 대신 사용하자. List ingeterList = new ArrayList(); List stringList = new ArrayList(); 💡..
LocalDate : 날짜 타입 LocalTime : 시간 타입 LocalDateTime : 날짜 + 시간 타입 💡 현재 시간 알아내기 public class Main { public static void main(String[] args) { System.out.println("현재 시간 알아내기"); LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime = LocalDateTime.now(); System.out.println(date); // 2021-08-12 System.out.println(time); // 12:30:33.0000021 System.out.println(dateTime..
예외처리의 목적 1. 예외의 발생으로 인한 실행 중인 프로그램의 비정상 종료를 막기 위해서 2. 개발자에게 알려서 코드를 보완할 수 있도록 하게 위해서 🧐 자바의 예외 클래스 - Error : 프로그램이 종료되어야하는 심각한 상황이다. : 대부분 컴퓨터나 JVM이 시스템적으로 동작할 수 없는 상황을 표현한다. - Exception : 프로그램이 종료되지는 않지만 처리되어야하는 예외나 문제상황을 표현하기 위해 사용한다. 🧐 Try - Catch - Finally구문 try에는 예외가 발생할 가능성이 있는 코드를 넣는다. catch에는 에러 발생시 처리해야할 코드를 넣는다. finally에는 예외의 발생여부에 관계없이 항상 수행되어야하는 코드를 넣는다.(선택 사항) import java.io.FileOutp..
🌱 접근 제어자(한정자) 멤버 변수와 메소드에는 접근 제어자를 지정할 수 있다. 접근 제어자를 사용하는 이유는 객체들간 관계에 따라서 접근할 수 있는 것과 아닌 것, 권한을 구분하기 위해서이다. 클래스 내부에 선언된 데이터의 부적절한 사용으로부터 보호해야하는데 이것을 바로 캡슐화라고 한다. 접근 제어자는 캡슐화를 돕는 도구 중 하나이다. 동일한 클래스 같은 패키지 내 모든 클래스 다른 패키지의 상속된 클래스 다른 패키지의 상속되지 않은 클래스 public O O O O protected O O O X default O O X X private O X X X private : 어떠한 경우에도 사용이 불가능하다. 해당클래스 내부에서만 사용가능하다. default : 동일한 패키지라면 상속 여부에 상관없이 사..
에러를 보아하니 딱봐도 인텔리제이 사용하는 동안 앞으로도 자주 날 것같은 에러다. 두고두고 봐야할 것같아서 포스팅하려고 한다. 😕 MS949 에러 1. unmappable character for encoding MS949 에러 발생 윈도우의 기본 인코딩은 MS949이다. 한글을 제대로 인식할 수 없기때문에 일어나는 문제였다. 파일 인코딩 설정을 MS949에서 UTF-8로 변경해주면된다. 인코딩이란 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 말한다. 내가 짠 코드를 컴퓨터가 해석할 수 있게 만들어주려고 하는 과정에서 에러가 난 것이다. 2. File > Settings 3. Editor > File Encodings 4. UTF-8로 설정 -> OK 5. 에러 해결! 일..
🌱 클래스 클래스? 클래스란 속성(상태) + 메소드(행위)를 정의해놓은 것이다. ex ) 붕어빵틀 인스턴스? 인스턴스란 클래스로부터 만들어진 객체이다. ex ) 붕어빵 [ 코드 : 클래스 사용하기 ] class Phone { String model; String color; int price; void printInfo(){ System.out.println("철수는 이번에 " + model + color + " 색상을 " + price + "만원에 샀다."); } } public class Main { public static void main(String[] args) { Phone galaxy = new Phone(); galaxy.model = "Galaxy10"; galaxy.color = "B..