* 문자열을 byte stream 으로 출력하기 * file.encoding VM 프로퍼티 ① 설정하는 방법 ② 설정하지 않으면 OS의 기본 문자집합으로 설정 OS에 따라 file.encoding이 달라지지 않게 해주려면 UTF-8로 고정되게 해야한다. // => UTF-8로 인코딩 하기 System.out.printf("file.encoding=%s\n", System.getProperty("file.encoding")); byte[] bytes = str.getBytes("UTF-8"); // UCS2 ==> UTF-8 * UTF-8 byte -> String 객체 String str = new String(buf, 0, count); // 바이트 배열이 어떤 문자집합으로 인코딩 된 것인지 알려주지 ..
* java.io.*, java.nio.* ① File 클래스 → ② Binary I/O 클래스 → ③ Data Processing 클래스 ④ character I/O 클래스 → ⑤ JSON 형식으로 I/O * File 클래스 ① File 클래스 - 폴더 생성 // 디렉토리를 생성할 때 존재하지 않는 중간 디렉토리도 만들고 싶다면, // mkdirs()를 호출하라. // // mkdirs() // - 지정된 경로에 디렉토리가 존재하지 않으면 그 디렉토리도 만든다. // // 디렉토리 생성 package io.ex01; import java.io.File; public class Exam0322 { public static void main(String[] args) throws Exception { Fi..
* 24. 제너릭(Generic) 적용 ① 다형적 변수 적용 전 각 타입별로 List 클래스를 만든다. MemberList ↔ Member BoardList ↔ Board 문제점 ? List의 기능은 같고 타입만 다르다 ! → 코드 중복 발생 !! ② 다형적 변수 적용 MemberHandler → ArrayList → Object "다양한 타입의 인스턴스(주소)를 담는다." BoardHandler 장점 ? 타입별로 List를 만들 필요가 없다 ! 문제점 ? 명시적 형변환이 필수적이고, 특정 타입만 다루도록 제한할 수 없다 ! (모두 Object의 자손) ③ Generic → Type Parameter Object 를 What 대신 일반적으로 사용하는 E로 바꿔적어 준다. (elements) 일반적으로, ..
다형적 변수와 오버라이딩 // 다형적 변수와 오버라이딩 - 레퍼런스와 메서드 호출 com.eomcs.oop.ex06.d; A obj = new A3() 가능 ! A obj = new A2() 가능 ! A obj = new A() 가능 ! A2 obj = new A() 불가능 ! ★ 하위 레퍼런스로 상위 레퍼런스를 가리킬 수 없다 ! package com.eomcs.oop.ex06.d; class A { public void m() { System.out.println("A의 m() 호출!"); } } class A2 extends A { @Override // 컴파일러에게 오버라이딩을 제대로 했는지 검사하라고 명령한다. public void m() { System.out.println("A2의 m() 호..