| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 오버로딩
- SQL Mapper
- StringBuilder
- over()
- 입출력
- 멀티프로세싱
- 혼공얄코
- 자바의정석
- 둘만의 암호 자바
- hackerrank
- localtime
- spring security
- StringBuffer
- 멀티태스킹
- 쿠키
- 자바의 정석
- CPU
- 오블완
- 티스토리챌린지
- 프로그래머스
- 프로그래머스 둘만의 암호
- 리눅스
- spring security 설정
- LocalDate
- 캡슐화
- 오버라이딩
- 둘만의 암호
- 백트래킹
- 다형성
- java
- Today
- Total
목록Java (32)
쉽게 쉽게
▤ 목차1. StringBuilder와 StringBuffer이란?자바에서 문자열을 다루는 자료형 클래스는 String, StringBuffer, StringBuilder 라는 3가지 자료형이 존재한다.그러나 StringBuffer, StringBuilder는 Stirng과는 다른 차이점이 있다.String은 한 번 생성되면 값을 바꿀 수 없는 불변(Immutable) 클래스이지만, 반면, StringBuilder와 StringBuffer는 값을 자유롭게 바꿀 수 있는 가변(Mutable) 클래스이다.1. 왜 사용하는가? (String vs 가변 클래스) 일반 String에 + 연산을 사용하여 문자열을 더하면, 기존 값이 바뀌는 것이 아니라 새로운 String 객체가 메모리에 계속 생성된다.즉 문자열을 ..
▤ 목차1. 시간 복잡도란?알고리즘이 실행될 때 필요한 입력 값과 연산 수행 시간에 따라 효율적인 알고리즘을 나타내는 척도를 의미한다.시간 복잡도는 빅오 표기법(Big-O notation)을 통해 표현하며, 수치가 작을수록 효율적인 알고리즘을 의미한다.1. 시간 복잡도 비교 (효율성 순서) 빅오 표기법(Big-O notation) O(1) 2. 시간 복잡도 계산 방법 (적은 시간 순서)단순 산술 연산 즉 시간 복잡도의 최종 계산은 여러 단계로 나누어진 코드 중 가장 영향력이 큰 부분이 시간 복잡도가 된다.추가적으로 알고리즘 문제의 제한 시간을 통해 어떤 알고리즘을 구상해야 할지 확인해 볼 수 있다.보통 1초에 약 1억 번(10^8)의 연산이 가능하다고 가정한다.n = 10,000 일 때는 O(n^2) ..
▤ 목차 1. 비트 관련 메서드 사용법 메서드 (Integer/Long 공통) 설명 bitCount(n)2진수 표현에서 1의 개수를 반환highestOneBit(n)가장 왼쪽(최상위) 1의 위치만 남기고 나머지는 0으로 만든 값을 반환lowestOneBit(n)가장 오른쪽(최하위) 1의 위치만 남기고 나머지는 0으로 만든 값을 반환numberOfLeadingZeros(n)가장 왼쪽 1의 앞(왼쪽)에 있는 0의 개수를 반환numberOfTrailingZeros(n)가장 오른쪽 1의 뒤(오른쪽)에 있는 0의 개수를 반환1. bitCount - 집합의 크기 구하기 2진수 표현에서 1의 개수를 반환활용법: 비트 마스킹을 이용해 부분 집합을 표현할 때, 해당 집합에 원소가 몇 개 포함되어 있는지 바로 알 수 있다..
▤ 목차1. LocalTime 변환1. String to LocalTimeString 타입을 LocalTime 타입으로 변환1. ofSecondOfDay 사용 // 1. ofSecondOfDay 사용 String time1 = "04:05"; String[] parts = n.split(":"); int minutes = Integer.parseInt(parts[0]); int seconds = Integer.parseInt(parts[1]); // 1. 총 초로 변환 int totalSeconds = (minutes * 60) + seconds; // 2. ofSecondOfDay 메서드를 활용 LocalTime posTime = LocalTime.ofS..
▤ 목차자주 사용되는 타입 변환 방법에 대해 정리하려고 한다.String관련1. String to Int String num = "12345" int a = Integer.valueOf(num); /* a = [12345] , Integer 타입 */ int b = Integer.parseInt(num); /* b =[12345] , int 타입 */Integer.valueOf()과 Integer.parseInt()의 차이점더보기가장 큰 차이점은 Integer.valueOf() 은 Integer 타입으로 반환하고, Integer.parseInt() 은 int 타입으로 반환한다.Integer 타입은 기본형 타입(Primitive Type)인 int형의 박싱(boxing) 한 결과이다.int와 Intege..
▤ 목차1. 정렬1차원 배열1. Arrays.sort() 정렬int[] arr = {2, 3, 4, 5, 1};Integer[] numbers = {2, 3, 4, 5, 1};//정렬 (오름차순)Arrays.sort(arr); /* [1,2,3,4,5] */// 내림차순 정렬 - Integer 타입Arrays.sort(numbers, Collections.reverseOrder());// 내림차순 정렬 - Integer 타입Arrays.sort(numbers, Comparator.reverseOrder()); /* [5,4,3,2,1] */2. 사용자 정의 정렬Comparator는 두 객체를 비교하여 정렬 순서를 결정하는 인터페이스이다.이를 사용하려면 배열의 타입을 int [] 대신 Integer []와..
▤ 목차1. 피보나치 수열이란피보나치 수열(Fibonacci numbers) 이란?‘이전 두 항의 합이 다음 항이 되는 수열’을 의미즉, 첫째 항과 둘째 항이 1이고 이후 모든 항은 모든 항은 바로 앞 두항의 합으로 이루어지는 수열 피보나치 수열의 예로는 [1, 1, 2, 3, 5, 8, 13, 21, 34,...]과 같은 형태로 구성2. 반복문으로 구현public static int Fibonacci(int n) { int answer = 0; if (n 3. 재귀함수로 구현public static int recursiveFibonacci(int n) { if (n 단 재귀 알고리즘으로 구현하는 경우, 구하려고 하는 숫자가 커질수록 메모리 속도가 현저하게 떨어진다는 단점이 있다...
▤ 목차1. 정규표현식(Regular Expression) 1. 정규표현식이란?정규표현식(Regular Expression)이란 문자열 데이터 중에서 원하는 조건(패턴)과 일치하는 문자열 부분을 찾아내기 위해 사용하는 것으로, 미리 정의된 기호와 문자를 이용해서 작성한 문자열을 말한다.자바에서는 replaceAll(), split() 메서드, Pattern 클래스의 matches() 메서드를 사용하여 문자열 검증 및 치환할 수 있다.(ex. 전화번호, 주민등록번호, 이메일 등 형식체크, 특수문자 치환 및 제거) 2. 정규식 기호 사용법 1. 정규식 일반 기호기호의미예시^문자열 시작을 의미대괄호([ ]) 밖에 ^가 쓰이면 시작의 뜻 대괄호([ ]) 안에 ^가 쓰이면 제외의 뜻^s : s로 시작하는 단어[^..
▤ 목차1. break문 사용법 1. break문 break는 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다.break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.for(int i=0; i 2. 중첩 break문중첩 반복문(여러 개 for문) 일 경우에 현재 위치한 가장 안쪽의 반복문에서 빠져나오고 다시 제일 바깥쪽의 반복문을 실행하게 된다.for(int i=0; i 3. 라벨 붙은 break문break문은 근접한 단 하나의 반복문만 벗어날 수 있기 때문에, 중첩 반복문 경우에는 불필요한 반복이 발생할 수 있다. 중첩된 반복문을 벗어나고 싶다면 각 반복문마다 라벨을 지정해 주고 해당 라벨명을 break 명령에 기재하여 원하는 반복문 단계를 바로 빠져나올 수 있다.Loop..
▤ 목차Map에서 활용할 수 있는 메서드와 키(key)와 값(value)을 사용하는 방법에 대해 공부하며 작성했다.1. Map의 추가 메서드 활용보통은 아래처럼 map을 선언하고 값을 넣어준다.HashMap map = new HashMap();map.put(1,"AAA");map.put(2,"BBB");map.put(3,"CCC");map.put(4,"DDD");map.get(1); //AAAmap.get(2); //BBBmap.get(3); //CCCmap.get(4); //DDD하지만 map에 동일 키 값을 추가할 경우 value의 값이 덮어쓰기가 되는데 이를 원치 않는다면 getOrDefault 메서드를 사용할 수 있다. 1. getOrDefault getOrDefault(Object key, V..
