Java Programming(51)
-
변수 초기화와 메인 메소드
이것도 도장에서 시험문제를 풀다가 나온건데요 +_+;; 변수 초기화에 관해서 문제가 나왔습니다. 메인 메소드에서 초기화 되지 않은 정수형 값에 1을 더한후에 그 숫자를 콘솔창에 띄우는 코드 였습니다. 또.. 당연히.. 초기화 되지 않은 정수형 값은 0으로 자동으로 되겠거니 했지만.. -_-;; 전혀 아닙니다. 예제를 위하여 소스코드를 한번 짜봤습니다. public class Initialization { int freeInit; String canIfree; static int staticVariable; public static void main(String[] args) { /* * Compile Error : Illegal modifier for parameter staticVariable2; on..
2007.01.15 -
생성자의 재발견, super()
오늘도 보기 좋게 도장에서 시험에 낙방을 했습니다 ㅠㅠ 한문제만 더 맞았으면 합격인데.. -_-;; 아직도 많이 부족한것 같습니다. 낙방을 하게 된 원인들(오답)을 살펴보다보니 재미있는 문제들이 많더군요.. 정말 자바의 기초적인 것들이지만 하나하나 엄청나게 중요한데도 불구하고 공부를 안했다는 생각에 실망감이 들었습니다. 하지만 실망감만 들었느냐? 그건 또 아니죠... 이렇게 많은 문제들을 틀릴때마다 하나씩 배워간다는 느낌이 들어서 좋기도하고.. 만감이 교차합니다 ^^;; 굉장히 재미있는것들이 많이 있었습니다. 그 첫 번째는 상속에서의 생성자의 재발견 이었습니다. 배웠던 기억이 있지만 역시 공부를 허접하게 한 티가 나는군요 ㅠㅠ;; 아래와 같은 소스코드가 문제의 보기로 나왔습니다. 이걸 실행시켰을때 콘솔창..
2007.01.15 -
Stream - Scanning
자바를 처음 접하면서 Scanner라는 클래스 형의 객체를 사용하여 사용자로부터 Console 창에서 값을 입력 받을 수 있었습니다. Stream 에서 Scanner 클래스의 객체를 이용하여서 사용하는 튜토리얼이 나와 있었습니다. 기존에는 Scanner s = new Scanner(System.in); 이런식으로 사용 했는데 생성자의 인수가 inputStream 객체입니다. Scanner의 생성자를 살펴보면 InputStream만 인수로 받는다는것을 알수가 있습니다. Scanner(InputStream source) Constructs a new Scanner that produces values scanned from the specified input stream. Scanner(InputStream..
2007.01.10 -
Stream - Line-Oriented I/O, BufferedStream ②
Most of the examples we've seen so far use unbuffered I/O. This means each read or write request is handled directly by the underlying OS. This can make a program much less efficient, since each such request often triggers disk access, network activity, or some other operation that is relatively expensive. To reduce this kind of overhead, the Java platform implements buffered I/O streams. Buffer..
2007.01.10 -
Stream - Line-Oriented I/O, BufferedStream ①
Character Stream 챕터에 나오는 Line-Oriented I/O는 같은 글에서 다루지 않았다. 왜냐하면 Character Stream 챕터의 마지막 부분에 Line-Oriented I/O Stream에 대한 설명이 나오면서 동시에 Buffered Stream에 대한 소개가 나오기 때문에 약간은 틀린 개념이기 때문에 따로 나누어서 공부를 했다. 기존의 Byte Stream과 Character Stream이 바이트 단위로 입출력을 했다면, Line-Oriented I/O는 line-terminater 단위로 입출력을 해준다. line-terminater는 carriage-return/line-feed sequence ("\r\n") 이렇게 두가지 종류가 있다고 한다. CopyLines 라는 클래..
2007.01.10 -
Annotations
자바 공부를 하다보면 간혹가다가 '@' 이렇게 생긴 특수 문자를 사용하는 경우를 볼 수 있습니다. 일단 제가 봤던 경우를 예로 들자면 메소드 오버라이딩 할때 쓰거나, Junit에서 Test할 메소드 위에 @Test 이런식으로 붙여 줬었는데요. 한번은 이런적이 있었습니다. 이클립스를 사용하면서 보면 클래스 명에 노란색 밑줄이 그어지면서 warning 메시지가 보이는 현상이 있는데 정말 신경쓰이더군요. 해결을 해주면 @SuppressWarnings()가 클래스 선언부 위쪽에 생성되면서 경고 메시지가 사라집니다. 도대체 저 어노테이션이라는 것은 무엇을 하는것일까? 너무 궁금해서 조사를 해보았습니다. 출처는 역시 Sun에서 제공하는 Java Tutorial입니다. 일단 어노테이션의 의미 자체는 '주석' 이라는 ..
2007.01.10