class StringEx{ public static void main(String[] args) { int value1 = 100; String strValue = String.valueOf(value1); // int->String int value2 = 100; String strValue2 = value2 + ""; // int->String 두번째 방법 System.out.println(strValue); System.out.println(strValue2); } } ValueOf가 성능이 좋지만 두 번째 방법이 편리하다. 객체도 위와같이 사용할 수 있으며 toString()메소드를 오버라이드해야 한다. 참조 : 자바의 정석
서로 다른 객체는 같은 해시코드 값을 가질수 없음 class HashCodeEx { public static void main(String[] args) { String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.hashCode()); System.out.println(str2.hashCode()); System.out.println(System.identityHashCode(str1)); System.out.println(System.identityHashCode(str2)); } } 96354 96354 3526198 7699183 참조 : 자바의 정석
(1)의 예제에서는 메인 밖에서 에러가 발생될 경우에는 에러가 로그파일에 저장되지 않는다. 그래서 다음과 같이 변경해 주면 정상적으로 로그 파일에 저장할 수 있게 된다. public class ExceptionEx { public static void main(String args[]) { PrintStream ps = null; FileOutputStream fos = null; try{ fos = new FileOutputStream("error.log", true); ps = new PrintStream(fos); System.setErr(ps); System.out.println(1); System.out.println(2); System.out.println(3); System.out.print..
log파일은 단순한 파일일 뿐 특별한 의미를 지니는 확장자는 아니다. class ExceptionEx { public static void main(String args[]){ PrintStream ps = null; try { ps = new PrintStream("error.log"); System.out.println(1); System.out.println(2); System.out.println(3); System.out.println(0/0); System.out.println(4); } catch (Exception ee) { ee.printStackTrace(ps); ps.println("예외메시지 : " + ee.getMessage()); } } } error.log파일에 에러 정보가 저..
1. 개발 시간 단축 동시 개발 진행이 가능하다. 2. 표준화 가능 기본 틀을 인터페이스로 만들고 인터페이스를 구현하여 사용한다. 3. 관계없는 클래스들에게 관계를 맺어 줄 수 있다. 관계없는 클래스들이 공통적 특성이 있을 경우, 특성을 인터페이스를 만들어 공통적으로 구현하도록 하여 관계를 나타내게 할 수 있다. 4. 독립적인 프로그래밍 가능 인터페이스를 이용하여 선언과 구현을 분리할 수 있기 때문에 한 클래스의 변경이 다른 클래스의 변경에 영향을 미치지 않도록 하여 독립적인 프로그래밍이 가능해진다. 참조 : 자바의 정석
추상 클래스는 부분적으로 완성된 미완성 설계도, 인터페이스는 밑그림만 있는 기본 설계도 -인터페이스의 상속 인터페이스끼리 상속 가능하며 다중 상속 가능 -인터페이스의 구현 자신에 정의된 추상메소드의 몸통 만드는 클래스 작성시 implements 키워드 이용 만약, 인터페이스의 메소드 중 일부만 구현한다면 추상 클래스로 만들어야 함 -인터페이스를 이용한 다중 상속 클래스 A와 클래스 B가 있을 때, IB라는 인터페이스를 만들어서 B의 메소드들과 같은 형태의 추상메소드를 만들어 놓고 A를 상속하고 IB를 구현하는 클래스를 만들고 내부에 클래스 B를 선언하여 인터페이스들의 추상 메소드를의 몸통을 채울 경우 다중 상속과 같은 효과를 가진다. public class TVCR extends Tv implements..
1. Runnable 이용하기 class UsingThread implements Runnable{ public void run(){ // 스레드의 동작 내용 } } public class MainClass { public static void main(String[] args){ UsingThread ut = new UsingThread(); Thread main_Thread= new Thread(ut); main_Thread.start(); } } 2. Thread클래스 이용하기 class MainThread extends Thread{ public void run(){ // 스레드 동작 내용 } } public class MainClass { public static void main(String[..
- Total
- Today
- Yesterday
- Algorithms
- 기계학습
- Data Structure
- java
- 데이터 과학
- 이산수학
- 데이터 사이언스
- Reverse Engineering
- statistical learning
- android
- 대학원
- Machine Learning
- 머신러닝
- reversing
- 자바
- 카타르 음주
- 리버싱
- Data Science
- Discrete Mathematics
- 자료구조
- 카타르
- 운영체제
- 알고리즘
- 리눅스
- 안드로이드
- linux
- operating systems
- 개발
- 리버스엔지니어링
- 통계학습
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |