본문 바로가기
Comparator, Comparable - 객체 정렬에 필요한 (정렬기준을 제공하는)메서드를 정의한 인터페이스 - 정렬에 사용되고 정렬기준(오름차순, 내림차순 ... 등)을 제공한다. 그럴 때 Comparator, Comparable 사용 정렬 = sort() = 두 대상을 비교하여 자리바꿈을 반복하는 것 정렬 시 1. 대상 2. 기준 이 필요함. sort(정렬대상, 정렬기준) Arrays.sort()를 호출만 하면 컴퓨터가 알아서 배열을 정렬하는 것처럼 보이지만, 사실은 Character클래스의 Comparable의 구현에 의해 정렬되었던 것이다. - Comparable Java.lang 패키지 Comparable 을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들 (주로 Integer와 같은 wrapper클.. 2022. 4. 24.
[Java] 💻List, Set, Map 배열 / List / Set / Map 개념 배열 순차적 접근속도 가장 빠름. 비순차적 삽입/삭제 크기 변경 불가 List 순서O, 데이터의 중복O. ArrayList 내부적으로 배열로 구현 배열크기 변경 가능. → 크기를 미리 모를때 사용 순차적 LinkedList Node로 구현 비순차적 삽입/삭제에 최적 접근성이 떨어진다. (인덱스가 없으므로 처음부터 하나씩 방문해야 함) Set 비선형 구조이기에 순서 X.(만약 요소의 저장 순서를 유지해야 한다면 JDK 1.4부터 제공하는 LinkedHashSet 클래스를 사용) 그렇기에 인덱스도 X 주머니에 구슬을 넣는 모양. (중복된 데이터를 넣으면 구분이 불가능하므로 허용하지 않는다.) 중복을 자동으로 제거해서 중복 X. 중복된 데이터가 삽입 시도 → 원래 .. 2022. 2. 27.
[Java] 💻eGovFrameDev 데이터베이스 모델링을 할 수 있는 프레임이 담겨있다. Spring 할 때 사용한다 사실 폴더만 있으면 되는데 이클립스는 프로젝트를 만들라고 해서 프로젝트를 하나 만들어준다. 기본환경을 오라클로바꿔야 오라클 자료형을 쓸 수있다. 빈 화면쪽에서 우클릭하여 - [change Database Type] 이제 테이블에 컬럼을 추가해보자 Table을 누르면 저렇게 아이콘이 생성된다. 테이블아이콘을 더블클릭해준다. 각 항목에 대한 설명은 그림을 참고한다. [Column]탭에 가서 각 컬럼들을 추가할 수 있다. 2021. 12. 7.
[Java] 💻제어문 비교문(분기문) if문 주어지는 조건의 결과가 true이면 if문 블럭을 코드를 실행함 if문 블럭내의 수행문이 한 줄이면 중괄호 블럭 생략 가능 - 단일 if문 if( ) ; - if ~ else문 if( ) ~ else ; - 다중 if문 if( ) ~ else if( ) ~ else ; 💻 if문 switch문 If문의 조건값은 boolean형인데 비해, switch문의 조건값은 long형을 제외한 정수형(byte, short, int) 또는 char형인 것이 다르다. JDK7.0이상부터는 문자열도 지원함 switch(인자값) { case 조건값1 : 수행문; break; case 조건값2 : 수행문; break; case 조건값3 : 수행문; break default : 수행문; } System... 2021. 11. 21.
[Java] 💻String과 StringBuffer,StringBuilder String 클래스 기존의 다른 언어에서는 문자열을 char형의 배열로 다루었으나 자바에서는 문자열을 위한 클래스를 제공한다. 그것이 바로 String클래스인데, String클래스는 문자열을 저장하 고 이를 다루는데 필요한 메서드를 함께 제공한다. 문자열 불변법칙이 있다. String str = "abc"; 으로 선언 후 String str = "abc"+"def"; 으로 다시 선언한다면? "abc"참조를 끊고 "abc+def"를 새로 만들어서 주소가 바뀐다. 이 때 끊어져서 호출할 수 없는 "abc"객체는 = 쓰레기 객체 = garbage collection의 대상이 된다. (garbage collection: 사용되지않은 객체를 찾아 지우는역할) 객체를 생성시키고 소멸시키는 방법이 없어서 일정시간이 .. 2021. 11. 9.
[Java] 💻연산 우선순위 괄호() ★1순위★ ~(비트반전), !(부정) 증감 연산자 ++, -- 산술 연산자 +, -, *, /, % 시프트 연산자 >>, >>>, 2021. 11. 7.
[Java] 💻printf 출력문 System.out.printf ( 포맷문자, 데이터 ); 데이터의 종류를 표시할 수 있는 포맷 문자를 지원하는 출력문이다. ("%d", 정수) System.out.printf("%d\n",60); System.out.printf("%,d\n",60000);//3자리 단위로 쉼표 표시 System.out.printf("%,d원\n",60000);//3자리 단위로 쉼표 표시, 원을 붙인다 System.out.printf("%,5d\n",20);//5자리를 잡고 오른쪽부터 표시 System.out.printf("%-5d\n",20);//5자리를 잡고 왼쪽부터 표시 ("%f", 실수) System.out.printf("%f\n",35.896);//기본적으로 소수점 자리 6자리 출력 System.out.prin.. 2021. 11. 6.
[Java] 💻eclipse 처음 실행 후 프로젝트 만들기 [Package Explorer]의 빈화면 우클릭 - [New] - [Java Project] 패키지 만들기 Java에서 폴더 대신 패키지라고 명칭한다. [프로젝트 우클릭] - [New] - [Class] 패키지는 일반적으로 소문자로 만든다. (대문자를 넣어도 문제는 없기는 함) ex) kr.s01.p1 클래스 만들기 프로젝트 하단에 [src 또는 생성한 패키지 우클릭] - [New] - [Class] 클래스이름의 시작은 대문자로 시작한다. (클래스,패키지)이름 변경하기 !클래스생성오류 파일이 두 개로 보이거나 이중으로 보일 때 [패키지src 우클릭] - [리프레시] 해보면 합쳐지고 아닐 경우에 오류이다. 2021. 11. 6.
[ Java ] 💻 생성자와 메서드 참고링크 출처: https://javacan.tistory.com/entry/37 생성자(Constructor)도 메소드인가? 메소드로 이해하기 쉬운 생성자에 대하여 상세하게 살펴본다. 생성자의 기능과 형태 클래스는 초기화를 위하여 생성자(constructor)라는 특별한 코드 블록을 가질 수 있다. 즉, 생성자는 클래스가 n javacan.tistory.com 메서드(method) 메서드 구조 class A{ public void make() { System.out.println("make 메서드"); } } 반환하는 데이터가 있는 경우 (return) public class MethodMain01{ public int add(int a, int b){ return a + b; } } 반환하는 데이터가.. 2021. 11. 4.
[ Java ] 💻 캡슐화 은닉화 (숨겨놓은 금고) private 사용하여 같은 클래스에서만 접근 가능 캡슐화 객체의 필드, 메서드를 하나로 묶고, 실제 구현 내용을 감추는 것 (=중요한 요소를 내부에 감추는 것) public한 메서드를 만드는 것 데이터를 받는 메소드 (돈을 받는 은행원) Java에서 꽤 많이 사용되며, 표준적으로 get메소드(데이터반환할때) set메소드(데이터넣어줄때,셋팅할때) is메소드(불린형 타입)만들어주므로 권장사항이다. 필드와 메서드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다. package kr.s03.capsule; class Capsule{ //은닉화 //private은 같은 클래스에서만 접근 가능 private int a; //ex)숨겨놓은 금고 .. 2021. 11. 4.
[ Java ] 💻 2차원 배열 배열의 객체들은 같은 자료형이어야 한다. 2차원 배열 선언 및 생성, 초기화 ◎ 2차원 배열 선언 (선언만 해서는 안되고 생성까지 해야한다.) int[][] test; //자료형[][] 배열명; int test[][]; //자료형 배열명[][]; ◎ 2차원 배열 생성 test = new int[2][3]; //2행3열의 2차원 배열 ◎ 2차원 배열 선언 + 생성 int [][] test2 = new int [3][5]; //3행5열의 2차원 배열 ◎ 2차원 배열 초기화 test[0][0] = 100; test[0][1] = 200; test[0][2] = 300; test[1][0] = 400; test[1][1] = 500; test[1][2] = 600; ◎ 2차원 배열 선언 + 생성 + 초기화 - .. 2021. 11. 4.
[Java] 💻접근제한자 접근제한자 = 접근지정자 접근제한을 주는 이유는? 데이터를 안전하게 보관하기 위해서 데이터를 메소드에서 제대로 활용하게 하기 위해서 모든언어가 접근제한이 있는게 아니다. (java언어는 중요하게 생각한다.) public 모든 접근을 허용 protected 같은 패키지에 있는 클래스 상속관계의 클래스 default 같은 패키지에 있는 클래스만 private 현재 클래스 내에서만 package가 달라져도 protected면 상속이 가능하다. default는 직접 명시하지않는다. 안써있는게 default. (쓰면 error) * 일반적으로 멤버변수에는 public을 지정하지 않는다. 클래스 : public, default 생성자 : public, protected, default, private 변수/메서드 .. 2021. 11. 4.