compareTo는 두 가지로 나뉜다. 1. 숫자 비교 2. 문자 비교 우선 숫자 비교부터 해보겠다. 아래 실행 결과처럼 기준 숫자 10을 가지고 4,10,12와 비교를 수행하면, 각각 1,0,-1을 확인할 수 있다. 이렇게 숫자형은 간단하게 숫자의 대소가 확인이 가능하다. 그렇다면 문자는 어떻게 될까? 아래 사진처럼 str이 "abc"이고, 비교 대상 문자들이 str의 구성요소를 포함하고 있다면, 길이를 비교하여 값을 리턴해준다. 여기서 매우 중요한 사실이 있다. 위의 예시 같은 경우 비교 문자들이 str의 앞부분은 같다는 것을 알 수 있다. 그렇다면 아예 다른 'c'부터 시작하는 문자로 비교해보면 어떻게 될까? 결과는 아래 사진처럼 -2가 출력된것을 확인할 수 있다. 그 이유로는 compareTo는 ..
구현방법 쓰레드를 구현하는 방법은 Thread클래스를 상속받는 것과, Runnable 인터페이스를 구현하는 방법, 모두 2가지가 있다. 이 두가지 방법 중 어느 쪽을 사용해도 별 차이는 없지만 Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable 인터페이스를 구현하는 것이 일반적. 구현코드 run() vs start() 스레드 실행과 관련된 두 가지 중요한 메서드는 run()과 start()메서드이다. run() 메서드는 스레드에서 수행할 작업을 정의하는 메서드이고 start()메서드 호출은 스레드의 run() 메서드가 호출될 수 있도록 준비하는 과정이다. 실제 run() 메서드를 호출하는 것은 JVM이다. start()가 호출되면 JVM이 운영체제의 스레드 스케줄러에..
접근제한자(Access Modifier)란? 접근제어자는 멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할. 종류 Private Default Protected Public Private 같은 클래스 내에서만 접근이 가능. Default 접근 제한자를 명시하지 않은 경우로 같은 패키지 내부에 있는 클래스에서 접근이 가능. Proected 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능. Public 외부의 모든 클래스에서 접근이 가능.
1)람다식이란? 람다식은 JAVA 8 에 추가된 가장 큰 특징의 하나로 자바에서 함수형 프로그래밍 형태를 받아들인 결과이다. 객체지향 프로그래밍은 클래스에 속성과 기능을 정의한다. 즉 기능은 객체에 포함된 개념이다. 하지만 함수형 프로그래밍은 기능 위주의 프로그래밍 기법으로 기능 즉 함수가 따로 존재한다. 람다식은 파라미터 및 리턴 타입에 따라 다양한 형태로 작성된다. 람다식은 축약형이 많은데 이때 형태가 기존의 코드와 사뭇 다르기 때문에 작성법을 많이 연습해야 손에 익는다.