
- 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법
- Java 1.5 부터 나온 개념 : Generic이 나오기 전까지는 참조형 변수 타입을 Object로 받을 수 밖에 없었다.
- 기능: 자료형을 결정짓지 않고 틀을 만들어 두는 것을 말함 (c++에서는 템플릿 이라고 함)
- 형태: Object(참조형 타입) 자리에 T들어감 → Generic
그래서 자료형의 정보를 Object 대신 T로 작성해 비워 두고 인스턴스 생성시 참조 타입을 결정함- 등장 배경: Generic이전의 코드에서 Object로 참조 변수를 선언했을 때 발생하는 문제들을 Generic을 사용함으로써 컴파일 단계에서 잡아줄 수 있도록 했음
public static void main(String[] args) { Box<Apple> abox = new Box<Apple>(); Box<Orange> obox = new Box<>(); Box<String> sbox = new Box<>(); Box<Integer> ibox = new Box<>(); Box<Double> dbox = new Box<>(); dbox.set(1.0); double dNum = dbox.get();//형변환도 필요없다. System.out.println(dNum); }
✅ 소스 구현
class Apple {
public String toString() {
return "I am an apple.";
}
}
class Orange {
public String toString() {
return "I am an orange.";
}
}
class Box<T>{
private T ob;
public void set(T o) {
ob = o ;
}
public T get() {
return ob;
}
}
DBox<String, Integer> box = new DBox<String, Integer>(); box.set("Apple", 25); System.out.println(box); // Apple & 25개
✅ 소스 구현
class DBox<L, R>{
private L str;
private R count;
public void set(L str,R count) {
this.str = str;
this.count = count;
}
@Override
public String toString() {
return str +" & "+ count+"개";
}
}
-- 사원테이블(emp)에서 급여 (SAL)가 3000 이상인 사원을 출력하는 쿼리문
select * from emp where sal>=3000;
-- 부서 번호(DEPTNO)가 20인 사원에 관한 정보만 출력하는 쿼리문
select * from emp where deptno=20;
-- 이름(ENAME)이 KING인 사람의 사번(empno), 이름(ename), 급여(SAL)를 출력하는 쿼리문
select empno, ename, sal from emp where ename='KING';
-- 1982년 1월 1일 이후에 입사한 사원을 출력하는 쿼리문
select * from emp where hiredate >= '1982/01/01';
select * from emp where hiredate >= '1982.01.01';
-- 부서번호가 10번이고 job 이 메니져인 사원은?
select * from emp where deptno=10 and job='MANAGER';
-- 부서번호가 10번 or(또는) job 이 메니져인 사원은?
select * from emp where deptno=10 or job='MANAGER';
-- 부서번호가 10 번이 아닌 사원?
select * from emp where deptno<>10;
select * from emp where deptno!=10;
select * from emp where deptno^=10;
- 테이블의 구조를 확인하기 위한 명령어이다
- SQL*PLUS 명령어 중 하나이다.
- 테이블의 컬럼 이름, 데이터형, 길이, NULL 허용 유무 등 특정 테이블의 정보를 제공한다.
interface Stack { int length(); // 현재 스택에 저장된 개수 리턴 int compacity(); // 스택의 전체 저장 가능한 개수 리턴 String pop(); // 스택의 톱(top)에 저장 boolean push(String val); // 스택의 톱(top)에 저장된 문자 리턴 }
- StringStack 는 객체가 생성될때 기본적으로 3개의 배열을 갖는다.
- boolean push(String val) 구현시 Stack이 다 차있을경우, 배열의 크기를 원래의 크기보다 2배로 늘리고, 원래 있던 배열의 요소를 새로운 배열로 복사하도록 할것.