공부 STUDY/JAVA

    [JAVA] Comparable 과 Comparator 차이

    https://st-lab.tistory.com/243 자바 [JAVA] - Comparable 과 Comparator의 이해 아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객 st-lab.tistory.com 자료구조 공부하다가 comparator 과 comparable 차이점에 대한 의문이 생김 구글링을 하다가 이해가 잘 되도록 정리된 글을 발견해서 블로그에도 남긴다.

    [JAVA] 자바의 정석 연습문제 6장 객체지향프로그래밍 [6-23]

    [6-23] 다음과 같이 정의된 메서드를 작성하고 테스트하시오. 메서드명 : max 기 능: 주어진 형 배열의 값 중에서 제일 큰 값을 반환한다 . 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999 를 반환한다. 반환타입 : int 매개변수 int[] arr - 최대값을 구할 배열 public class No1 { public static int max (int[] arr) { if (arr == null || arr.length == 0) { return -999999; } int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } public sta..

    [JAVA] 자바의 정석 연습문제 [6-6, 6-7] static 메서드와 인스턴스 메서드의 차이

    [6-7] 문제 [6-6]에서 작성한 클래스 메서드 getDistance()를 MyPoint 클래스의 인스턴스 메서드로 정의하시오. class MyPoint { int x; int y; MyPoint(int x, int y) { this.x = x; this.y = y; } double getDistance(int x1, int y1) { return Math.sqrt ((x1 - x) * (x1-x) + (y1 - y) * (y1 - y)); } } public class No1 { public static void main(String[] args) { MyPoint p = new MyPoint(1,1) } } 이전 문제의 static 메서드를 인스턴스 메서드로 변경하는 문제였다. static 메서드..

    [JAVA] 자바의 정석 연습문제 5장 배열 [5-5]

    [5-5] 다음은 1과 9 사이의 중복되지 않은 숫자로 이루어진 3자리 숫자를 만들어내는 프로그램이다. (1)~(2)에 알맞은 코드를 넣어서 프로그램을 완성하시오. package chapter2; public class No1 { public static void main(String[] args) { int[] ballArr = {1,2,3,4,5,6,7,8,9}; int[] ball3 = new int[3]; for(int i =0; i

    [JAVA] 자바의 정석 연습문제 5장 배열 [5-4]

    [5-4] 2차원 배열 arr에 담긴 모든 값의 총합과 평균을 구하는 프로그램을 완성하시오. public class No1 { public static void main(String[] args) { int[][] arr ={ {5, 5, 5, 5, 5}, {10, 10, 10, 10, 10}, {20, 20, 20, 20, 20}, {30, 30, 30, 30, 30}, }; int total = 0; float average = 0; for(int i = 0; i

    [JAVA] Assertions.assertThat 비교 하기

    만약에 service에서 두 객체나 변수 등을 비교 하기 위해서는 다양한 방법이 있지만 결국 확인을 하기 위해서는 System.out.println 으로 보게 될것이다. 일반 코드도 그렇고 테스트 코드에서도 이렇게 작성을 한다면 직접 콘솔을 뒤져가면서 눈으로 확인을 해야한다. 이럴 경우에 비교를 하는 대상을 테스트 코드에 한줄만 추가해두면 된다. Assertions.assertThat("A").isEqualTo("Ad"); 이렇게 해두면 테스트 코드를 돌릴때 두개의 변수 혹은 객체 등 같으면 정상 success가 뜨고 다르다면 빨간색으로 fail이 날것이다. 위에 예제는 A랑 Ad는 다르니 fail이 뜨는 Test코드가 된다.

    [JAVA] File 클래스 | RandomAccessFile 클래스에 대해 알아보자

    말 그대로 파일이라는 개념을 추상화한 클래스이다. 파일에 대한 입력과 출력은 스트림을 사용하여 수행한다. 파일 클래스에 별도의 입출력 기능은 없지만, 파일 자체의 경로나 정보를 알 수 있고, 파일을 생성할 수도 있다. 주요 생성자 File(String pathname) pathname을 매개변수로 받아 파일 생성 메서드 boolean createNewFile() pathname으로 생성된 File 객체를 실제 파일로 생성 파일이 성공적으로 생성되면 true 반환 동일한 파일명의 파일이 있는 경우 false 반환 boolean isFile() 해당 파일이 정상적인 파일인 경우에 true 반환 boolean isDirectory() 해당 파일이 정상적인 폴더인 경우 true 반환 String getName(..

    [JAVA] 직렬화 (Serialization ), 역직렬화 (Deserialization)

    클래스의 인스턴스가 생성되면 인스턴스의 상태/ 인스턴스 변수 값은 마치 생명체처럼 계속 변하게 된다. 인스턴스의 어느 순간 상태를 그대로 저장하거나 네트워크를 통해 전송할 일이 있을 수 있다. 이것을 '직렬화' (Serialization)라고 한다. 그리고 저장된 내용이나 전송받은 내용을 다시 복원하는 것을 '역직렬화' (Deserialization)라고 한다. 다시 말해서 직렬화란 인스턴스의 내용을 연속 스트림으로 만드는 것이다. 스트림으로 만들어야 파일에 쓸 수 있고 네트워크로 전송할 수도 있다. 따라서 직렬화 과정에서 하는 일은 인스턴스 변수 값을 스트림으로 만드는 것이다. 자바에서는 이를 보조 스트림인 ObjectInputStream과 ObjectOutputStream을 사용하여 좀 더 쉽게 구현..

    [JAVA] 보조 스트림(Wrapper 스트림)에 대해 알아보자 |FIilterInputStream, FilterOutputStream

    [JAVA] 보조 스트림(Wrapper 스트림)에 대해 알아보자 |FIilterInputStream, FilterOutputStream

    보조스트림이란? 보조 스트림은 입출력 대상이 되는 파일이나 네트워크에 직접 쓰거나 읽는 기능이 없다. 말 그대로 보조 기능을 추가하는 스트림이다. 여러가지 스트림에 적용할 수 있다. 말 그대로 보조해주는 보조요소이다! 어떤 보조 스트림이 더해지느냐에 따라 스트림 기능이 추가된다. 보조 스트림, Wrapper 스트림 다른 스트림을 감싸고 있다는 의미 | 스스로는 입출력 기능이 없기에 생성자의 매개 변수로 다른 스트림을 받게되면 자신이 감싸고 있는 스트림이 읽거나 쓰는 기능 수행시 보조 기능을 추가한다. FIilterInputStream FilterOutputStream - 보조 스트림의 상위 클래스이다. 모든 보조 스트림은 위 스트림을 상속받는다. 보조 스트림은 자료의 입출력을 직접할 수 없기에 다른 기반..

    [JAVA] 자바 입출력과 스트림 - (4) | 문자 단위 스트림

    Reader 문자 단위로 읽는 스트림 중 최상위 스트림으로 다음 하위 클래스를 주로 사용한다. FileReader 파일에서 문자 단위로 읽는 스트림 클래스 InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해주는 보조 스트림 클래스 BufferedReader 문자로 읽을때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해주는 보조 스트림 자료를 읽는 메서드로 int 형을 반환하는 read() 메서드를 제공한다. int read() 파일로부터 한 문자를 읽고, 읽은 문자를 반환 int read(char[] buf) 파일로부터 buf 배열에 문자를 읽음 int read(char[] buf, int off, int len) 파일로부터 buf 배열의 off 위치에 len 개수만큼의 문자를..