본문 바로가기

내 이야기

(630)
레퍼런스 타입 ◇ 자바데이터 타입 ▷ 기초타입(Primitive type) 수치타입 : byte, short, int, long, char (정수) / float, double (실수) Boolean타입 : boolean ▷ 참조타입(Reference type) 클래스, 인터페이스, 배열, 열거(enum) ※ 타입 안에 다수의 값이 들어갈 수 있는 것은 참조타입이라고 볼 수 있다. ※ 하지만, 참조변수가 가리키는 것 또한 전달 방식으로 보면 값 타입으로 볼 수 있다. ◇ null 참조값 Point pt; // 참조변수 Point pt = null; System.out.println(pt.x); System.out.println(pt.x); 결과 : 컴파일 에러 결과 : 런타임 에러 → 즉, 초기화 되지 않은 것을 참조..
스트림 ◈ Stream 데이터의 흐름. ◇ 스트림의 구분 1. 입력스트림 → 프로그램 → 출력스트림 2. 문 자 : 문자 스트림 데이터 : 바이트 스트림 IOStream 구분 Node Stream : 외부자원과 연결하는 것이 목적인 스트림 실제 읽고 쓰는 방법은 다양하지 않다. Filter Stream : 읽고 쓰는 것이 목적 외부 자원과 연결 불가 기존의 NodeStream에 추가되어 기존 Stream의 읽고 쓰는 방법을 upgrade 하는 것이 목적 ◇ 연결방법 1. Node Stream으로 외부자원과 연결 2. Filter Stream으로 Filtering (I/O 방법을 풍부하게 만들어 준다.) 3. Filter를 이용해서 Read / Write 실시 4. 연결 Close ◇ 스트림 구분 ▷ Byte I..
Exception Exception (예외상황) 오류 : 프로그램이 정상적으로 수행이 안되는 상황 Throwable 클래스를 상속 받음. (Exception, Error) 1. Error : 심각한 오류. 처리할 수가 없음. 하드웨어적인 오류가 많음. 2. Exception : mild한 오류. 소프트웨어적인 오류. 오류 발생시 처리 가능. → Exception Handling Exception 1. Checked Exception 반드시 처리해줘야 할 Exception을 처리하지 않았을 때, 컴파일 시에 점검해주는 오류. 프로그램 자체의 문제가 아니라, 실행 환경상 발생하는 문제. 프로그램 개발 시 발생 여부 예측 불가능. 반드시 Exception Handling 이 필요. 2. Unchecked Exception 프로..
private 메소드를 하위에서 다시 만들어서 호출 할 때 class Animal{ private void show() { System.out.println("animal"); } } class Human extends Animal{ public void show() { System.out.println("Human"); } } class Test { public static void main(String args[]) { Animal a = new Human(); a.show(); } } compile error : show() has private access in Animal a 객체는 a의 명세를 가지고 메소드를 호출하는 데, a의 명세에서 보면, show는 private이기 때문에 실행 시에는 실제 객체가 생성된 Human show()에 접근하겠지만, ..
자바 String 문자열.. - When are two Strings EQUAL? String 클래스는 자바 개발자에게 있어서 다른 클래스 객체와는 다르게 다뤄진다. 먼저 다음과 같이 new String을 하여 초기화 할 수 있다. String string = new String("The Plming Space"); ← 이러한 방법을 추천하지는 않는다. 혹은 다음과 같이 초기화도 가능하다. String string = "The Plming Space"; 문자열을 비교할 때는 equals 메서드와 혹은 == 동등연산자를 이용해서 비교가 가능하고, 때에 따라서 어떤 경우에 true를 리턴하는지를 확인하는 것이 여기서의 목표이다. 다음의 코드를 확인하면, class Equals { public static void main(String[] args) { Double object1 = new..
Singleton Test 싱글톤 디자인패턴 한 클래스에서 하나의 객체만 만들고자 할 때. 1. 생성자를 private로 만든다. 2. 내부 static 변수로 생성자를 이용해서 객체를 하나 생성한다. 3. public으로 생성된 객체 하나(2번에서 만든 static변수)를 리턴해주는 메소드를 만든다. public class SingletonTest{ public static void main(String[] args){ Company c = Company.getCompany(); Company c1= Company.getCompany(); // Company c2 = new Company(); // 생성자가 private 이므로 외부에서 객체 생성 불가 System.out.println(c); System.out.println(..
키보드 입력받는 방법 패키지 명 java.lang.System (in) java.io.InputStream (read) java.io.BufferedReader (readLine) 메소드 명 in (필드) public static final InputStream in read (메서드) abstract int read() / int read(byte[] b) readLine (메서드) String readLine() 기 능 표준 입력 스트림. / 키보드 입력을 받을 수 있게 해 줌. in은 바이트스트림을 입력받기 때문에 한글을 받을 수 없으며, 한글을 받기 위해서는 바이트스트림을 문자스트림으로 바꾸는 기능을 하는, InputStreamReader 클래스와 사용. 만약, 라인 단위로 문자를 입력받고자 할 때에는 Buffered..
자바 접근제어자 자바의 접근제어자 ◇ 범위 private < default < protected < public ◇ private (-) 해당 클래스 내에서만 사용 ◇ package friendly (class default) 동일 패키지 안에서만 사용 ◇ protected (#) 동일 패키지와 해당 클래스를 상속받은 서브 클래스에서만 사용 가능 ◇ public (+) (interface default) 모든 패키지와 클래스에서 사용 가능. ◇ 메소드 오버라이딩과 접근제어자와의 관계? 메소드 오버라이딩 시에, 상속받아서 구현한 오버라이딩 된 메소드는 상위 클래스의 해당 메소드의 접근제어자와 반드시 같을 필요는 없는지만, 범위가 같거나 넓은 범위로 정해야 한다. ◇ 클래스의 public과 default (클래스는 priv..