자바 배열 다루기(다차원 선언후 초기화등)

Programing 2010.05.23 05:43

Java의 배열에서 메모리 할당 방식:

stack area -  배열 이름만 (메서드 내부에서 선언했을 경우. 4byte)

heap  area - 실제 배열 크기 할당. new 동적 메모리 할당자 이용, Garbege컬렉션에 의해 자동 소멸.

   

 

선언, 초기화

1) 선언 후 초기화

int[] a;     int a[];                                       a = new int[3];      a = new int[]{1,2,3};

int[][] a;  int[] a[];   int a[][];                    a = new int[3][];   a = new int [3][2];

                                                                a = new int[][]{{1,2},{3,4}};

 

2) 선언과 동시에 초기화  

int[] a = {1,2,3};         int a[] = {1,2,3};

int[][] a = {{1,2},{3,4}};           

 

 cf. 1,2차원 배열 동시 선언

             int[] a,b[];                                    //a: 1차원, b: 2차원.

      다이나믹한 2차원 메모리할당.

             char[][] a = new char[2][];

             a[0] = new char[3];  

             a[0][0] = 'c';   a [0][1] = 'a';   a[0][2] = 'r';

             a[1] = new char[5];

             a[1][0] = 'j';    a[1][1] = 'a';    a[1][2] = 'v';    a[1][3] = 'a';      a[1][4]='!';

 

 

 System.out.println("배열길이:" + arr.length);                                    //배열길이확인 
 System.out.println("배열원소:" + arr[0]+" "+arr[1]+" "+arr[2]);

posted by ned3y2k

Java 몇가지 연습 소스

Programing 2010.04.29 04:15
학교에서 배우는 것인데 사용할 사람이 있으면 사용하면 될것 같다.
넷빈즈로 주로 작업이 되었고 유니코드로 작업이 되어있다.

student01_다음일자계산
입력한 일자에서 일정 일자를 더함
캘린더 함수를 이용하였음.

student02_물때계산
입력한 양력일자의 물때를 구함.

student03_간지계산
입력한 양력일자를 기준으로 간지가 어떻게 되는지 파악.

student04_달력출력
캘린더 함수를 사용하지 않아 달력의 만들어지는 원리부터 파악하였음.

posted by ned3y2k

1. 8086 프로세서 어셈블리어 이용 프로그래밍 간단 소개

강좌에 들어가기 전에...
나도 남들에게 가르칠 만큼의 좋은 실력이 되지 않는건 사실이지만, 이 글을 읽어서 그동안 컴터의 구조를 몰랐던 분들이나 어셈블리 프로그래밍에 조금이라도 관심을 가지는 분에게 도움이 될수 있었으면 합니다.


여기 있는 강좌는 "8086 Microprocessor Emulator "이라는 프로그램으로 강좌가 진행이됩니다.
MASM으로도 진행이 가능하지만 MASM보다 이 프로그램이 사용이 쉬우며 직관적이기 때문에 이프로그램을 이용하도록 하겠습니다.

제작사 홈페이지(http://www.emu8086.com)

시리얼: User:ISHAAN,glaitm    Key:27R3VDEFYFX4N0VC3FRTQZX
반드시 학습 용도로만 사용하세요!(그외에는 정품을 구입하시기 바랍니다.)


어셈블리어란?

컴퓨터에서 최하위 언어, 기계어와 1:1로 표현이 가능하고, 사람의 입장에서 다루기 쉽게 각 기계어에 니모닉 기호를 이용, 표현한 언어이다.

(니모닉: 기계어에 1:1로 대응 하는 명령어)


8086 프로세서란?
1978년 인텔에서 개발된 개인용 16비트 프로세서이다.
후에 개인용 프로세서인 펜티엄, 셀러론, 코어2듀오, AMD등 많은 개인용 CPU가 이 구조를 기본으로 확장한 디자인을 가지고 있다.


8086은 명령어 길이가 가변인 CISC(Complex Instruction Set Computer, 복잡한 명령어 셋 컴퓨터)를 기반으로 디자인된 프로세스이다.


쉽게 말해 CISC 기반인 프로세스는 명령어의 길이가 일정치 않고 명령에 따라 차지하는 공간이 틀려진다는 것이다.
예를 들어보자


아래는 CISC 예제이다
주소             객체코드 명령어
0F77:0000    B8790F    MOV AX,0F79
0F77:0003    8ED8        MOV DS,AX
0F77:0005    B409        MOV AH,09

이처럼 명령어의 길이가 때마다 틀리다.

아래는 RISC의 예제다.
주소      명령어                          객체코드
2064       be done                      03 80 00 06
2068       addcc %r1,-4,%r1       82 80 7F FC
2072       addcc %r1,%r2,%r4     88 80 40 02
2076       ld %r4,%r5                  CA 01 00 00
2080       ba loop 10                  10 BF FF FB
2084       addcc %r3,%r5,%r3     86 80 CO 05
이처럼 명령어의 길이가 일정하다

물론 이것 말고 여러가지의 차이점이 있을수 있지만 본 강의에서는 필요치 않기떄문에 설명하지 않도록 하겠다.

posted by ned3y2k

PHP 정규식 사용 예제(미완성, 정리중 원본 출처는 영문 사이트)

Programing 2009.09.02 11:11

목차:
1. 기본 적인 방법
2. 검사 패턴
3. 치환(교체) 패턴
4. 배열 처리

정규식은 어떠한 형식에 맞춰 일치 하는 결과를 가지고 올수 있을것입니다.
예를 들면 "foo"라는 정규식으로 "John plays football" 이라는 문장에서 "foo"를 검출하거나 "foo"를 치환할수 있겠습니다.

정규식에서 어떠한 문자들(특수 문자)은 제각각 의미를 가지고 있습니다.
예를 들면 달러기호($)는 문장의 끝, 캐럿(^)은 문장의 시작을 뜻하며 문장 그자체가 일치 하는 것으로는 "리터날(literals)"이라고 부릅니다.

점(.)은 줄바꿈 또는 이스케이프(\)을 제외한 단일 문자를 의미합니다.
.을 패턴으로 간단 하게 이용하는 예를 들어보겠습니다.
h.t는 hat, hothit, hut, h7t, 기타 비슷한것을 검출 하게 됩니다.
p.c는 pic, pac, 기타 비슷한것을 검출하게 될겁니다.

직선(|) 문자는 논리 동작인 or와 같은 동작을 하며 ()와 같이 사용하여 그룹화 할수도 있습니다.

예를 들어 보겠습니다.
Utah|Idaho|Nevada
UtahIdahoNevada가 포함된 문자열 찾음

(Nant|b)ucket
Nantucket이나 bucket등을 검색


1. 기본적인 방법

정규식 일치
foo "foo"가 있는 것(존재 하는 문자열)
^foo "foo"로 시작하는것
foo$ "foo"로 끝나는것
^foo$ "foo"로 시작하고 끝나는것(일치 한다는 말)
[abc] a, b, c 전부중 하나 포함한 경우
[a-z] 소문자 a에서 z중 하나 포함한 경우
[^A-Z] Any character that is not a uppercase letter
(gif|jpg) gif나 jpg가 들어간 경우
[a-z]+ 한개, 또는 그 이상의 알파벳 소문자가 들어간 경우
[0-9\.\-] Аny number, dot, or minus sign
^[a-zA-Z0-9_]{1,}$ Any word of at least one letter, number or _
([wx])([yz]) wy, wz, xy, or xz
[^A-Za-z0-9] Any symbol (not a number or a letter)
([A-Z]{3}|[0-9]{4}) Matches three letters or four numbers


원본출처:
http://www.webcheatsheet.com/php/regular_expressions.php

posted by ned3y2k

PHP 변수 출력

Programing 2009.08.18 14:14

$abcd="temp";

Echo "abcd".$abcd."aaa";

 

위처럼 .을 붙여 연결해주는 방법도 있었지만 저 방법을 사용하는 경우 차후 코드의 가독성이 상당히 떨어지게 된다.

 

Echo "abcd"{$abcd}"aaa";

이 처럼 대괄호를 사용하여 코드의 가독성을 높일 수 있다.

posted by ned3y2k

유닉스 유틸리티 for Windows

Programing 2009.08.18 11:29
유닉스 기능 없어서 많이 아쉬울때가 있었다....
알아서 사용하길!

원본 주소
http://sourceforge.net/projects/unxutils/files/
posted by ned3y2k

Windows(NTFS) 심볼릭링크, 폴더 정션

Programing 2009.08.18 11:24

유닉스 유틸인 ln 은 cygwin에서 받을수 있다.
http://unxutils.sourceforge.net/

첨부 파일에는 sysinternals의 junction과 cygwin의 ln.exe가 포함되어 있다.

첨부파일

'Programing' 카테고리의 다른 글

PHP 변수 출력  (0) 2009.08.18
유닉스 유틸리티 for Windows  (0) 2009.08.18
Windows(NTFS) 심볼릭링크, 폴더 정션  (0) 2009.08.18
라이브 서비스 API  (0) 2009.08.17
조조전 CD 롬 없는 곳에서 플레이!  (0) 2008.02.17
Windows XP Prefetch Clean And Control  (0) 2007.05.22
posted by ned3y2k

라이브 서비스 API

Programing 2009.08.17 22:26
MS에서 자사 웹 서비스인 라이브 API를 제공한다.
몇가지 샘플도 있고 핫메일을 통한 인증도 있고 여러므로 쓸만한 내용이 있는것 같은데....



http://dev.live.com/

덤으로 이건 MS에서 제공하지 않았던 스카이 드라이브 API이다.
http://skydriveapiclient.codeplex.com/
posted by ned3y2k