티스토리 툴바

   개발자 로니강(Ronie.Kang)  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
'Programming/Java'에 해당하는 글(4)
2009/10/07   [java]java 기본자료형
2009/10/05   [java] java Hello World (6)
2008/11/29   NetBeans을 이용하여 Hello World작성
2008/11/27   Java 개발 환경 구축하기 (2)


[java]java 기본자료형
논리형 자료형 : boolean
특징 : 형변환 블가

정수형 자료형 :
1. byte : 1byte (-128 ~ 127)
2. short : 2byte ( -32768 ~ 32767)
3. char : 2byte ( 0 ~ 65535 )
4. int : 4byte ( -2147483648 ~ 2147483647 )
5 long : 8byte (-922경 ~ 922경)

실수형 자료형
1. float : 4byte
2. double : 8byte



java에서 char이 유니코드를 저장하기 위해 16bit였다는걸 처음 알았음




char a = 32768;
short b = a;

char와 short의 type을 비교하시면 문제가 있는걸 알 수 있습니다.



casting 과 Promotion의 차이

casting : 강제
Promotion : 자동으로 casting
크리에이티브 커먼즈 라이선스
Creative Commons License
Tag : It, Java, 자료형

name    password    homepage
 hidden


[java] java Hello World
JDK를 설치 하고, 처음으로 간단하게 작성해본 code

Test.java
public class Test {
    public static void main(String[] ar) {
        System.out.println("hello world");
    }
}


*  Java Code에서 첫 작성한 Class와 File 이름이 같아야 한다는 걸 알았다.


javac Test.java로 Build를 하면 output으로 Test.class가 생성이 되는데
이 파일을 Hex로 열어보면 아래와 같은 값들로 이루어진다.

사용자 삽입 이미지

java class File을 간단하게 분석 해보자
(본인도 처음 java code을 build 해보고 class 파일을 열어봄)

가장먼저 보이는건 Code 상에서 출력하도록 한 hello world가 보인다.
아무래도 *.class 파일은 일정한 File Format이 있는 것 처럼 보인다.
(아시는 분 있으면 간단하게 설명 부탁 드릴께요.!!! Plz)
Source File에 대한 정보로 파일 이름이 보인다.

아래 같은것들은 왠지 Test.java 파일에서 사용하는 class에 대한 경로 같기도 하다
(확인을 위해 jdk가 설치된 폴더를 찾아 보았지만 못 찾겠당 ㅜㅜ
java/lang/Object
java/lang/System out
Ljava/io/printStream;
java/io/PrintStream... println
(Ljava/lang/String;)V



실험 1.
Hex File에서 문자열을 수정해 보았다.
hello world --> Hello World

결과

java Test : Hello World로 Consol에 출력이 된다.



실험 2.
문자열의 길이를 수정하였다.
hello world --> hello world!!!!!

결과

C:\>java Test
Exception in thread "main" java.lang.ClassFormatError: Unknown constant tag 33 i
n class file Test
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Test.  Program will exit.

고찰1 :
이로써 javac로 빌드시에 string에 대해서는  static하게 길이를 계산해두는 것이라고 생각됨
그럼 간단하게 string length를 기록한 부분을 수정해주고? 다시 hex를 하게되면
올바른 결과가 보이지 않을까?

실험 3
위 그림에서 붉은색 네모 부분에 대해서 Edit를 하여 문자열을 눌려 보았다.

ASCII
hello world --> hello worlda

HEX
0B --> OC

결과: 정상적으로 출력이 되었다.
C:\>java Test
hello worlda

* 아하 javac를 통해 build시 문자열의 길이는 java class에 특정 부분에 쓰여지는구나!!!


의문 1 :
그럼 문자열이 두개 일경우에는 어떻게 될까?

가설 :
문자열에 대한 카운팅이 있을까?

결과: 없는 것 같다. ( 시간이 없어서 확인 못 함 )

우선 첫 시간으로 이정도만 확인해봄


참고하고 있는 자료
 * 열혈강의 동영상 강좌
 * 책도 없음 ;;;;; -0-



연구해볼 것
java class file format

크리에이티브 커먼즈 라이선스
Creative Commons License
Tag : It, Java, The class File Format, 자바
Commented by 윤경록 at 2009/10/06 09:20  r x
완벽 매뉴얼이 있네.. http://jakarta.apache.org/bcel/manual.html 근데 왠 자바?
Replied by Ronie.Kang at 2009/10/06 10:12 x
MHP에서는 java를 다루기 때문이죠 ~ !

세컨 언어 대한 학습입니다. ^^
Commented by 윤경록 at 2009/10/07 00:33  r x
그렇다면 자바 하지마. MHP가 자바를 위해 만들어져 있어도 자바를 알 필요는 없어. 자바를 하려면 그저 언어에 대한 흥미로만 해.
Replied by Ronie.Kang at 2009/10/07 10:11 x
Yes Sir ~ !
Commented by 윤경록 at 2010/03/14 16:49  r x
나도 객체지향이라는 프로그래밍 방법론에 흠뻑 빠져보기 위해 자바를 시작했다!
Commented by sumin at 2011/12/29 11:21  r x
java/lang/Object
java/lang/System out
Ljava/io/printStream;
java/io/PrintStream... println

rt.jar 안에 들어가 있는 애들 아닌가요..?

name    password    homepage
 hidden


NetBeans을 이용하여 Hello World작성

1. create new project in netbeans

사용자 삽입 이미지



2. Select Project
사용자 삽입 이미지



3. Name and Location
사용자 삽입 이미지

간단한 콘솔 어플리 케이션이 작성이 되었습니다.

코드를 간단하게 source code를 살펴보면 아래와 같은 형태로 되어져 있습니다.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package helloworld;

/**
 *
 * @author roniek
 */
public class HelloWorld
{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        System.out.println( "Hello World" );
    }
}


java 독학을 위해 NetBeans를 통해 처음 작성해본 Java Console Application입니다.
이제 할 일들은 java와 c++의 다른 점에 익숙해져야 한다는 것입니다.
native와 java를 모두 다룰줄 안다면 정말 즐거울 것 같습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Tag : Hello World, java독학, netbeans

name    password    homepage
 hidden


Java 개발 환경 구축하기
감기가 걸린 오늘 보일러를 크게 틀어놓고, Java 개발환경을 설치 해보고 있다.
Java를 이용해서 이런 저런 프로그램을 해보면 재미 있겠다 생각이 들었다.
특별한 이유는 없다. 지적욕구랄까?



1. Java SDK Download : http://java.sun.com/javase/downloads/index.jsp
    - Java SE Development Kit (JDK) 6 Update xx :를 다운 후 설치
    - Java SE Runtime Environment (JRE) 6 Update xx :를 다운후 설치
    - tools
      + JDK 6 Update 10 with NetBeans (IDE) tool

2. 환경 변수 등록 
    - path에 맨끝에 %JAVA_HOME%\bin 등록
    - JAVA_HOME - c:\program Files\java\jdk1.6.0_10(jdk 버젼에 따라 달라짐)
    - CLASSPATH - ,;%JAVA_HOME%lib\tools.jar
 


크리에이티브 커먼즈 라이선스
Creative Commons License
Tag : It, Java, jdk, 개발환경
Commented by petite at 2008/11/27 23:30  r x
늘상 하던 일인데 한달 놀았더니
왤케 또 반가운가요 (이건 직업병입죠...네..ㅠ.ㅠ)
ㅎㅎㅎㅎ
다다음주면 또 이짓부터 시작이겠군요 ^^
(같은 직업을 갖고 계신듯해서 반가워서 아는체 합니다 ^^;;)
Replied by Ronie.Kang at 2008/11/28 08:09 x
저희 회사는 한달 사이에 직원 감원이 있었습니다.
그래서 한달 놀았다는 말에 왠지 덜컹..........

petite님과 같은 직종인듯 합니다.^^
저도 반가워요. :)

name    password    homepage
 hidden


BLOG main image
개발자 로니의 스토리.... 삽질, 날샘, 야근, 개발, 자취생, 일상, 프로그래밍 개발, 등등등....
 Notice
 Category
분류 전체보기 (191)
매일매일갱생 (76)
아이폰 (0)
Books (3)
Programming (86)
BroadCast (12)
Personal Projects (6)
유용한 프로그램 (0)
비공개 (0)
 TAGS
빵꾸똥꾸 SIP 아이폰 C++ ubuntu itunes 동기화 iTunes Porter-Duff 토렌토 바보짓 VirtualBox iPhone M480 조중동 torrent C 인터넷전화 메모리 누수 벨소리 변경 myLG070 malloc 아이튠즈 MB 용자 가카 강남역 It arduino uno 스마트폰 sip 해킹 Linux 미라지 Memory Leak 벨소리 iphone 개발환경 directfb warning usb 인식 국내 토렌토 실수
 Calendar
«   2012/05   »
    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    
 Recent Entries
Finding Memory Leaks Using t.. (3)
Program Arduino with AVR-GCC
새로운 장난감....
ATMEGA328P-PU
Arduino uno 간단한 보드 설명.
퇴근길 강남역에서 만난 도인?.. (1)
xper 5월 정기모임이 일정 (1)
국내 토렌토 주소 모음
미라지(SKT) M480 벨소리 변경..
myLG070 sip 추출하기 (3)
warning: braces around scala..
 Recent Comments
This posting on the..
MBA finance dissertation - 13:50
very nice blog and..
Management Thesis topic - 02:01
Here are some recom..
america essay paper - 04/20
Students’ life tim..
technology essays - 04/20
The texts about thi..
buy essay - 04/17
Some people like to..
buy essay - 04/17
The the web is floo..
buy thesis - 04/14
That is not really..
custom thesis - 04/14
The best thesis can..
custom dissertation - 04/12
The thesis service..
custom dissertation - 04/12
There’re lots of w..
writer job - 04/11
 Recent Trackbacks
COFDM 방식에서의 Bi..
Steve Yoon's log
다중포인터 읽기
.
 Archive
2011/09
2010/06
2010/05
2010/04
2010/02
2010/01
2009/12
2009/11
2009/10
2009/09
 Link Site
zextor
괴짜 프로그래머의 일상사~@@
Gag & Peace, and more..
Kazakhstan Almaty.......
Min-A
Sadgarret
Steve Yoon's log
가슴 뛰는 삶을 살아라
오스틴 파워
GUI sin
melanie parker_Lady
제레미의 TV 2.0 이야기..
 Visitor Statistics
Total : 89,279
Today : 1
Yesterday : 63
rss