본문 바로가기

Java/TIL (Today I Learned)10

[TIL] QueryDsl 설정법(SpringBoot 3.0이상) plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.3' } group = 'study' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementatio.. 2023. 11. 15.
[JAVA] 추상클래스 (abstract) / 인터페이스 (interface) ■ 추상클래스 (abstract) - 추상 메서드를 선언하여 상속을 통해 자식 클래스에서 완성하도록 유도하는 클래스 "미완성 설계도" - 클래스를 abstract로 지정하면 new를 통해 객체 생성 X - interface의 메소드와 다르게 구현 부분 X - abstract로 선언한 메소드를 반드시 자식 클래스에서 구현해야 함(오버라이딩) - 다중 상속 X ■ Code abstract class 클래스A{ public abstract void 메서드(); } class classB extends classA{ @Override public void 메서드(){ ... //구현 } } ■ 인터페이스 (interface) - 추상 클래스와는 다르게 구현부가 있는 일반 메서드, 일반 변수 멤버 등을 가질 수 .. 2023. 8. 7.
[JAVA] 에라토스테네스의 체 에라토스테네스의 체 ■ 정의 소수를 찾는 방법 중 하나로, '소수가 되는 수의 배수를 지우면 남은 건 소수가 된다' 라는 알고리즘 소수가 무엇인지 찾을 필요가 없으며, 2부터 자기 자신을 제외한 배수가 되는 것을 지움 ​ - 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97이 남는데, 이것이 100 이하의 소수이다. - 7까지 찾는 이유는 8, 9, 10은 2와 3의 배수이므로 이미 지워진 상태이고, √100 < 11이기 때문이다. ■ 사용 예 (백준 No.17103) 17103번: 골드바흐 파티션 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이.. 2023. 3. 20.
[JAVA] 유클리드 호제법(GCD / LCD) GCD (최대 공약수) ■ 정의 1. 22 x 8 크기의 직사각형을 짧은 변(8)을 한 변으로 하는 정사각형으로 분할 2. 정사각형을 제외한 8 x 6 직사각형을 짧은 변(6)을 한변으로 하는 정사각형으로 분할 3. 남은 6 x 2 직사각형을 2 x 2 크기의 정사각형 3개로 분할 ☞ 마지막까지 나누어 떨어진 정사각형의 한 변의 길이가 최대 공약수가 됨 ■ Code import java.util.Scanner; public class EuclidGCD { static int gcd(int x, int y){ if(y == 0) return x; else return gcd(y, x % y); } public static void main(String[] args){ Scanner sc = new Scan.. 2023. 3. 15.
[JAVA] contains() / replace() contains() ■ 정의 - 문자열이 특정 문자열을 포함하고 있는지 확인한다. - boolean형이므로 포함하고 있으면 true를, 아니면 false를 반환한다. - 대·소문자, 공백을 구분한다. ■ 사용 예 public class contains { public static void main(String[] args) { // TODO Auto-generated method stub String str = "my name is jaein"; System.out.println(str.contains(" my"));//false System.out.println(str.contains("name")); //true System.out.println(str.contains("is")); //true Sy.. 2023. 2. 7.
[JAVA] StringBuilder ■ 정의 - StringBuilder 클래스의 인스턴스는 그 값을 변경할 수 있고, 추가할 수 있는 가변객체(mutable) => 문자열을 바로 추가할 수 있으므로, 공간의 낭비도 없으며 속도도 매우 빨라짐. ​ - 동기화 되어있지 않다. => StringBuffer에 비해 가벼움. 특별한 이유가 없다면 StringBuilder를 사용하는 것이 일반적. ■ 생성자 StringBuilder sb = new StringBuilder(); // 객체선언 StringBuilder sb = new StringBuilder("str"); // 문자열을 바로 넣을 수도 있음 ■ 메소드 종류 메소드 의미 반환형 append() 인수로 전달된 값을 문자열로 변환한 후, 해당 문자열의 마지막에 추가 StringBuilde.. 2023. 2. 6.
[JAVA] Overloading / Overriding Overloading ■ 정의 - 같은 이름의 메소드 여러개를 가지며 매개변수의 유형과 개수가 다르도록 하는 기술 ■ 특징 - 메소드 이름 동일 - return형이 같아도 되고 달라도 됨 - 매개변수 갯수가 달라야 함 - 매개변수 갯수가 같을 경우, 데이터 타입이 달라야 함 ■ 사용 예 package chap11; class Person{ private int regiNum; private int passNum; Person(int rnum, int pnum){ regiNum = rnum; passNum = pnum; } Person(int rnum){ regiNum = rnum; passNum = 0; } void showPersonalInfo() { System.out.println("주민등록 번호:.. 2023. 1. 30.
[JAVA] EOF (End Of File) ■ 정의 - EOF(End Of File)란 컴퓨팅에서 파일의 끝(End of FIle)을 나타내며 데이터 소스로부터 더이상 읽을 수 있는 데이터가 없을 때 반복문을 종료 - Ctrl + Z를 누르면 동작 ■ 종류 자바에서는 대표적인 입력 클래스로 Scanner, BufferedReader가 있음 ■ 사용 예 Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){//입력데이터 문자열 sc.nextLine(); } while(sc.hasNextInt()){//입력데이터 숫자 sc.nextInt(); } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWr.. 2023. 1. 28.
[JAVA] BufferedReader / BufferedWriter ■ 정의 - 버퍼를 통해 읽고 쓰는 함수 - 입 출력 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후 전달 - Scanner를 사용하는 것보다 속도가 빠름 ■ 생성자 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ■ 메소드 종류 메소드 명 기능 BufferedReader(Reader rd) rd에 연결되는 문자 입력 버퍼 스트림 생성 BufferedWriter(Writer wt) wt에 연결되는 문자 출력 버퍼 스트림 생성 int read() 스트림으로부터 한 문자를 읽어 int형으.. 2023. 1. 26.
[JAVA] 이스케이프 시퀸스 (escape sequence) ■ 정의 이스케이프 문자로 시작되는 문자열. 이 문자열은 주변 장치와 프로그램 사이에서 특정 명령어를 수행하도록 하는 제어 문자로 사용된다. ■ 종류 종류 의미 \0 공백(null) \n 줄바꿈(new line) \t 수평 탭(horizontal tab) \v 수직 탭(vertical tab) \b 백스페이스(backspace) \f 폼 피드(form feed) \r 캐리지 리턴(carriage return) \\ 백슬래시( \, backslash) \? 물음표(literal question mark) \' 작음따옴표( ‘, single quotes) \" 큰따옴표( “, double quotes) \ooo 8진수 숫자를 사용하여 ASCII 코드의 문자 표현 \xhh 16진수 숫자를 사용하여 ASCII .. 2023. 1. 21.