Java - Explicit type arguments can be replaced by Diamond Operator?
Java에서 Collection을 사용하다 보변 다음과 같은 Warning 메세지가 뜰 때가 있습니다. 뒤쪽의 를 지워버리면 Warning이 발생하지 않죠. 물론 그대로 사용해도 문제는 없습니다만. 이 을 Diamond Operator라고 부르죠...
Python, Java, AI/ML, Vim, Web, CS 이론 등 소프트웨어 개발 및 엔지니어링 기록
Java에서 Collection을 사용하다 보변 다음과 같은 Warning 메세지가 뜰 때가 있습니다. 뒤쪽의 를 지워버리면 Warning이 발생하지 않죠. 물론 그대로 사용해도 문제는 없습니다만. 이 을 Diamond Operator라고 부르죠...
Java에서 기본으로 제공하는 Array의 경우 사용할 수 있는 Array의 크기가 고정되어 있죠. 그런데 실제 상황에서는 필요에 따라 Array의 크기가 추가로 더 필요할 때가 있죠. 물론, 어려운 코드는 아닙니다. 더 큰 크기의 New Arr...
프로그래밍할 때, 타입을 고정하지 않고 Class를 추상화하여 표현할 수 있죠. 이게 불가능하다면 알고리즘의 작동방식이 동일하더라도 Integer, String등 각각의 데이터 타입에 따라서 여러 Class를 정의해두어야 합니다. 단지 데이터 타...
Java Virtual Machine(JVM) JVM은 컴파일된 자바 프로그램을 실행하는 가상환경을 말합니다. JVM은 컴퓨터의 OS위에서 돌아가고, Java Program은 JVM 위에서 돌아가죠. JVM은 여러 종류가 있고 대부분 JVM Sp...
Install Cisco Packet Tracer Cisco Packet Tracer for MAC을 다운받아 봅시다. 다운받아서 Next를 연타하여 설치합니다. 그리고 나면 "Cisco Packet Tracer", "Linguist", "mai...
Generic Programming은 변수의 타입과 상관없이 프로그래밍할 수 있도록 하는 것을 말합니다. 아주 간단하게 '정렬'을 예로 들자면, 변수타입이 Int이든, Double이든, String이든 간에, 비교 연산자만 제대로 설정되어 있다면...
C나 C++에서는 직접 를 통해 메모리를 직접 해제해야 하지만, JVM에서는 Garbage Collector가 직접 알아서 메모리를 해제해줍니다. Java에서는 JVM의 heap memory에 에 의해 생성되는 Object를 올려서 관리합니다. ...
Strategy Pattern은 객체지향적 설계에서 가장 많이 사용되는 패턴이죠. 하나의 예를 들어 보겠습니다. 클래스 이 있을 때, 점간의 거리를 측정하는 클래스가 내부에 있겠죠. 거리 측정은 조금씩 다를 수 있는데, 필요에 따라 내부의 를 다...
개발을 하다 보면 딱 하나의 Class Instance만 정의해서 사용해야 할 때가 있습니다. 이런 종류의 설계를 Singleton이라고 하죠. - Singleton은 딱 하나의 Class Instance만 생성하도록 제한됩니다. - 그리고 어플...
What is JAR JAR은 Java ARchive의 약자이며, 관련있는 file들을 패키지로 묶은 파일포맷입니다. 일단은 그냥 'Java 라이브러리'라고 생각해도 됩니다. 다른 Java Application에서 JAR 파일을 읽어서 사용할 수...
RGB와 CMYK 우선, RGB와 CMYK 모두 웹에서 색을 정의하는 방식을 말합니다. RGB는 빛의 3가지 색깔인 Red, Green, Blue의 조합을 통해 색을 표현하는 방식을 말합니다. 빛의 3원색이기 때문에 보통 디지털 화면에 색을 표현...
이상한 짓을 합니다. - 비어 있는 list 를 만들고요. - reference variable 가 를 지칭하도록 합니다. - 그리고 안에 를 넣어줍니다. 좀 이상하지 않나 싶지만, 오류 없이 잘 돌아갑니다. 그냥 print해서 안에 있는 값을 ...
Abstract Class와 Interface는 "아직 구현되지 않은, 추상화된 클래스"를 의미합니다. 직접 Object로 구현되어질 수는 없고, 이후 얘네를 다른 Class가 상속받아서 virtual method들을 새롭게 정의해줘야 하죠. 이...
C++을 공부해보신 적이 있으신 분들은 아시겠지만 보통 OOP에서는 Abstract class를 만들어 두고 이를 상속하도록 하는게 일반적이죠. Abstract Class에는 field와 Behaviour가 모두 정의됩니다. 하지만, "네가 누구...
필요에 따라서, 프로그램의 모든 class가 상속받는 baseClass를 정의할 때가 있습니다. 음, 이건 일종의 디자인 패턴인데요. 가령 RPG게임 같은 것에서 모든 캐릭터가 HP, MP를 가지고 또 비슷한 method 이름들을 가진다면 모든 ...
Java에는 라고 하는 모든 Class의 BaseClass가 되는 Class가 존재합니다. 그냥 다음처럼 새로운 Class를 정의히면 자연스럽게 라는 클래스를 상속받게 되죠. 따라서 객체인 은 항위 class인 Integer 객체를 가리킬 수 있...