본문 바로가기

언어54

[Oracle] 조건에 맞는 회원수 구하기 문제 https://school.programmers.co.kr/learn/courses/30/lessons/131535 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 SELECT count(user_id) as users from user_info where to_char(joined, 'yyyy') = 2021 and age between 20 and 29; 1. DATE 타입을 TO_CHAR함수로 변환 2. 컬럼 BETWEEN 범위 AND 범위 2023. 6. 11.
[Oracle] 상위 N개 레코드 문제 https://school.programmers.co.kr/learn/courses/30/lessons/59405?language=oracle 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 서브쿼리 활용 SELECT name from ( select * from animal_ins order by datetime ) where rownum 2023. 6. 8.
[Java] 배열을 문자열로 변환 배열을 문자열로 변환하는 메소드 : Arrays.toString() char 배열을 문자열로 변환하는 메소드 : String.valueOf(), Object.toString(), new String() 문자열을 char로 변환하는 메소드 : .toCharArray() 2023. 5. 2.
String.valueOf()과 Object.toString() 차이점 문자열 형 변환의 종류로는 대표적으로 String.valueOf() 속성과 Object.toString() 두 가지 메서드가 존재한다. 두 메서드 모두 객체를 String 문자열 참조 자료형으로 형 변환하는 역할을 하고 있다. String.valueOf()와 Object.toString()의 차이점 1. 변환 가능 자료형의 종류 및 개수 2. null 값의 처리 여부에 따른 차이 보통 문자열로 형 변환 시 toString()을 자주 사용!! But, null 값을 문자열로 형 변환 시 NullPointerException을 발생시킴. 그에 반해 String.valueOf()를 사용하면 전달 받은 파라미터가 null이 전달될 경우 문자열 "null"을 반환한다. Object.toString() public.. 2023. 5. 2.
StringTokenizer StringTokenizer 클래스는 우리가 지정한 구분자로 문자열을 나눠주는 클래스이다. 나눠진 문자열을 토큰이라고 부른다. 생성자(Constructor) 생성자 설명 public StringTokenizer(String str); 매개변수를 기본 delim으로 분리한다. 기본 delim은 공백 문자이다. public StringTokenizer(String str, String delim); 지정한 delim으로 문자열을 분리합니다. public StringTokenizer(String str, String delim, boolean returnDelims); 지정한 delim으로 문자열을 분리하는데, 지정된 delim까지 token으로 포함할지 말지 결정한다. (returnDelims = true,.. 2023. 4. 2.
[chapter 13] 확인 문제 1. 제네릭에 대한 설명으로 틀린 것은 무엇입니까? (1) 컴파일 시 강한 타입 체크를 할 수 있다. (2) 타입 변환을 제거한다. (3) 제네릭 타입은 타입 파라미터를 가지는 제네릭 클래스와 인터페이스를 말한다. (4) 제네릭 메소드는 리턴 타입으로 타입 파라미터를 가질 수 없다. → 가질 수 있다. 2. ContainerExample 클래스의 main() 메소드는 Container 제네릭 타입을 사용하고 있습니다. main() 메소드에서 사용하는 방법을 참고해서 Container 제네릭 타입을 선언해보세요. public class ContainerExample { public static void main(String[] args){ Container container1 = new Container(.. 2023. 3. 2.
[멀티 스레드2] 다른 스레드에게 실행 양보 스레드가 처리하는 작업은 반복적인 실행을 위해 for문이나 while문을 포함하는 경우가 많다. 다음 코드에서 work의 값이 false라면 while문은 어떠한 실행문도 실행하지 않고 무의미한 반복을 한다. 이때는 다른 스레드에게 실행을 양보하고 자신은 실행 대기 상태로 가는 것이 프로그램 성능에 도움이 된다. public void run() { while(true){ if(work){ System.out.println("ThreadA 작업 내용"); } } } yield() yield()를 호출한 스레드는 실행 대기 상태로 돌아가고, 다른 스레드가 실행 상태가 된다. public void run() { while(true){ if(work){ System.out.printl.. 2023. 2. 27.
[chapter 9] 확인 문제 1. 중첩 멤버 클래스에 대한 설명으로 틀린 것은 무엇입니까? 4번. 정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용할 수 있기 때문에, 객체가 반드시 있어야 사용할 수 있는 바깥 클래스의 필드를 정적 멤버 클래스 내부에서 사용할 수 없다. 2. 로컬 클래스에 대한 설명으로 틀린 것은 무엇입니까? 3번. 로컬 클래스는 static 키워드를 붙일 수 없다. 3. 익명 객체에 대한 설명으로 틀린 것은 무엇입니까? 3번. 익명 객체는 생성자를 선언할 수 없다. 4. 다음과 같이 Car 클래스 내부에 Tire와 Engine 클래스가 멤버로 선언되어 있습니다. CarExample 클래스에서 Tire와 Engine 객체를 생성하는 코드를 작성해보세요. public class Car { class Tire{} .. 2023. 2. 6.
[중첩 인터페이스] 익명 객체(익명 자식 객체, 익명 구현 객체) 9.6 중첩 인터페이스 중첩 인터페이스는 클래스의 멤버로 선언된 인터페이스를 말한다. 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위해서이다. 인터페이스도 접근 제한자와 static과 관련하여 중첩 클래스와 동일하다. 중첩 인터페이스는 안드로이드와 같은 UI 프로그램에서 이벤트를 처리할 목적으로 많이 활용된다. 예를 들어 버튼을 클릭했을 때 이벤트를 처리할 객체는 중첩 인터페이스를 구현해서 만든다. package ch09.sec06.exam03; public class Button { // 정적 중첩 인터페이스 public static interface ClickListener { // 추상 메소드 void onClick(); } // 필드 privat.. 2023. 2. 5.
[중첩 클래스] 9.1 중첩 클래스 중첩 클래스란 클래스 내부에 선언한 클래스를 말한다. 객체 지향 프로그램에서는 클래스 간에 서로 긴밀한 관계를 맺고 상호작용한다. 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나, 특정 클래스만 관계를 맺을 경우에는 중첩 클래스로 선언하는 것이 유지보수에 도움이 되는 경우가 많다. 장점 1. 클래스의 멤버를 쉽게 사용할 수 있다. 2. 외부에는 중첩 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. 3. 유지보수에 유용할 경우가 있다. 중첩 클래스는 선언하는 위치에 따라 두 가지로 분류된다. 클래스 멤버로서 선언되는 중첩 클래스를 멤버 클래스라고 하고, 메소드 내부에서 선언되는 중첩 클래스를 로컬 클래스라고 한다. 중첩 클래스도 하나의 클래스이기 때.. 2023. 2. 5.
[데이터 타입] List, Tuple, Set, Dictionary, 문자열 List 순서 존재 index 존재 mutable(변경 가능) 인덱스 지정하여 값 변경 가능 list_ = [1, 2, 3, 4, 5] list_[0] = 7 print(list_) # 출력 [7, 2, 3, 4, 5] Tuple 순서 존재 immutable(변경 불가능) Tuple 활용 # a와 b의 값을 교환하세요. a,b = 100, 200 # usally temp = a a = b b = temp print("a =", a, "b =", b) # 출력 a = 200 b = 100 # tuple a,b = b,a print("a =", a, "b =", b) # 출력 a = 200 b = 100 Dictionary 순서 없음 키와 값으로 구성 중복 불가 * List의 in과 Dic의 in은 기능면에.. 2023. 2. 1.
[Generator] Generator란? iterator를 생성해주는 함수 특징 iterable한 순서가 지정됨 순서의 다음 값은 필요에 따라 계산된다.(느슨하게 평가됨) 함수의 내부 로컬 변수를 통해 내부상태가 유지된다. 무한한 순서가 있는 객체를 모델링할 수 있다.(데이터 스트림) 자연스러운 스트림 처리를 위 파이프라인으로 구성할 수 있다. (JAVA에서 파일 스트림 처리시에 특정 바이트단위로 반복하는 것을 말하는 것 같다.) Generator 사용해보기 >>> def test_generator(): ... yield 1 ... yield 2 ... yield 3 ... >>> gen = test_generator() >>> type(gen) >>> next(gen) 1 >>> next(gen) 2 >>> next(ge.. 2023. 2. 1.