java 커맨드라인 실행은 지극히 기본적인 것이다. 하지만 우리는 이클립스의 노예이기 때문에 커맨드라인에서 컴파일하고, 실행하는게 매우 낯설고 어렵다. 나도 어렴풋이 알기만 했었는데, 이번에 JFlex와 JCup을 이용하여 학교 컴파일러 텀프로젝트를 해보며 알게 되었고 알게 된 김에 정리하기로 했다. 일단 기본적으로 컴파일은 javac를 이용한다. >javac ~~~.java 이렇게 실행하면 ~~~.class가 생성된다. .class 파일이 생성되는 경로는 직접 지정할 수 있다. 컴파일 되어 생성된 .class 파일을 java를 이용해 실행한다. >java ~~~.class 이렇게 하면 컴파일된 .class 파일이 실행되게 된다. 여기서 주의할 점은 java명령어를 실행하는 위치이다. 프로젝트 환경에서 ..
Java는 기본적으로 정의된 자료 구조에 대해 정렬 메소드를 제공합니다. 배열의 경우에는 다음과 같이 하며, Arrays.sort(arr); 컬렉션(ArrayList, HashMap, etc...)의 경우에는 다음의 메소드를 호출합니다. Collections.sort(cl); ※ 정렬시 유의해야할 점 컬렉션 또는 배열의 자료형은 primitive(기본형)이거나, Comparable인터페이스를 구현하고 compareTo() 메소드를 오버라이드 해야 합니다.
위 에러는 클래스를 인스턴스화(객체화) 시키지 않고 내부 클래스를 접근할 때 발생한다. 예를 들어, class Foo { class Bar { } } Bar bar = new Foo.Bar(); 위와 같이 사용하였을 경우 에러가 난다. 또 빈번하게 에러가 나는 경우가 있다. 비슷한 맥락이지만, 메소드를 static으로 선언해 주고 static이 아닌 내부 클래스를 접근할 경우동일한 에러가 발생된다. class Foo { class Bar { } static void Test() { new Bar() .... } } 이유는 동일하다. 내부 클래스는 외부 클래스 생성시에 생성되기 때문이다.
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..
- Total
- Today
- Yesterday
- 자바
- Discrete Mathematics
- reversing
- 운영체제
- 카타르
- 알고리즘
- Reverse Engineering
- 카타르 음주
- 기계학습
- 리눅스
- Algorithms
- 데이터 과학
- android
- 대학원
- statistical learning
- 안드로이드
- 개발
- Machine Learning
- 리버싱
- 자료구조
- 데이터 사이언스
- 리버스엔지니어링
- Data Structure
- 통계학습
- linux
- 머신러닝
- Data Science
- java
- 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 |