My MSN

Click OK to add this content

 
Content Preview: rss
-+Java类文件
546 days ago
一、什么是Java类文件    Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。    虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。   Java类文件是一个基于8-bit字节的二进制流。数据块顺序的、无分割符的、big-endian的形式存储。   二、类文件的内容    Java的类文件中包含了所有Java虚拟机所需要的关于类和接口的信息。所有类文件中的信息都以以下的四种基本类型的存储:    Table 6-1. Class file "primitive types"    u1 a single unsigned byte    u2 two unsigned bytes    u4 four unsigned bytes    u8 eight unsigned bytes    类文件中的主要部分以表6-2的顺序存储:    Table 6-2. Format of a ClassFile Table    Type& #9;Name Count    u4 magic 1    u2 minor_version 1    u2 major_version 1    u2 constant_pool_count 1    cp_info constant_pool constant_pool_count-1    u2 access_flags 1    u2 this_class 1    u2 super_class 1    u2 interfaces_count 1    u2 interfaces interfaces_count    u2 fields_count 1    field_info fields fields_count    u2 methods_count 1    method_info methods methods_count    u2 attributes_count 1    attribute_info attributes ...
-+Java虚拟机
546 days ago
一、什么是Java虚拟机    当你谈到Java虚拟机时,你可能是指:    1、抽象的Java虚拟机规范    2、一个具体的Java虚拟机实现    3、一个运行的Java虚拟机实例   二、Java虚拟机的生命周期    一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。    Java虚拟机总是开始于一个main()方法,这个方法必须是公有、返回void、直接受一个字符串数组。在程序执行时,你必须给Java虚拟机指明这个包换main()方法的类名。    Main()方法是程序的起点,他被执行的线程初始化为程序的初始线程。程序中其他的线程都由他来启动。Java中的线程分为两种:守护线程 (daemon)和普通线程(non-daemon)。守护线程是Java虚拟机自己使用的线程,比如负责垃圾收集的线程就是一个守护线程。当然,你也可 以把自己的程序设置为守护线程。包含Main()方法的初始线程不是守护线程。    只要Java虚拟机中还有普通的线程在执行,Java虚拟机就不会停止。如果有足够的权限,你可以调用exit()方法终止程序。   三、Java虚拟机的体系结构    在Java虚拟机的规范中定义了一系列的子系统、内存区域、数据类型和使用指南。这些组件构成了Java虚拟机的内部结构,他们不仅仅为Java虚拟机的实现提供了清晰的内部结构,更是严格规定了Java虚拟机实现的外部行为。    每一个Java虚拟机都由一个类加载器子系统(class loader subsystem),负责加载程序中的类型(类和接口),并赋予唯一的名字。每一个Java虚拟机都有一个执行引擎(execution engine)负责执行被加载类中包含的指令。    程序的执行需要一定的内存空间,如字节码、被加载类的其他额外信息、程序中的对象、方法的参数、返回值、本地变量、处理的中间变量等等。Java虚拟机将 这些信息统统保存在数据区(data areas)中。虽然每个Java虚拟机的实现中都包含数据区,但是Java虚拟机规范对数据区的规定却非常的抽象。许多结构上的细节部分都留给了 ...
-+使用platformRequest()自动更新MIDlet套件
582 days ago
MIDP 2.0 提供了一系列的新特性,其中一个就是调用平台的应用。例如可以调用 WAP 浏览器访问特定的网址,也可以调用电话应用程序呼叫某个号码。上述两个功能都可以使用 MIDlet 类的 platformRequest() 方法实现, platformRequest() 接受一个 String 类型的参数 url ,如果是呼叫电话号码则 url 的形式为 tel:13810011001 。如果是调用 WAP 浏览器则 url 的形式类似于 http://www.j2medev.com/wap.wml 。 本文介绍如何使用 platformRequest() 方法自动更新 MIDlet 套件,在 MIDP 的文档中说明。如果 url 的形式为一个指定的 MIDlet 套件,可以是 JAD 文件,也可以是 jar 文件。例如 http://www.j2medev.com/helloworld.jad 。这个时候,此请求会被认为是安装 MIDlet 套件来对待,这样用户可以控制安装的过程,就像我们直接从 WAP 浏览器输入地址安装 MIDlet 套件一样。如果请求的 MIDlet 套件是当前正在运行的应用程序的升级版,则当前的程序需要先退出,然后执行更新操作。 如果想让发布的 MIDlet 套件具备自动升级的功能,那么需要提供一个服务器端程序,服务器端程序能够检测是不是有更新版本的应用程序下载,并且可以将这个结果告诉给客户端。通常这样的服务器端可以实现为 Web 应用程序,用 servlet 和 MIDlet 通信。当用户运行 MIDlet 的时候, MIDlet 首先连接指定的服务器获取信息,如果没有新版软件则正常运行,如果有新版本的软件则是用 platformRequest ()方法请求安装应用程序。                      if (update == NEED_UPDATE) {                             try {                                    ...
-+[转]Java程序员的推荐阅读书籍
585 days ago
Java Eye ( http://www.javaeye.com ) 范凯( http://robbin.javaeye.com ) 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术 书籍 中挑选出来一些,按照 学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java 程序员 们。 一、Java编程入门类 对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。 1、《Java编程思想》 在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。 2、《Agile Java》中文版 这本书是出版社送给我的,我一拿到就束之高阁,放在书柜一页都没有翻过,但是前两天整理书柜的时候,拿出来一翻,竟然发现这绝对是一本好书!这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新,以JDK5.0的语法为基础讲解,要学习JDK5.0的新语法也不错。还有这本书对于内容取舍也非常得当,Java语言毕竟类库庞大,可以讲的内容太多,这本书选择的内容以及内容的多寡都很得当,可以让你以最少的时间掌握Java最重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得的好书。 虽然作者自己把这本书定位在入门级别,但我不确定这本书用来入门是不是稍微深了点,我自己也准备有空的时候翻翻这本书,学习学习。 二、Java编程进阶类 打下一个良好的Java基础,还需要更多的实践经验积累,我想没有什么捷径。有两本书值得你在编程生涯的这个阶段阅读,培养良好的编程 习惯 ...
-+郝瑞——Java学习之路:不走弯路,就是捷径(转载)
585 days ago
0.引言 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。梦想像《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。 "不走弯路,就是捷径",佛经说的不无道理。 1.如何学习程序设计? Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也一样管用。有编程高手认为,Java也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。 1.1 培养兴趣 兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。 1.2 慎选程序设计语言 男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。 如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。 ...
© 2009 MicrosoftMicrosoft