목록공부 (172)
꿈 많은 사람의 이야기
정적(static)이란 '고정'의 의미를 갖고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 1 2 3 4 5 6 7 8 class A { static int num = 1; static void amt() { } } class B { A.num; A.amt(); } cs위 static으로 작성 해놓은 변수와 메소드가 정적 멤버이다. 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다. 이것에 대한 접근은 클래스.필드; 클래스.메소드( 매개값) 으로 호출할 수 있다. 여기서 가장 중요한 특징은..
메소드는 객체의 동작에 해당하는 중괄호 {} 블록이다. 자바는 이러한 메소드를 이용해서 클래스안에서 기능을 동작하게 만든다. 메소드는 리턴타입 메소드 이름 ([매개변수1, 배개변수2..]){ 실행 소스; } 와 같이 만들어진다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Radio { int number; public void setVolume(int volume) { number = volume; } public int getVolume() { return number; } } Colored by Color Scripter cs 위에서 setVolume은 볼륨 값을 설정하는 메소드이다. 그리고 getVolume은 설정된 number 값을 return 해주는 return ..
생성자는 new 연산자와 같이 사용되어 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다. 객체 초기화란 필드를 초기화하거나, 메소드를 호출해서 객체를 사용할 준비를 하는것이다. 자바에서의 객체는 생성자를 실행시키지 않고서 만들 수 없다. new 연산자에 의해 생성자가 성공적으로 실행되면 힙 영역에 객체가 생성되고 객체 주소가 리턴된다. 모든 클래스에는 생성자가 반드시 존재하며, 하나 이상을 가질 수 있다(오버로딩). 만약 개발자가 클래스 내부의 생성자 선언을 생략했으면 컴파일러는 기본 생성자를 바이트 코드에 자동 추가 시킨다. 예를들어 소스 파일(A.java)에선 class A { } 이면 바이트 코드파일(A.class)에서는 class A { public A() { } } 와 같이 생성..
객체라는 것은 물리적으로 존재하거나 추상적으로 존재하는 것에 대해 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말한다. 예를들어 사람, 학과, 강의 등등 모든 것이 객체가 될 수 있다. 그리고 객체는 속성과 동작으로 구성되어 있다. 예를 들어 사람은 이름, 나이등의 속성이 있고 웃다, 움직이다의 동작이 있다. 그리고 객체는 다른 사람과 식별 가능하기 때문에 다 각자 객체라고 한다.예를 들어 나의 친구 A, 선생님 B, 친척 C 등등 모두 다 사람이지만 식별 가능하기에 객체가 될 수 있다. 그리고 이 객체들은 서로 상호작용이 일어난다.객체들은 다 독립적으로 존재하지만 다른 객체와 서로 상호작용하며 동작한다.사람을 보면 제자와 선생님은 서로 상호작용하며 살아간다. 그런 원리와 비슷하다. 객체지향 프..
향상된 for문은 배열에서 많이 쓰이는 방법이다. String[] numbers = {"1", "two", "3"};for(int i = 0 ; i < numbers.length; i++){System.out.println(numbers[i]);} 기존에 이러한 방식으로 for문을 돌려 작성했다고 하면for each에선 이렇게 사용한다. for(String a : numbers){System.out.println(a);} 와 같이 하면 간결하게 for문을 작성할 수 있다.
JVM은 메모리 영역을 분할해 사용한다. java.exe로 JVM이 시작되면 JVM은 운영체제에서 할당받은 메모리 영역을 다음과 같이 세부 영역으로 구분해서 사용한다. - 메소드 영역 메소드 영역은 코드에서 사용되는 클래스(~.class)들을 클래스 로더로 읽어 클래스별로 런타임, 필드데이터, 메소드 데이터 등을 분류해서 저장한다. - 힙 영역 객체와 배열이 생성되는 영역이다. 힙 영역에 생성된 객체와 배열은 JVM 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM은 가비지 컬렉션을 실행시켜 자동으로 제거한다. - 스택 영역 스택 영역은 각 스레드마다 하나씩 존재하며 스레드가 시작될 때 할당된다. 스택은 메소드..
가끔 사용자가 입력한 키보드의 버튼에 따라 프로그램을 처리해야할 때가 있다.다음은 키보드가 가지고 있는 키 코드이다. 숫자알파벳기능키방향키0 = 48A = 65N = 78a = 97A = 110Backspace = 8왼 = 371 = 49B = 66O = 79b = 98B = 111Tab = 9위 = 382 = 50C = 67P = 80c = 99C = 112Enter = [CR=13, LF= 10]오 = 393 = 51D = 68Q = 81d = 100D = 113Shift = 16아래=404 = 52E = 69R = 82e = 101E = 114Ctrl = 175 = 53F = 70S = 83f = 102F = 115Alt = 186 = 54G = 71T = 84g = 103G = 116ESC = 2..
자바스크립트는 뭐 다양한 기능이 존재하지만 기본적으로 HTML 태그의 id 값에 접근해서 DOM 객체를 생성한 뒤 해당 값에 접근하여 css, html text 값 등을 바꿀 수 있다. 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 Document button{ width: 100px; height : 50px; font-size: 18pt; } 안녕하세요 내용바꾸기 on off Colored by Color Scripter c s 위 예제처럼 말이다. 저 방식은 html 태그 안에 직접 써놓는 inline 방식인데 저렇게 써도 상관은 없지만 유지보수 측면에서 script 영역을 따로 설정하는 것이 좋다. 1 2 3 4 5..
perl 언어 좀 많이 생소한 언어죠 . 우연치 않게 접했지만 이런 언어는 학교 다닐 때 언어 역사를 보면서 잠깐 봤던 언어로 기억합니다. pascal, Ada 등등 익숙치 않은 언어를 접한 기분이네요.. 그럼 이 언어는 뭘까 도대체 그냥 뭐 C 같은 프로그래밍 언어인거 같네요(당연히..). 근데 CGI를 통해서 접근하는 언어라고 합니다. CGI는 웹 서버와 외부 프로그램 사이에서 정보를 주고 받는 방법 같은걸 말하는데 간단히 사용자 요청에 의한 서버의 응답이라고 보면 됩니다. 그래서 펄은 웹 프로그래밍에 많이 사용한다고 해요. 저는 웹 프로그래밍을 위해 펄에 대한 게시글을 작성할겁니다. 솔직히 PHP, JSP보다 더 불편한 것 같기도 하지만 그런데도 여러모로 장점이 있다고 하네요. 먼저 펄을 설치해봅니..
자바는 모든 문자를 유니코드로 처리한다. 유니코드는 세계 각국의 문자들을 코드값으로 매핑한 국제 표준 규약이다. 유니코드는 하나의 문자에 대해 하나의 코드값을 부여한다. A 및 한글도 하나의 코드 값을 갖는다. 유니코드는 0 ~ 65535 범위의 2byte 크기를 가진 정수 값이다. 그 중 0 ~ 127 까지는 아스키 문자(특수 기호 및 영어 알파벳)가 할당되어 있고 44032 ~ 55203까지는 한글 11172자가 할당되어 있다. 자바는 하나의 유니코드를 저장하기 위해 2byte 크기인 char 타입을 제공한다.char var = 'A'; -> 유니코드 0x0041 -> 2진수 00000000 01000001 이런 식으로. 각 문자에 대해 유니코드 값을 얻으려면 int값으로 받으면 된다.예를 들어cha..