一、javaEEJavaSEJavaME用的同一个jar包吗?
javaEE JavaSE javaME 用的JDK是同一个,开发j2SE工程的话只要有JDK就可以了,开发J2EE工程和J2ME工程除了需要JDK还要有他们各自的一些jar包协助开发。
jdk-6u5-windows-i586-p.exe和jdk-6u20-windows-i586-p.exe都是JDK6.0版本,只是这个6.0版本还有很多小的版本,6u20比6u5的版本高一些。
他们只是一种java在不同领域上的应用,都需要用到SE的,SE是基础,例如EE就是与web有关的开发jar包,servlet等。而ME就是做与嵌入式系统有关的jar包。
* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise
Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供
Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro
Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
开发环境,推荐Eclipse,NetBeans,这两个IDE可以挂接对应的插件,进行开发。还有一点,那就是这三个应用,se,标准应用,以学习为主,由于界面,开发成本,速度等问题,很少用来做程序,但不是说,他不能做程序,Eclipse,NetBeans,都是javase写起来的。Me,移动设备应用,对于一些中高端应用还好了!以前用他做过手机游戏,呵呵呵!EE,企业级解决方案,开发套件全部免费,可控性好,安全性高,乃是当前B2B的规范。再者,这三个应用,都需要虚拟机的支持。
二、Java基础类库简介及lang包介绍
一、常用的基础类库:11个jar(Java Archive,Java归档)包
作为java语言使用者,我们可以感受到java语言带来的优势(平台无关、面向对象、多线程、高效易扩展等),而且它有很多已经实现的类库可以供我们直接使用,这些类库都是以jar包的形式提供的,也可以成为java API,它为编程者实现了各种常用操作的方法,为程序员编写java程序代码带来了许多方便。
作为初学者,我觉得熟练掌握和应用java基础类库是很有必要的。因此,总结了一些自己在初学java时的一些基础类知识点。Java 2标准所提供的主要API如下表所示。
包名 |
内容概述 |
Java.applet |
提供创建applet小程序所需要的类 |
Java.awt |
包含用于创建用户界面和绘制图形图像的所有类 |
Java.io |
提供与输入输出相关的类 |
Java.beans |
包含与开发javaBeans相关的类 |
Java.lang |
提供java语言程序设计的基础类 |
Java.net |
提供实现网络操作相关的类 |
Java.nio |
为输入输出提供缓冲区的类 |
Java.text |
提供处理文本、日期、数字和消息的类和接口 |
Java.util |
提供处理日期、时间、随机数生成等各种使用工具的类 |
Javax.net |
提供用于网络应用程序的类、网络应用扩展类 |
Java.swing |
提供一组与AWT功能相同的纯java的组件类 |
二、java.lang包
Java.lang包是java语言体系中其他所有类库的基础,已经内嵌到java虚拟机中,而且以对象的形式创建好了,所以,我们在使用java.lang包时不需要再使用import将其导入,可以直接使用java.lang包中的所有类以及直接引用某个类中的敞亮、变量和操作方法。
类名 |
功能 |
Boolean |
封装了boolean类型的值以及一些操作该类型的方法 |
Byte |
封装了byte类型的值以及一些操作该类型的方法 |
Character |
封装了char类型的值以及一些操作该类型的方法 |
Double |
封装了double类型的值以及一些操作该类型的方法 |
Float |
封装了float类型的值以及一些操作该类型的方法 |
Integer |
封装了int类型的值以及一些操作该类型的方法 |
Long |
封装了long类型的值以及一些操作该类型的方法 |
Short |
封装了short类型的值以及一些操作该类型的方法 |
String |
封装了与字符串类型相关的操作方法 |
Void |
表示对Java中的void关键字的声明,这个类不可以实例 |
Class |
用于描述正在运行的java应用程序中的类和接口的状态 |
ClassLoader |
用于加载类的对象 |
Enum |
用于定义枚举类型 |
Math |
用于实现基本数学运算 |
Number |
抽象类,是基本数据类型类的父类 |
Object |
是所有java类的根类 |
Package |
封装了有关java包的实现和规范的版本信息 |
Runtime |
Runtime类对象使java应用程序与其运行环境相连接 |
StrictMath |
用于实现基本的数学运算 |
StringBuffer |
用于可变字符串的操作 |
StringBuilder |
创建可变的字符串对象 |
System |
封装了一些与java虚拟机系统相关的方法 |
Thread |
创建和控制线程 |
ThreadGroup |
创建和控制线程组 |
Throwable |
定义了java中的所有错误或者异常的父类 |
Process |
定义一个进程process对象,通过Runtime类中的exec方法启动该进程对象 |
定义在java.lang包中的主要接口及其相应的功能说明如下表:
接口 |
功能 |
Appendable |
用于追加字符串 |
Cloneable |
用于复制类对象 |
Runnable |
用于实现类对象具有线程功能 |
Comparable |
用于类对象的排序 |
2.Object类说明
Object类是java体系中所有类的父类,即在java语言开发的程序中所创建的类对象都是由object类派生出来的,都实现或者继承了object类中的方法。
Jar包中封装了一些常量、变量以及方法,当一个类对象被创建后,可以直接引用对象中的常量和变量,调用对象中的方法时要明确方法的输入参数,并为方法提供符合参数类型的数据和返回值;还要知道该方法在调用时是否会产生异常,如果方法可能会产生异常,需要使用try-catch语句结构来捕获和处理异常,或者使用java关键字throws将可能产生的异常抛出。
3.Java基本数据类型
Java语言中规定的基本数据类型包括boolean、byte、character、double、float、integer、long、short等8个。通过这些可以声明基本数据类型的常量、变量。但是因为java是纯面向对象的程序设计语言,为了实现面向对象,java.lang中给这些基本数据类型定义了对应的类(封装了基本数据类型的变量类型、与变量相关的常量及相关的操作方法),这样就能够在使用这些基本类型的值或者变量时将其当做对象处理。
在java.lang包中还定义了Number抽象数据类型,专门针对纯数字对象的操作,在基本数据类型中针对纯数字对象的操作包括整数和浮点类型。由此可知,Number类是整型和浮点类型的直接父类,在number类中定义了适用于不同数据类型纯数字的操作方法和抽象方法。
(说明:character类封装了char类型的数值以及相关的操作方法,其字符全部采用Unicode标准编码)
4.字符串类String&StringBuffer
在java.lang中还提供了处理字符串的String类,String类用于处理“不可变”的字符串;相对地,还提供了StringBuffer类用于处理“可变”字符串。Stirng类和StringBuffer类都被声明为final类型,因此不能将其当做父类再被继承使用了。
(1)String类
String类用于创建字符串对象,其值在创建之后被当做常量,String类里面还封装了字符串类型的数值以及相关的操作方法。String类中的所有操作方法都是针对已经创建的String对象而言的,而String对象是通过String类的构造函数创建的。
(2)StringBuffer类
StringBuffer类是字符串缓冲区类,用于创建长度可变的字符串对象,这里的“长度可变”是指通过某些方法的调用可以改变字符串的长度和内容,比如通过在原字符串的基础上追加新的字符串序列,或者在原字符串的某个位置上插入新的字符序列等构成新的字符串对象。
StringBuffer类创建字符串对象是基于开辟新的缓冲区实现的,在缓冲区中存放字符串的字符序列,因为缓冲区是有一定容量的,所以当字符串长度改变的之后,如果超过了缓冲区的容量时,即发生缓冲区溢出时,java运行系统会自行扩大StringBuffer对象创建的缓冲区容量,保证了对字符串操作的安全性。
5.Math类
Math类中封装了各种数据类型的算术操作,即包含了指数、对数、平方根、三角函数等操作。在math类中其所有的常量和方法都被定义为静态的,因此所有的成员都可以直接被引用。
6.Runtime类
Runtime类中封装了一些和java虚拟机相关的方法,在java虚拟机启动每个java应用程序时都会创建一个runtime对象,它会保证java应用程序和其运行环境的连接,runtime对象创建后,在java应用程序中就可以直接调用runtime类中定义的方法(如:获取当前程序的运行信息、退出程序运行、关闭java虚拟机等操作)。
7.System类
System类封装了一些和计算机输入/输出系统相关的常量,以及与java虚拟机相关的操作方法。Java虚拟机启动之后就会创建system对象,在java应用程序中无法创建system对象。System类中所有的常量和方法都被定义为静态的,因此,在java应用程序中可以直接调用system类里面定义的常量和方法。
8.小结
关于java语言提供的可用类库有很多,给程序员带来很多的便捷,在具体使用时需要查看帮助文档和说明,确定功能。要重点关注的还是某个操作方法的输入参数、返回值、异常等。