|
阅读:4016回复:10
java helloworld
现在学习java的同学越来越多了,其实这是小圈子现象,在大环境下就说中国就火了N久了,就更别说国外了(主要指美国),一般我们都落后人家好今年。
学校也开了课,我们上的时候是选修,老师对我漠不关心(不知道对其他人怎么样),自己也不怎么上进,没怎么学,到毕业设计的时候才开始学习java,所以学习的时间不是很长。 我在这里也谈不上交流,因为我说的都是非常基础的东西,况且很多都是我自己的理解,绝对绝有不对的地方,希望大家指出来,帮我的忙。 当你真正进入java领域的时候,你才能真正感受她的强大(书上怎么吹我们还是糊里糊涂的)。有人说系统支持选择C++,企业应用选择java,所以在选择一门程序设计语言以前,你要知道自己要做什么。得承认java在做图形用户界面方面可以说很烂(即使在java2中增加了swing类包也是这样,这也是我做毕业设计的体会)。 我上面所说的和下面要说的都是我从其他地方“拿”来的,没有一点自己的东西,如果有错误的地方不是我的记忆有问题就是我的理解有问题,希望大家用批判的眼光对待。 -------------------- 好好吃饭,天天睡觉 努力赚钱,娶个老婆 |
|
|
|
1C#
发布于:2004-08-04 17:40
Re:java helloworld
一开始我们不准备介绍java语言。没一本java书第一页开始就要介绍java的面向对象、安全、多线程等等。然后才是helloworld程序,我觉得如果我们一开始就能写一个helloworld通过相关处理然后运行能在屏幕上打印出 helloworld,这时候我们无疑有一种成就感。所以我准备首先讲 helloworld.
准备工具 jdk(java development kit) 当前版本是1.4...你可以到sun 去随便下。选择win版本的(大多说人都用windows 8)。这个都很简单。 解压缩后安装也很简单。 安装后有一个j2sdk1.4...目录,该目录下面有5个文件夹和其他一些文件。 bin 文件夹包含sun提供的java开发的一些工具,下面我们会详细介绍。 demo 不用说了8。 include java编程中用到c才有用(待考证) jre java run envirement java运行环境,我们在讲java程序运行机制的时候再说。 lib jdk提供的类库。以后再说。 同级目录下有个src.zip是上面 lib 中类包的源文件(.java文件)。 安装好了就可以编写我们自己的java程序了。 --------每种程序设计语言都有自己的helloworld 我学习每一种程序设计语言的第一个程序都是helloworld。 用记事本新建一个文本写入下面的代码。 //helloWorld.java import java.io.*; //public class helloWorld class helloWorld { public static void main(String[] args) { System.out.println("HelloWorld!"); } } 另存为 helloWorld.java 到 j2sdk1.4....的 bin 目录下。 启动msdos(开始--运行--cmd--enter) 转到 j2sdk1.4...的bin 目录。 >dir 一下,除了看到一些 *.exe外,我们应该能看到 helloWorld.java(注意,不是helloWorld.java.txt,后缀一定是java)。 >javac helloWorld.java //如果程序代码写的没问题,会经过一段时间(根据代码不同能不同)回到 >,就是没有打印输出。 >java helloWorld //顺利的话,我们就能看到 helloWorld 了 -------------------- 好好吃饭,天天睡觉 努力赚钱,娶个老婆 [ 2004-08-04 17:42:39 southeast 修改 ] [ 2004-08-04 17:44:22 southeast 修改 ] |
|
|
|
2C#
发布于:2004-08-04 18:06
Re:java helloworld
我们来研究一下这段代码。
1 //helloWorld.java 2 import java.io.*; 3 4 //public class helloWorld 5 class helloWorld 6 { 7 public static void main(String[] args) 8 { 9 System.out.println("HelloWorld!"); 10 } 11 } 第一行前面有两个//表示这是个注释,java的注释和其他语言区别很小 第二行有一个 import ,和 c 里面的 include 功能差不多,先不详细介绍。java.io.* 表示的是引入的类包,这些类包都是在前面那个lib目录下的一个 jar文件里的,自己可以去看看,顺便就清楚了, java-io-*之间的关系了。 第四行和第五行都能用(注册其中一行我们同样能使用)。java里面的static方法、变量在整个程序中只有一份,java应用程序中main方法只有一个(通过前面的static修饰符就能看出来),一个java程序中只有一个类可以是 public(哎呀讲到类了,麻烦了),如果java程序中有一个类定义为public,则该.java文件的名字必须和这个public类的类名一样。从这里也可以看出一个程序中只能有一个public类(如果有a b 两个类都是public 类,那么我们究竟是a.java呢还是b.java呢?) 第五行定义了一个类。关键字class 定义了一个类,类的名字叫 helloWorld 。java号称是面向对象的程序设计语言,这些所有的对象都是类的实例,我们要使用对象,首先就要定义类。java程序都是类的集合。在类里面定义变量方法以及类之间的联系。 第9行打印一个字符串“HelloWorld!”,System是系统类,out是个对象,println是out的方法。 饿了,走人。很幼稚啊,不过希望大家支持我写下去。砖头来了,不得不走了。 -------------------- 好好吃饭,天天睡觉 努力赚钱,娶个老婆 |
|
|
|
3C#
发布于:2004-08-04 19:24
Re:java helloworld
呵呵!我在同时学两们语言.一门c++一门java.不知可行否?因为我不知道各种语言的优缺点.所以^瞎学!
--------------------
别拿你的脾气,挑战我的个性
|
|
|
|
4C#
发布于:2004-08-04 22:19
Re:java helloworld
嘿嘿!继续继续.我举双手投票!
--------------------
别拿你的脾气,挑战我的个性
|
|
|
|
5C#
发布于:2004-08-05 09:55
Re:java helloworld
本来今天想聊path classpath的,昨天回去看了一下类加载器,发现好多有趣的东西,现在给大家聊聊。
我们知道java程序是运行在虚拟机上的,jAVA虚拟机包含7个部分:method area stack area 垃圾回收 常量池 类加载器 什么引擎 记不清了,以后有机会聊虚拟机的时候补上,今天主要说类加载器。 其实我们下面介绍的是java程序运行的原理。 我们编写完一个java程序编译通过生成一个.class文件,然后用 java *.class运行这个程序。这里用到了 java.exe这个程序(在bin目录下),java.exe是java程序的解释程序,负责找到jre,然后把我们要运行的类传给虚拟机,接下来就是虚拟机的工作,java.exe就没什么工作了。 当虚拟机要运行一个程序的时候首先要通过类加载器把“原料”加载到内存当中去,首先是把一些基本的类加载进取(叫预置类吧),因为我们运行java程序的时候经常要用到这些类,所以虚拟机事先就把这些类加载到内存中去以提高执行效率。这些加载的类主要是lib目录下 的rt.jar包里的。然后才是加载我们的应用程序使用到的类。 我们可以通过下面的命令查看。 java -verbose:class helloWorld helloWorld类为上面我们写的程序编译后得到的类。 屏幕经过几秒钟的滚动后会停止,我们可以看到类加载器是怎样 load 类的,在接近结束的地方我们可以看到 load 了 helloWorld 并且接着打印了 HelloWorld 。 我们说类加载器只加载程序运行需要用到的类。如果程序代码如下: class A {} public class B {} 当我们存为 B.java 然后javac B.java 接着执行 java -verbose:class B的时候我们发现 load 了B没有load A,就是这个意思。 ----虚拟机中有多个类加载器,一个加载器可以加载多个类,一个类可以由多个不同的类加载器加载,我们可以自己定义类加载器,用自己定义的类加载器加载我们自己想要加载得类。 第一个使用到的类加载器是 bootstrap classloader,这个加载器是用C写的(以后介绍的地都是java些的),我们想要打印这个类加载器的时候会打印出 null,并不是说不需要类加载器,仅仅因为它是C写的(我就知道这么多)。还有两个类加载器ExtClassLoader and AppClassLoader ……再说了,如果有兴趣我再写。 -------------------- 好好吃饭,天天睡觉 努力赚钱,娶个老婆 |
|
|
|
6C#
发布于:2004-08-06 09:31
Re:java helloworld
嘿嘿!继续继续!当然有兴趣啦!加我qq吧!280960559你有没有用java开发简单应用程序的经验?给个案例让我也练练手脚怎样?
--------------------
别拿你的脾气,挑战我的个性
|
|
|
|
7C#
发布于:2004-08-06 13:20
Re:java helloworld
顶java
--------------------
[email protected] |
|
|
8C#
发布于:2004-08-07 17:10
Re:java helloworld
精彩~~~
不过偶还不知道什么是java虚拟机呢 就是, 虚拟机为啥叫“虚拟机”, 是个啥东东[em086] -------------------- A: B在撒谎 B: A说得对 孤独的人是可耻的 所以,我是可耻的 |
|
|
|
9C#
发布于:2004-08-07 18:09
Re:java helloworld
这两天没时间,也没条件,也没心情。过两天再写吧。
虚拟机的内容特别多,你把虚拟机看成一个cpu就成了,它也就寄存器、程序计数器、堆、栈等的概念。正如前面所说,当执行一个 java.exe程序时,首先找到一个jre,找到jre后才运行jvm.exe(不确定了,应该是),然后jvm.exe调用jvm.dll,这才是真正的虚拟机。 虚拟机启动后首先执行一个APPClassLoader类加载器把当前运行的类(如果你是 java A **A is a class** 那么就先加载A),然后才根据具体情况加载其它的类(这又涉及到委托代理的问题,问题多阿,哎……) 不说这些了,顺便说一下,今天看j2me了,j2se里可以自己定义类加在器,而j2me里不能自定义类加载器,大家区别对待就是了。 我喜欢砖头,没有砖头我永远的进步不了啊,先谢谢哪里仍砖头的朋友:) -------------------- 好好吃饭,天天睡觉 努力赚钱,娶个老婆 |
|
|