새로운 객체를 할당하고 이를 다른 참조변수에 복사하는 경우에 대해 알아본다.결과적으로는 참조변수에 기존의 객체를 참조하는 참조변수를 대입하면 그 두 변수는 동일한 것을 가리킨다.그리고 값이 똑같다고 객체까지 같다고 할 수는 없다. public class ObjectTest {int data; public ObjectTest(int x) {data = x;} public ObjectTest clone() throws CloneNotSupportedException {ObjectTest temp = new ObjectTest(this.data);return temp;} public static void main(String[] args) {// TODO Auto-generated method stubObje..
Assertion은 예외처리의 한 가지 방법으로 코드의 논리적오류를 검사한다. import java.io.BufferedReader;import java.io.InputStreamReader; public class AssertionTest { public static void main(String[] args) {// TODO Auto-generated method stubint a; BufferedReader in = new BufferedReader(new InputStreamReader(System.in));try {System.out.println("점수를 입력하세요");a = Integer.parseInt(in.readLine());assert (a =0) : "올바르지 못..
Exception 클래스를 상속받는 사용자 예외 클래스 작성예외 발생 시 예외를 새로운 객체에 던짐 import java.io.BufferedReader;import java.io.InputStreamReader; public class UserException {public static void main(String arg[]) {BufferedReader in = new BufferedReader(new InputStreamReader(System.in));try {System.out.println("하나의 숫자를 입력하세요 ");int score = Integer.parseInt(in.readLine());if (score < 0) {throw new UserException1("점수가 너무 작음"..
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 에서Oracle Database 11g Release 2 / (11.2.0.1.0) / Microsoft Windows (32-bit) / 파일 2 개 다운로드다운로드한 2 개의 파일에서 \database\stage\Components 경로 내에 있는 파일 통합 (3개 파일) 설치 후 cmd -> sqlplus -> system/password 로 로그인. 혹은 sqlplus "/as sysdba" 로 로그인(관리자) 관리자 암호 잃어버린 경우command에서 관리자모드로 로그인 후 alter user system identified by 암호; scott ..
try-catch와 throw public class ThrowsException { static int a, b; public static void main(String[] args) {// TODO Auto-generated method stub try {a = Integer.parseInt("12");b = Integer.parseInt("0");method1();} catch (ArithmeticException e) {System.out.println("ArithmeticException 처리 루틴 : ");System.out.println(e + " 예외 발생");} catch (NumberFormatException e) {System.out.println("NumberFormatExcept..
인위적으로 발생시킨 예외 발생 코드 public class Accident { public static void main(String[] args) {// TODO Auto-generated method stubtry{int score = 200;if(score > 100){//인위적 예외발생throw new NumberFormatException("점수가 너무 크데");}}catch(NumberFormatException e){//printStackTrace와 getMessage 메소드 이용e.printStackTrace(System.out);e.printStackTrace();System.out.println(e.getMessage()+" 예외 발생!");}}} 결과 : java.lang.Number..
예외 : 문법적으로는 이상이 없어서 컴파일 시점에는 아무런 문제가 없지만프로그램 실행 중에 발생하는 예기치 않은 사건으로 발생하는 오류 예외가 발생하는 경우 : 정수를 0으로 나누는 경우배열의 첨자가 음수 또는 범위를 벗어나는 경우부적절한 형 변환이 일어나는 경우입출력을 위한 파일이 없는 경우 등 예외처리의 용도정상 종료예외내용 보고예외 발생 시 무시하고 계속 실행정상적인 값으로 변경 예외 관련 클래스의 계층 구조 : Object -> Throwable -> Error -> Exception즉, 예외 처리 최상 클래스는 Throwable이다. Error는 메모리 부족 등과 관련하여 시스템적으로 발생하는 심각한 오류로 처리할 수 없다.Exception의 RuntimeException은 실행 시 JVM에서 ..
자바나 안드로이드 프로그래밍을 하다보면 다음과 같은 구문을 많이 볼 수 있다. new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubSystem.Out.pinrtln("이건 스레드입니다.");}}).start(); 이런 구문을 통해 일회용 객체를 생성하여 사용하고 버릴 수 있다.특히 이벤트의 리스너들이 이 방법을 많이 사용하고 이름 없이 객체를 사용할 수 있는 방법이다.위의 예제는 일회용 스레드이다. public class AnonymousInner { interface TestInner {int data = 10000; public void printData();} public void test()..