기술(Tech, IT)/자바(Java) 11

[Java] compareTo method, Comparable interface

Java에서 대소 비교 시에 가장 많이 쓰이는 method로 compareTo()와 compare()가 있고, 이 중 compareTo()를 살펴보겠다. compareTo()는 Comparable 인터페이스에 선언됐기 때문에 이를 사용하기 위해선 Comprable 인터페이스를 implements한 다음 Override를 해줘야한다. compareTo()와 compare()는 몇 가지 차이점을 보이는데 이 중 하나가 Parameter의 개수다. 두 method 모두 비교를 위해 두 개의 대상이 필요하지만 compareTo()는 하나의 parameter를 compare()는 두 개의 paramter를 받는다. 아래는 Java 내 존재하는 BigInteger와 유사한 기능을 하는 BigNumber라는 clas..

[Java] Abstract Data Type(ADT)

ADT(추상 자료형)은 직접적인 기능의 완성이 아닌 해당 자료형이 어떤 기능을 하는 것인지를 나타낸다. Stack을 예로 들면, Stack은 Last In First Out(LIFO) 방식으로 동작하지만, 이는 Array나 Linked List와 같은 자료 구조(Data Structure)를 선택적으로 활용해 구현될 수 있다. 또한 Stack의 size를 반환(return)하는 함수가 Stack의 첫 번째 원소부터 하나씩 숫자를 세는 것인지, 마지막 원소부터 세는 것인지, size 변수가 존재해 원소가 추가될 때 마다 기록한 값을 반환하는 것인지는 어떻게 구현을 하느냐에 따라 달라질 수 있다. 참고 - https://gbsb.tistory.com/306

[Java] Helper method(헬퍼 메소드)

Wikipedia definition(위키피디아 정의) :In object-oriented programming, a helper class is used to assist in providing some functionality, which isn't the main goal of the application or class in which it is used. An instance of a helper class is called a helper object (for example, in the delegation pattern). :객체 지향 프로그래밍에서 헬퍼 클래스는 어떤 기능을 제공하기 위해 사용되는 클래스로 어플리케이션이나 클래스의 주 목적으로 사용되는 것이 아니다. 헬퍼 클래스의 인스턴스는..

[Java] Queue(큐) 선언 및 사용

Queue는 대표적인 자료구조(Data Structure)로 일반적으로 First In First Out(FIFO)로 동작한다. (대조되는 자료구조로는 Stack이 있고 Stack은 일반적으로 First In Last Out(FILO)). 담고자 하는 자료형에 따라 Integer, String과 같은 자료형을 함께 선언하면 된다. Java에서 Queue 선언 및 사용은 아래와 같다. import java.util.Queue; import java.util.LinkedList; public class Main { public static void main(String[] args) { Queue iQ = new LinkedList(); Queue sQ = new LinkedList(); iQ.offer(1..

[Java] 전역 변수(Global variable)

Java에는 C언어와 똑같은 방식으로 전역 변수를 선언할 수 있지만 사용하는 방법은 다르다. Java에서 전역 변수를 개념적으로 이해하기 위해선 Java에는 전역 변수가 없다고 생각하는 것이 편하고, 실제로 자바엔 전역 변수라는 개념이 없다는 설명을 아래와 같이 많이 찾아볼 수 있다. - Truly global variables do not exist in Java - Java actually doesn't have the concept of Global variable - Global variables are not technically allowed in Java C언어의 전역 변수는 아래와 같이 사용이 가능하다. int global_var = 1; int main() { printf("%d", gl..

[Java] 생성자(Constructor)

Oracle Java Documentation에 따르면 생성자(Constructor)의 정의는 아래와 같다. : A constructor is used in the creation of an object that is an instance of a class. Typically it performs operations required to initialize the class before methods are invoked or fields are accessed. Constructors are never inherited. : 생성자는 한 클래스의 인스턴스인 객체를 생성할 때 사용된다. 일반적으로 생성자는 메소드가 호출되거나 *필드(지역 변수, 인스턴스 변수, 클래스 변수)가 접근되기 전에 클래스를 초..

[Java] JAR(Java Archive)

JAR(Java Archive, 자바 아카이브)는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다. JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일로서, 파일 확장자는 .jar이다. 컴퓨터 사용자들은 JDK에 포함된 jar 명령어를 이용하여 JAR 파일을 만들거나 압출을 풀 수 있다. 또, zip 도구를 사용할 수도 있으나 압축 시에는 manifest 파일이 처음이어야 하는 경우가 있어 zip 파일 헤더의 엔트리 순서가 중요하다. JAR 안에서 파일 이름들은 유니코드 텍스트로 되어 있다. 출처 - https://ko.wikiped..

[Java] instanceof

instanceof는 객체가 주어진 타입이 맞는지 여부를 확인하는 이항 연산자로, true와 false를 결과로 반환한다. 알 수 없는 객체를 캐스팅(casting) 하기 전에 확인을 위해 쓰이며, 런타임에서 ClassCastException를 회피할 수 있도록 한다. instanceof의 기본 문법은 아래와 같다. : (object) instanceof (type) 단, 하기 예제처럼 null 일 시에는 false를 반환한다. Example) class Car { } class Kia extends Car { } public class InstanceofTest { public static void main(String[] args) { Kia kia = new Kia(); System.out.prin..

[Java] String, StringBuilder, StringBuffer

1. 불변성(Immutable) 불변성(Immutable): String 가변성(Mutable): StringBuilder, StringBuffer String은 한번 생성되면 더는 변경이 불가능한 불변하는 객체(Immutable object)로 생성이 된다. 하여 두 String 객체를 연결해줄 경우 새로운 String 객체가 생성되는 것을 예제1) HashCode를 통해 확인할 수 있다. 예제2) 역시 한번 생성된 String 객체는 바뀌지 않지만, StringBuilder와 StringBuffer는 바뀌는 것을 확인할 수 있다. String은 불변하는 객체이므로, 문자열을 붙이거나(Concatenation, '+'), 뽑아내는(substring) 작업을 할 경우 새로운 String 객체를 생성하고 ..