서로 다른 객체는 같은 해시코드 값을 가질수 없음 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..
위치정보로 날씨 정보를 가져오기 위해서는 우선 GeoPoint로 지역정보를 가져와야합니다. 이를 위해서는 Geocoder를 이용합니다. 지역->GeoPoint 를 지오코딩(Geocoding)이라고 하고, GeoPoint->지역 을 역 지오코딩(Reverse geocoding)이라고 합니다. 여기서는 역 지오코딩을 이용합니다. Geocoder의 getFromLocation()을 이용하여 Address 객체를 받아올 수 있습니다. ※ 주의 : 아시다시피 GeoPoint의 위도와 경도 값은 마이크로 값이므로 int형 입니다. 하지만 getFromLocation에서 사용되는 위도와 경도는 실제 값으로 double형입니다. 그래서 10^6으로 나누어서 인자를 넣어줘야 합니다. Address 객체를 통해 지역 값을..
리눅스에서는 사용자 마다 권한을 부여하여 권한의 범위 안에서만 파일을 제어하도록 한다. 리눅스에는 4가지 종류의 사용자가 있다. user, group, other, root이다. ls -al을 이용하여 권한을 확인할 수 있다. -rwxrwxrwx 1 test1 test2 5 10월 20 21:35 testtext 순서대로 첫 번째 rwx가 user의 권한이고, 그 다음이 group의 권한, 마지막이 other의 권한이다. rwx는 순서대로 읽기(read), 쓰기(write), 실행(execute)을 의미한다. test1은 user를, test2는 group을 의미한다. x권한이 있는 것은 실행파일을 의미한다. r권한이 없다면 읽을 수조차 없다. 예를 들어, /etc/shadow의 경우에는 ls 명령어로 ..
파일 만들기 cat > test.txt 위와 같이 입력 시 test.txt 파일이 만들어진다. test.txt가 존재할 경우에는 덮어씌우므로 이어서 내용을 입력하기 위해서는 >>를 이용한다. 파일 내용추가 cat >> test.txt >와 >>의 의미는 출력되는 것을 변경해 주는 것이다. 기본적으로 cat을 하게 되면 STDOUT(표준 출력)으로 출력되지만, 리다이렉션을 사용할 경우 해당 파일로 출력이 전환되게 된다. 그것을 file descriptor라고 하는데, 0~2번은 표준입력,출력,에러 스트림으로 지정되어 있다. 참조 : 해커스쿨(http://hackerschool.org)
- Total
- Today
- Yesterday
- 자바
- linux
- 데이터 과학
- reversing
- statistical learning
- 카타르
- 데이터 사이언스
- Machine Learning
- 이산수학
- 운영체제
- 머신러닝
- Data Structure
- 자료구조
- 카타르 음주
- 대학원
- 통계학습
- Data Science
- 개발
- android
- 안드로이드
- Discrete Mathematics
- operating systems
- 리버스엔지니어링
- java
- 리눅스
- Reverse Engineering
- 기계학습
- 알고리즘
- 리버싱
- Algorithms
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |