2020-12-31 오늘은 자바의 예외 중에 모든 개발자들이 가장 두려워하는 NullPointerException에 대하여 알아보도록 하자. 해당 예외가 발생하는 경우는 실제 값이 아닌 null(아무것도 아닌 값)을 가지고 있는 객체 / 변수 등을 호출할 경우 발생하게 되는데, 구체적으로 예를 들어 살펴보도록 하자. package eException; public class main { public static void main(String[] args) { String str = null; System.out.println(str.toString()); //str은 null값을 가지고 있어 String 객체가 아니기 때문에 해당 코드 실행시 NullPointerException 이 발생한다. } } 위..
2020-12-29 인터페이스의 경우 구현 클래스를 따로 구현하여 사용하는 것이 일반적이다. 하지만 일회성으로 사용할 경우가 생긴다면, 일일이 클래스를 따로 구현해서 인터페이스를 사용하는 것은 비효율 적일 것이다. 때문에 실행(main) 클래스에서 직접 오버 라이딩하여 사용하는 방법이 있는데 이를 익명 구현 객체라고 한다. 이제 사용법을 알아보도록 하자. package interface_Lambda; public interface human { void name(); void age(); } human 인터페이스는 name / age 두가지 추상 메서드가 있으며, 이제 실행 클래스로 가서 구현하여 사용해보도록 하자. package interface_Lambda; import java.time.LocalD..
2020-12-28 Function 인터페이스는 apply 메서드를 가지고 있으면 매개 값과 리턴 값 모두를 가지고 있다. apply 메서드는 매개 값을 리턴 값으로 맵핑하는 역할을 하게 된다. 그러면 구체적인 사용법을 알아보도록 하자. 아래는 매개값으로 사용할 human 클래스이다. package LambdaFunction; public class human { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int ..
2020-12-27 오늘은 Object 클래스의 속하는 compare 메서드와 Comparator 인터페이스를 알아보도록 하자. 우선 Comparator는 Object의 compare을 재정의해야 사용할 수 있다. 즉 개발자가 원하는 기준으로 데이터를 오버 라이딩을 통해 자유롭게 비교할 수 있도록 도와준다. 우선 Comparator의 구현클래스를 하나 만들어 주었다. package tObject; import java.util.Comparator; public class compare implements Comparator{ private int num; public void setNum(int num) { this.num = num; } public int getNum() { return num; } ..
2020-12-25 우선 Map이란 컬렉션은 key와 value를(key와 value는 모두 객체이다.) 구성된 entry 객체를 저장하는 자료구조이다. 예를 들자면 [ Map map =... ]와 같은 코드가 작성되어 있다면 Map이라는 컬렉션에 키는 String이며, 값으로 Integer 타입의 객체가 들어가고 변수의 이름은 map이라고 해석할 수 있다. 그중에서 HashMap은 Map 컬렉션을 구현하는 대표적 인터페이스이다. 다만 HashMap은 hashcode와 equals 메서드를 재정의 하여 동등 객체의 처리 조건을 재정의 해야 한다. 그러면 사용법을 알아보자. package mMap; import java.util.HashMap; import java.util.Iterator; import ..
2020-12-23 ArrayList와 LinkedList는 언뜻 보기에는 인덱스를 이용해 객체를 저장하여 서로 비슷해 보인다. 하지만 두 list클래스들의 장단점은 명확하다. 오늘은 이 둘의 장단점을 알아보도록 하자. 구체적인 예를 들어 살펴보겠다. 우선 ArrayList의 경우 아래와 같이 처음에 6개의 객체가 있다고 가정해보자. 인덱스는 그러면 0부터 5번까지 객체가 들어 있을 것이다. 근데 아래 이미지와 같이 1번째의 객체가 remove() 메서드 (list.remove(1))를 통해서 제거가 된다면, 해당 제거된 인덱스 뒤에 위치한 객체들이 하나씩 앞으로 당겨져 온다. 그 결과 리스트의 사이즈는 5가 될 것이며, 인덱스 번호는 0 ~ 4번으로 변경되게 된다. 때문에 순서대로 객체를 추가하거나, ..