分类
Java

使用Java类与对象

一、使用键盘输入:
[java]import java.util.Scanner;
public class LuckTest
{
public static void main(String[] args){
System.out.println("祝你好运!^_^");
System.out.println("请输入你的名字");
Scanner input= new Scanner(System.in);
int n1=(int)((Math.random()*6))+1;
int n2=(int)((Math.random()*6))+1;
System.out.println(input.next()+"你好!你掷出的点数是:"+n1+"和"+n2);
}
}[/java]

二、使用类和对象:

Dice.java:
[java]public class Dice
{
byte dianShu;
public byte play(){
dianShu=(byte)(Math.random()*6+1);
return dianShu;
}
}[/java]

DiceTest.java:
[java]import java.util.Scanner;
public class DiceTest
{
public static void main(String[] args){
System.out.println("祝你好运!^_^");
System.out.println("请输入你的名字");
Scanner input= new Scanner(System.in);
Dice dice1,dice2;
byte n1,n2;
dice1=new Dice();
dice2=new Dice();
n1=dice1.play();
n2=dice2.play();
System.out.println(input.next()+"你好!你掷出的点数是:"+n1+"和"+n2);
}
}[/java]

分类
Java

编写简单 Java 程序

一、打开记事本,输入如下代码:

[code lang=”java”]
public class LuckTest
{
public static void main(String[] args){
System.out.println("祝你好运!^_^");
}
}
[/code]

保存为: LuckTest.java.

分类
Java

Java 的发展历程

1990年,在SUN计算机公司中,由Patrick Naughton,MikeSheridan及James Gosling领导的小组Green Team,开始研发一种可控制家用电子产品的新型计算机软件技术,并希望能够研究出一种可以跨平台的系统。起先他们试着从C++的功能做修改,但一直无法克服编译器的问题,所以决定自行开发新的程序语言——Oak。 这里的Oak已经具备安全性、网络通信、面向对象、垃圾回收、多线程等特性。后来发现Oak已经被其他公司注册,改名为Java。

1992年,Green项目组升格为FirstPerson公司,但与Time-Warmer有线电视公司合作失败后,计划取消。此时Web开始发展,Green项目组尝试把Java应用到Web上。

1993年,Web开始流行,Java一炮而红。

1994年。Gosling用Java开发了一个实时性高、可靠、安全、有交互功能的新型Web浏览器,它不依赖于任何硬件平台和软件平台。这种浏览器名称为HotJava。

1995年,Sun正式发布Java和HotJava产品,Java首次公开亮相。

1995年10月,Netscape公司与Java合作,开始在Navigator上支持Java

1995年12月,IE加入Java行列

1996年1月23日Sun Microsystems发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译Java程序的编译器(即javac)。在JDK1.0时代,JDK除了AWT(一种用于开发图形用户界 面的API)外,其它的库并不完整。计算机产业的各大公司(包括IBM,Apple,DEC,Adobe,Silicon Graphic,HP,Oracle,Toshiba和Microsoft等)相继从Sun公司购买了Java技术许可证,开发相应的产品。10个最主要的操作系统供应商申明将在其产品中支持Java技术。

1997年2月18日发布了JDK1.1。

1998-1999年,1998年,JDK1.1的下载量超过200万次,JDK1.2版本发布(从这个版本开始的Java技术都称为Java 2)。,同时JFC/Swing技术发布,JFC/Swing被下载50万次。Java2不仅兼容智能卡和小型消费类设备,还兼容于大型的服务器系统,它使软件开发商、服务提供商和设备提供商更加容易抢占市场机遇。这一开发工具极大的简化了编程人员编制企业级Web应用的工作。同时Sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和J2ME。表明了Java开始向企业,桌面应用,和移动设备应用3大领域挺进。

2000年,JDK1.3 发布。

2001年,Nokia公司宣布到2003年将出售1亿部支持Java的手机,J2EE1.3发布。

2002年,JDK1.4 发布。

2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0

2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME

2006年12月,SUN公司发布JRE6.0。

2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。

2010年11月,由于甲骨文对于Java社区的不友善,因此Apache扬言将退出JCP。

2011年7月28日,甲骨文发布java7.0的正式版。

分类
Java

Java开发和运行环境的搭建

JDK是Java Development Kit的缩写,即Java开发工具集。JDK是整个Java的核心,包括了Java运行环境(JRE)、Java开发工具和Java基础类库。

JRE是Java Runtime Environment的缩写,即Java运行时环境。Java程序运行时必需要JRE的支持。

Java的平台版本:

Java分为J2SE、J2EE和J2ME三个不同的平台版本,即标准版(Java 2 Platform, Standard Edition)、企业版(Java 2 Platform, Enterprise Edition)和微型版(Java 2 Platform, Micro Edition)。从Java 1.5(或者Java 5.0)开始,它们被改称为Java SE、Java EE和Java ME。

各平台版本之间的差别在于适用范围不同:
标准版平台(Java SE)允许开发和部署在桌面、服务器、嵌入式和实时环境中使用的Java应用程序。另外,Java SE包含了支持实现Java Web服务的类库,因此标准版是企业版的基础。

企业版平台(Java EE)帮助开发者开发和部署Java Web应用。企业版提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务的体系结构(Service-Oriented Architecture, SOA)和Web 2.0 应用程序。

而微型版平台(Java ME)主要用于移动设备和嵌入式设备,如手机、PDA、电视机顶盒等等。微型版包括灵活的用户界面、健壮的安全模型、许多内置的网络协议、以及对可动态下载的在线和离线应用的支持。基于Java ME规范的应用程序与普通Java程序一样,只需编译一次,即可在许多设备上运行。

Java的版本:
1995年5月23日,Java语言诞生
1996年1月,JDK 1.0发布
1997年2月18日,JDK 1.1发布
1998年12月4日,J2SE 1.2发布,1.2版及其之后的版本也被称为Java 2
1998年12月8日,Java 2企业版发布
2000年5月8日,J2SE 1.3发布
2002年2月13日,J2SE 1.4发布
2004年9月30日,J2SE 1.5发布,J2SE 1.5版也被称为Java 5.0
2006年12月,Java 6.0发布
2010年9月,Java 7.0发布

 

 

分类
Java

Java 简介

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。

Java语言特点

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么 Java到底有何神奇之处呢?

Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从 1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下子变成了白天鹅。

Java主要特性

1、Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2、Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

3、Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

4、Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。

5、Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让 Java应用设置安全哨兵。

6、Java语言是体系结构中立的。Java程序(后缀为java的文件)在 Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。

7、Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用 ANSI C实现的。

8、Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式, 然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

9、Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。

10、Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。

11、Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(Java Enterprise APIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

Java 平台的多个版本

Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:

Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。大多数 Java 开发人员使用 Java SE 5,也称为 Java 5.0 或 “Tiger”(2006 年 6 月,Java SE 6 或 “Mustang” 发布了 beta 版。)

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 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

Java 很重要的几个基本概念

final类:为防止他人从你的类上派生新类,此类是不可扩展的。

动态调用比静态调用花费的时间要长。

多态类:在java中,对象变量是多态的。而java中不支持多重继承。

抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。

例: public abstract string getDescripition

Java中的每一个类都是从Object类扩展而来的。

object类中的equal和toString方法。

equal用于测试一个对象是否同另一个对象相等。

toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示。

(toString 方法是一个很重要的方法)

通用编程:任何类类型的所有值都可以同object类型的变量来代替。

封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。

重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法。

数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。

class类 object类中的getclass方法返回class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。

就业方向:

可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与 Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。

Java与C/C++的差异

熟悉C语言和C++语言的读者一定想搞清楚这个问题,实际上,Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物.比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和 C语言,C++语言完全相同.尽管如此,Java和C语言,C++语言又有许多差别,主要表现在如下几个方面:

(1) Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变.程序运行中,每个, Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题.而C语言通过malloc()和free()这两个库函数来分别实现分配内在和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存.在C和C++这仲机制中,程序员必须非常仔细地处理内存的使用问题.一方面,如果对己释放的内存再作释放或者对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则会浪费系统资源,甚至因此造成资源枯竭.

(2) Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能.

(3) Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能.

(4) Java不支持头文件,而C和C++语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂.

(5) Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不利于程序的可读性.

(6) Java对每种数据类型都分配固定长度.比如,在Java中,int类型总是32位的,而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位.这使得C语言造成不可移植性,而Java则具有跨平台性(平台无关性).

(7) 类型转换不同.在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性,而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换.

(8) 结构和联合的处理.在C和C++中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在Java中根本就不包含结构和联合,所有的内容都封装在类里面.

(9) Java不再使用指针.指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性.而Java对指针进行完全地控制,程序员不能直接进行任何指针操作.