프로그래밍

    Java ArrayIndexOutOfBoundsException

    Java ArrayIndexOutOfBoundsException

    🤔 ArrayIndexOutOfBoundsException 란? 배열의 index가 유효한 범위를 벗어났다는 예외이다. 💻 Exception에 대해 잠깐 설명해보자. 크게 Runtime Exception과 아닌것들로 나뉘게 된다. Runtime Exception은? Unchecked Exception이라고도 부른다. 명시적인 처리를 강제하지 않지 않음. ( try/catch 또는 throws로 선택 처리 ) 실행단계에서 확인이 가능하다. ex) ArrayIndexOutOfBoundsException, IndexOutOfBoundException, NullPointerException ... Checked Exception은? 반드시 예외처리를 해야한다. ( try/catch 또는 throws로 반드시 처..

    JVM(자바가상머신)이란? - Part 1, 소개

    JVM(자바가상머신)이란? - Part 1, 소개

    JVM(자바가상머신)이란? - Part 2, Execution Engine JVM(자바가상머신)이란? - Part 1 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 ssdragon.tistory.com JVM(자바가상머신)이란? - Part 3, ClassLoader JVM(자바가상머신)이란? - Part 1 자바를 쓰는 개발자라면 누구나 들어봤을 JVM(Java Virtual Machine)을 알아보려고 한다. 자바 바이트코드가 JRE에서 동작을 하는데, 이 JRE에서 가장 중요한 요소는 자바 ssdragon.tistory.com JVM(자바가상머신)이란? - ..

    valueOf() 와 parseInt() 의 차이점

    valueOf() 와 parseInt() 의 차이점

    Integer 라는 래퍼클래스(Wrapper Class)가 가지고 있는 메서드들이다. 이 메서드 두 개는 String을 int로 바꿀수 있다. 하지만 차이점이라면 반환값에 있다. Integer.valueOf("10") 은 Integer 타입으로 반환하고, Integer.parseInt("10") 은 int 타입으로 반환한다. Integer 타입은 기본형 타입(Primitive Type)인 int형의 박싱(boxing)한 결과이다. int형을 객체로 쓰기위한 객체이며, 래퍼 클래스로 감싸고 있는 기본형 타입의 값이라고 볼 수 있다. 그럼 하나씩 자세하게 살펴보자. 🤔 Integer.parseInt() 란 무엇인가? 통합개발환경(IDE)인 이클립스(Eclipse)에서 마우스에 갖다대면 위처럼 나온다. Ret..

    Java ConcurrentModificationException

    Java ConcurrentModificationException

    컬렉션 프레임워크에서 런타임 예외를 보다가 예전에 게임을 만들면서 발생했던 ConcurrentModificationException이 있어서 공부해보기로 했다. 그 때 당시 배열을 조회하는 도중에 추가 및 삭제가 발생되어서 생기는 예외라고 들어서 iterator의 remove()를 사용하여 삭제는 해결했고, 삽입같은 경우는 딜레이를 줘서 예방했던 기억이 있다. 💻 먼저 설명하기 전에 iterator가 무엇인지 알아보자. 자바 컬렉션 프레임워크에서 컬렉션에 저장되어 있는 요소를 읽어오는 방법을 표준화했는데 그것이 Iterator이다. 그래서 컬렉션 인터페이스에는 Iterator를 구현한 클래스의 인스턴스를 반환하는 iterator()가 있다. 🤔 ConcurrentModificationException이란..

    컬렉션 프레임워크(Collections Framework)

    컬렉션 프레임워크(Collections Framework)

    컴퓨터가 효율적으로 자료를 처리하기 위해서는 문제를 자료구조 측면에서 분석하고 구성하여 더 좋은 프로그램을 작성해야 한다. 즉, 프로그래머가 문제를 보다 효율적으로 해결하기 위해서는 자료구조에 대한 개념과 활용능력을 가지고 있어야 한다는 말이다. 🤔 자료구조(Data Structure)란 무엇인가? 우리는 엄청난 양의 자료 속에서 살아가고 있다. 이런 자료를 효율적으로 표현하고 저장하고 처리하여 사용할 수 있도록 하는 것이 자료구조이다. 형태에 따른 자료구조 정수, 실수, 문자, 문자열 등의 데이터 타입에 해당하는 단순구조 단순구조와 일대일 관계를 가지는 선형구조 자료간의 앞뒤 관계가 일대일로 고정되어 있는 자료구조 일대다, 다대다 관계의 비선형구조 자료 간에 선형구조가 아닌 계층(hierarchical..

    Java 언박싱 형변환

    Java 언박싱 형변환

    Java의 언박싱(unboxing) 형변환 Java 8 Language Specification 5.1.8 Unboxing Conversion Chapter 5. Conversions and Contexts class Point { int x, y; } interface Colorable { void setColor(int color); } class ColoredPoint extends Point implements Colorable { int color; public void setColor(int color) { this.color = color; } } final class EndPoint extends Point {} class Test { publ docs.oracle.com 언박싱(unbox..

    함수형 인터페이스(Functional Interface)란 무엇인가?

    함수형 인터페이스(Functional Interface)란 무엇인가?

    https://ssdragon.tistory.com/14 람다식이란? 람다식(Lambda Expressions) 메서드를 하나의 식(expression)으로 표현한 것! 이름이 없는 메서드! 메서드를 람다식으로 표현하면 메서드 이름과 반환값이 없어지므로 익명 함수(anonymous function)라고도 부 ssdragon.tistory.com 위 글의 연장선이다. 함수형 인터페이스에 대해 설명하다보면 람다식이 나오니까 꼭 먼저 읽어보자. 🤔 함수형 인터페이스(Functional Interface) 란 무엇인가? 이것은 하나의 추상 메서드만을 갖는 인터페이스(Interface)이다. 그래야지 람다식과 인터페이스의 메서드가 1:1로 연결될 수 있기 때문이다!! 이 추상 메서드의 매개변수의 개수와 타입, 리..

    람다식이란?

    람다식이란?

    람다식(Lambda Expressions) 메서드를 하나의 식(expression)으로 표현한 것! 이름이 없는 메서드! 메서드를 람다식으로 표현하면 메서드 이름과 반환값이 없어지므로 익명 함수(anonymous function)라고도 부른다. 특히 메서드가 1번만 사용되고 메서드 길이가 짧은 경우 매우 유용하다. 자바에서 메서드(함수)는 혼자서 생존할 수 없다. 객체가 아니기 때문에 클래스도 만들어야 하고, 객체도 생성해야 쓸 수 있다. 하지만 람다식으로 인해 변수처럼 스스로 존재하며 매개변수로 전달하거나 결과로 반환될 수 있다. 즉, 람다식으로 메서드(함수)는 객체로 취급된다는 말이다. 람다식으로 작성하기 메서드를 람다식으로 바꿔보자 먼저 메서드 이름과 반환 타입을 제거하고 매개변수와 몸통 { } 사..