Java
-
[Java] 빌더 패턴(Builder Pattern)Language/Java 2020. 8. 26. 01:47
1. 빌더 패턴(Builder pattern) Builder 패턴은 인스턴스를 생성할 때 생성자(Constructor)만을 통해서 생성하는데는 어려움이 있어서 고안된 패턴이다. 클래스에 생성자 인자가 많다면 Builder 패턴을 사용하면 좋다. 왜냐하면 생성자 인자가 너무 많다면 어떠한 인자가 어떠한 값을 나타내는지 알기 어렵기 때문이다. 코드를 보면서 이해해보자. public class User { private int userIdx; // 선택 private String name; // 필수 private String part; // 필수 private int age; // 선택 private String email; // 선택 } 위와 같은 User 클래스에서 필수적으로 받아야 하는 정보, 선택적으..
-
[Java] 내부(inner) 클래스와 내부(inner) static 클래스의 차이Language/Java 2020. 8. 25. 16:58
이번 글에서는 클래스 안에 클래스가 존재하는 경우에 대해서 정리해보려 한다. public class Test { class InnerClass { // InnerClass } static class InnerStaticClass { // static InnerClass } } 내부 클래스(Inner Class)란 위와 같이 클래스 안에 클래스가 존재하는 형태이다. 그러면 내부 클래스에서 static이 붙은 것과 붙지 않은 것의 차이점은 어떤 것일까? 라고 생각했을 때 나는 static이 붙었기 때문에 static 변수, static 메소드처럼 공유해서 사용하는 클래스인가? 라고 생각을 하였다. 하지만 나의 생각은 누구나 한번 쯤 할만한 잘못된 생각이었다. 이유가 무엇인지 알아보자. 1. 내부 클래스 pu..
-
[Java] Java는 Call by Value 일까? Call by Reference 일까?Language/Java 2020. 3. 17. 15:32
https://devlog-wjdrbs96.tistory.com/44?category=830071 [JAVA]Call by Value 와 Call by reference 란 ? C언어를 주로 공부 했던 나는 Call by value 와 Call by reference 에 대해서 call by value 는 값을 넘기는 거고 call by reference 는 포인터를 이용해서 주소를 넘긴다고 알고 있다. 하지만 누군가 나에게 이.. devlog-wjdrbs96.tistory.com Call by Value와 Call by Reference에 대해서는 위에서 참고하길 바란다. 현재 운영하는 블로그는 스스로 공부한 것을 나중에 다시 찾아보기 쉽게 정리하는 공간입니다. 1. Java는 Call by Value..
-
[JAVA] Array.sort 와 Collections.sort 의 차이Language/Java 2020. 1. 13. 18:36
두개의 차이는 그냥 직관적으로도 정렬을 해주는 역할이고, Array.Sort는 배열을 정렬해주는 것이고 Collections.sort는 클래스의 객체를 정렬해주는 것이라고 생각이 든다. 파이썬에서는 sort가 있어서 너무 편했는데 자바는 없는 줄 알았지만 자바도 있었기 때문에 정리하려 한다. 1. Array.sort (오름차순) Array.sort는 java.util.Arrays에 포함되어 있다. 따라서 import를 시켜서 사용을 해야한다. 사용법에 대해서 알아보자. 위처럼 배열을 만들어서 java.util.Arrays를 import 시켜서 Arrays.sort(참조변수)를 하면 정렬이 된다. 정렬이 되는 기준은 오름차순으로 숫자 > 대문자 > 소문자 > 한글순 으로 정렬이 된다. 1-1) 배열 복사 ..
-
[JAVA] ArrayList와 LinkedList의 차이Language/Java 2020. 1. 12. 20:54
ArrayList vs LinkedList 차이 List 인터페이스의 구현체는 뭐가 있을까요? Stack, Vector, ArrayList, LinkedList가 있습니다. 이 중에서도 대표적인 클래스인 ArrayList, LinkedList 차이에 대해 정리해보겠습니다. ArrayList란? ArrayList는 중복을 허용하고 순서를 유지하며 인덱스로 원소들을 관리한다는 점에서 배열과 상당히 유사합니다. 배열은 크기가 지정되면 고정되지만 ArrayList는 클래스이기 때문에 배열을 추가, 삭제 할 수 있는 메소드들도 존재합니다. 하지만 추가했을 때 배열이 동적으로 늘어나는 것이 아니라 용량이 꽉 찼을 경우 더 큰 용량의 배열을 만들어 옮기는 작업을 하게 됩니다. 내부 코드를 보면서 ArrayList에 ..
-
[JAVA] Call by Value 와 Call by reference 란 ?Language/Java 2020. 1. 3. 15:29
C언어를 주로 공부 했던 나는 Call by value 와 Call by reference 에 대해서 call by value 는 값을 넘기는 거고 call by reference 는 포인터를 이용해서 주소를 넘긴다고 알고 있다. 하지만 누군가 나에게 이 개념에 대해서 자세히 묻는다면 나도 깊이있게 이해한 것이 아니기 때문에 위에서 말한 대답정도로만 대답을 할 거 같다. 그래서 먼저 이 개념을 한번 더 정리를 한 후에 JAVA 에서의 Call by value 와 Call by reference 에 대해서 알아보겠다. https://wayhome25.github.io/cs/2017/04/11/cs-13/ 강의노트 12. 함수 호출방식(call-by-value, call-by-reference, call-b..
-
[JAVA] 다중 상속(multiple inheritance) 이란?Language/Java 2020. 1. 2. 04:11
예전에 자바 공부를 할 때는 다중상속 이라는게 잘 이해가 되지 않아 살짝 두려운 내용이었지만, 지금 자바 공부를 다시 하고 있을 때는 이해가 되어서 글로 정리를 해보려 한다. ( 예전엔 이게 왜 어려웠었지? ) 다중상속이 무엇인지 공부를 하기 전에 하나 알아두어야 할 것은 자바의 일반 클래스는 부모 클래스를 단 하나만 가져야 하므로 여러 부모 클래스를 갖는 다중 상속을 지원하지 않는다. 그러나 인터페이스는 추상 클래스보다 더 추상적이므로 여러 인터페이스를 상속받는 다중 상속을 지원한다. 그리고 인터페이스는 클래스가 아니다. 그래서 인터페이스를 구현 하는 클래스는 implements 를 통해서 구현을 하고 인터페이스 끼리의 상속을 받을 때는 extends 를 사용한다. 예를들어 X, Y 라는 인터페이스가 ..