위 에러는 클래스를 인스턴스화(객체화) 시키지 않고 내부 클래스를 접근할 때 발생한다. 예를 들어, class Foo { class Bar { } } Bar bar = new Foo.Bar(); 위와 같이 사용하였을 경우 에러가 난다. 또 빈번하게 에러가 나는 경우가 있다. 비슷한 맥락이지만, 메소드를 static으로 선언해 주고 static이 아닌 내부 클래스를 접근할 경우동일한 에러가 발생된다. class Foo { class Bar { } static void Test() { new Bar() .... } } 이유는 동일하다. 내부 클래스는 외부 클래스 생성시에 생성되기 때문이다.
컨텐트 프로바이더는 여러 애플리케이션 간의 데이터를 공유할 수 있는 유일한 방법입니다. 자기 자신의 데이터를 공유하고자 한다면 자기 자신의 컨텐트 프로바이더를 만들거나, 기존의 컨텐트 프로바이더에 데이터를 추가할 수 있습니다.. 컨텐트 프로바이더 사용하기 컨텐트 리졸버를 이용합니다. 모든 컨텐트 프로바이더에 해당되는 공통의 인터페이스 입니다. 컨텐트 프로바이더에 접근하기 위해서는 URI가 필요합니다. ContactsContract.Contacts.CONTENT_URI와 같은 식으로 상수로 제공하게 됩니다. 데이터를 가져오기 위해서는 ContentResolver.query() 또는 Activity.managedQuery()를 이용하는데, 여기서는 전자를 이용하겠습니다. query()의 매개변수를 이용하여 ..
줄 번호 설정 set nu 자동 들여쓰기 set smartindent
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. 독립적인 프로그래밍 가능 인터페이스를 이용하여 선언과 구현을 분리할 수 있기 때문에 한 클래스의 변경이 다른 클래스의 변경에 영향을 미치지 않도록 하여 독립적인 프로그래밍이 가능해진다. 참조 : 자바의 정석
- Total
- Today
- Yesterday
- 대학원
- 알고리즘
- 머신러닝
- java
- 개발
- statistical learning
- 자료구조
- 리버스엔지니어링
- 카타르
- operating systems
- 자바
- 데이터 사이언스
- reversing
- android
- 리눅스
- 리버싱
- 통계학습
- 기계학습
- Data Science
- Machine Learning
- Discrete Mathematics
- Reverse Engineering
- 카타르 음주
- 이산수학
- 안드로이드
- Algorithms
- 운영체제
- 데이터 과학
- Data Structure
- linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |