Java
-
[Java] Java8 default 인터페이스Java 2022. 2. 28. 16:38
default interface란? interface라 하면 추상화를 위해 method의 구현은 없고 선언만 있는 모습을 떠올리기 쉽습니다. public interface MyInterface{ int myAbstractMethod1(); int myAbstractMethod2(); } 하지만 Java8에서는 interface에 아래와 같은 method들을 정의하는 것이 가능해졌습니다. public interface MyInterface { int myAbstractMethod1(); int myAbstractMethod2(); default int myDefaultMethod() { return 0; } static int myStaticMethod() { return 0; } } 키워드 default..
-
[Java] 자바의 인자 전달 방식 (call by value와 call by reference)Java 2022. 2. 27. 00:01
우선 call by value와 call by reference에 대해 먼저 설명해 드리겠습니다. Call-By-Value (값에 의한 호출) package javastudy; public class callByValueTest { public static void main(String[] args) { int x = 3; int y = 5; System.out.println(x + " " + y); swap(3,5); System.out.println(x + " " + y); } static void swap(int x, int y) { int temp = x; x = y; y = temp; } } 위의 코드의 출력 결과는 어떻게 될까요? 첫 번째 줄에는 당연히 3 5가 출력됩니다. swap이라는 메서..
-
[Java] 이클립스 글자 안 보일 때 해결 방법(이클립스 흰 화면 출력 시 해결 방법)Java 2022. 2. 26. 00:01
갑자기 잘되던 이클립스가 아래와 같이 아무것도 보이지 않고 엄청나게 큰 커서만 깜빡거리는 상황이 발생하였습니다. 오류 사진 첨부 우선 우클릭을 눌러 Preferences로 들어가 우측 상단에 font를 검색하여 Colors and Fonts로 이동합니다. Aa라는 이미지 옆에 공백이 있습니다. Use System Font를 사용하게 되면 다음과 같이 공백이 글자로 바뀌게 됩니다. 이후에 Apply and Close를 누르게 되면 글자가 잘 출력됩니다.
-
[Java] Java Collection Framework의 모든것을 알아보자Java/자바를 더 깊게 2022. 2. 22. 17:29
Java Collection Framework(JCF)란? Collection이란 객체 그룹을 나타내는 객체입니다. Collection 에 기본형 int를 넣지 못하고 객체인 Integer를 넣는 것을 떠올리시면 됩니다. 컬렉션 프레임워크는 컬렉션을 표현하고 조작하기 위한 통합 아키텍처로, 세부 구현 사항과 독립적으로 컬렉션을 조작할 수 있습니다. 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것으로 생각하시면 됩니다. Framework vs Library 둘 다 개발 생산성을 증가시켜준다는 공통점이 존재하지만 제어를 누가 할 수 있느냐에 따른 차이점이 있습니다. 라이브러리는 개발자가 라이브러리를 제어할 수 있으며, 프레임워크는 프레임워크가 개발자를 제어합니다..
-
[Java] DTO, DAO, VO란?Java 2022. 2. 19. 00:01
자바를 공부하던 중 DTO, DAO라는 단어들이 많이 보여서 확실하게 개념을 잡고 가고자 정리하게 되었습니다. DAO란? Data Access Object의 약자로, 데이터베이스의 data에 접근하기 위한 객체입니다. 데이터베이스에 접근하기 때문에 Service와 DB를 연결하는 고리의 역할을 합니다. jdbc와 같은 곳에서 db connection을 받아오거나, DB와 서로 통신하는 기능을 담당하는 객체를 뜻합니다. 아래의 코드는 DAO 클래스의 예제입니다. jdbc쪽 안 써보셨다면 이해가 어려울 수 있지만 단순히 DB와 연결하여 통신(조회, 삭제, 수정)할 수 있는 객체입니다. 코드를 보시면 List를 반환하네요? MemberDto라는 객체의 리스트를 반환하는데 DTO란 무엇인지는 아래에서 살펴보겠습..
-
[Java] JVM이란? JVM(Java Virtual Machine)의 모든것을 알아보자Java/자바를 더 깊게 2022. 2. 17. 09:06
JVM이란? Java Virtual Machine의 약자로 자바 가상 머신이라고 불립니다. 자바와 운영체제 사이에서 중계자 역할을 합니다. 따라서 자바가 운영체제 종류에 영향받지 않고 돌아갈 수 있도록 합니다. = (Write Once Run AnyWhere) C언어나 C++언어 같은 경우에는 16비트, 32비트, 64비트 플랫폼에 따라 int 형의 크기가 변하지만 JVM은 기본 자료형인 int는 4바이트(2^32)로 고정시켜 타입의 안정성을 꾀하고 플랫폼 독립성을 보장합니다. 어떤것들은 JVM이라고 부를 수 있을까? (JVM Specification) Specification은 '규격' 또는 '사양'이라고 번역됩니다. 특정 기술분야에 대해, 이 기술은 이런 규격을 가졌으니 이 기술을 사용하거나 구현할 ..
-
[Java] String이 불변 객체인 이유는?Java/자바를 더 깊게 2022. 2. 15. 01:19
보통 String / StringBuffer / StringBuilder의 차이점들은 많이 알고 있습니다. String은 불변 객체이며, StringBuffer/ StringBuilder는 가변 객체입니다. 또한 StringBuilder는 thread-safe 하지 않으며 StringBuffer는 thread-safe 합니다. 그런데 String은 왜 불변 객체로 만들었을까요? 1. 성능 자바에서 문자열은 정말 많이 사용됩니다. 따라서 자바는 상수풀 이라는 것을 만들었습니다. public class Test { public static void main(String[] args) { String s1 = "Hello World"; String s2 = "Hello World"; System.out.pri..
-
[Java] Optional이란?Java 2022. 2. 11. 00:01
Optional이란? Java 8에서 최초로 도입되었습니다. 'T' 타입의 객체를 포장해 주는 래퍼 클래스로 모든 타입의 참조 변수를 저장할 수 있습니다. Optional은 "값이 존재할 수도 있지만 안 할 수도 있는 객체" 즉, "null이 될 수도 있는 객체"를 포장해주는 래퍼클래스입니다. public final classOptional{ private final T value; } 래퍼 클래스란? 만약 메서드가 매개변수를 객체 형태로 받을 경우 기본 타입을 객체화하여 매개변수로 전달할 때 사용하는 클래스로 자세한 부분은 아래 링크를 참조하시면 좋을 것 같습니다. https://junuuu.tistory.com/68 [Java] 래퍼 클래스(Wrapper Class)란? Optional에 대해 알아보..