数学建模社区-数学中国

标题: [转帖]Java 101(原创) [打印本页]

作者: god    时间: 2005-3-31 01:12
标题: [转帖]Java 101(原创)
<><FONT color=#ffcc00 size=+3><B><FONT size=+2>什么是Java?</FONT></B></FONT></P>
2 [3 L, h, l5 z0 t, ^$ F<>Java<FONT size=3>™是</FONT>全新的计算机技术,它是建立在基于强大的网络和同样的软件应该在不同的计算机系统上运行的思想上的。这些计算机系统包括消费型器件和其他一些设备。利用Java技术,您能令人信服的让同一种应用在各种各样机器如:PC、Macintosh系统、计算机网络或者象Internet可视电话一样的新技术上运行。</P>
; p# Q* o$ ?! j3 A<>Java可以既可以看做是一种真正的程序设计语言,也可以看作是一个完整的平台。作为一种程序语言,它简洁、面向对象、安全、健壮以及适用于Internet技术。而作为一个平台,它通过那些符合Sun公司发布的标准APIs 开发的应用,在操作系统、数据库、中间件和其他第三方厂商提供的服务。</P>
) U! H) ^0 Z* A<><FONT color=#ffcc00 size=+2><B>你能用Java干什么?</B></FONT></P>8 l2 s- G7 L: S. W0 Z
<>Java能够做得比其他语言更灵活。下列是Java的一些典型的应用。</P>4 X1 a" `3 L5 B0 x- z! B" Z
<UL>- J) E7 F; e" u, _$ w& v
<LI>GUI应用和applets 7 z7 v) p/ S+ u* J
<LI>分布式组件(EJB,RMI,CORBA等)   g4 A& y; j7 C
<LI>数据库以及数据库控制
: t7 I" j, c5 m* g6 I6 b<LI>Web服务器
' Q8 g2 P0 f) l7 \" k+ o) D" n<LI>消费设备和内置设备的应用(移动电话,PDAs,smart卡,可携带摄像机) 0 s! }+ r# `3 @6 `9 \& ]
<LI>任何在计算机上你能想到的应用...... </LI></UL>
2 _# }4 o- _  L/ P, K, ^<><FONT color=#ffcc00 size=+2><B>Java怎样工作?</B></FONT></P>( Z4 a, h8 a; j% D7 a2 k, Z3 h
<>Java应用程序能够被JVM(Java虚拟机)翻译,JVM位于操作系统之上。有不少厂商已经有JVMs,如Sun,IBM,HP,Applet等。</P>9 c$ U  {9 M  K: M- H
< align=center><IMG src="http://www.javajia.com/images/figure-javalayer.gif"></P>
; j, u5 g) s7 Y<>下面的图形显示Java在编译和运行时的步聚:</P>
6 j6 i+ K2 c: t/ A/ J4 G9 R) c< align=center><IMG src="http://www.javajia.com/images/figure-javainterpreter.gif"></P>
; w& a6 a( Z* S2 W) r" W< align=center>图一:Java的编译</P>6 G0 x9 E$ {: n% }/ p, V2 q9 v
< align=center><IMG src="http://www.javajia.com/images/figure-javalayer.gif"></P>9 n0 v; D$ k! g9 u) T: E# T
< align=center>图二:Java的运行</P>
* U  B' R3 D# F<>Java应用程序(.class文件)不需要重新编译在任何操作系统上运行。</P>$ R; ]! Q* @: n, \) L9 M
<>下面是简单的Java程序:</P>( ^, M) W: O& `4 S" a4 [
<BLOCKQUOTE><RE><FONT color=blue>  r: t- _% Y4 P! P3 j8 ~1 h4 u0 j
public</FONT> <FONT color=blue>class</FONT> HelloWorld
* Z8 y% D& F5 Q4 Z{
! s% T+ Y8 Z$ F" f2 ]6 p3 i   <FONT color=blue>public</FONT> <FONT color=blue>static</FONT> <FONT color=blue>void</FONT> main(String args[]) <FONT color=blue>throws</FONT> Exception
* O; H3 V/ }1 r   {2 ^4 I# ?7 ?2 g6 l
       System.out.println("Hello World!");* E% d- J- L1 e, L) d
   }
0 h: I" @2 C. N$ i8 ?. F2 |! \5 f/ `}6 \0 z1 P. E9 m, F5 j
</PRE></BLOCKQUOTE>
9 P6 W0 F" D& u1 z, C6 k  K- w<><B><FONT color=#ffcc00 size=+2>各种各样的 Java产品和APIs</FONT></B></P>5 q# b' f# Y' H7 P
<>Java平台分成三个主要的类:</P>+ G( q# X2 l: V/ w: m1 ?. v
<UL>& D' ^; z1 a3 g# {' [
<LI>Standard Java
- u: }# u$ Y1 I0 E0 b4 y  z<LI>Enterprise Java , _* [1 i; ~; ^# B) a
<LI>Java for sonsumer and embedded devices </LI></UL># r. Q1 J) b( V5 G8 j/ X# D
<>下面是一些关健的技术/APIs在这三个方面的应用。</P>
& m) R* S2 ~/ S  Z<><FONT color=#ffcc00>Standard Java</FONT></P># T+ n- t: ?: s: R
<UL>  t0 X; `. Z4 r' k5 i6 l4 c- G
<LI>Java 2 SDK(J2SE)
7 V- o1 k# _7 @1 k& T<LI>Java 2 运行环境
/ ?* _: D" X6 _, M1 l<LI>Java插件
  _0 J7 b) `6 Z# H7 u<LI>Java Web应用
1 {  K& s# J  [9 }; y' s3 @# n<LI>Java热点服务和虚拟机 & |* n; n- C2 ]' A
<LI>Java基本类(JFC) ' u& U- L8 B+ m. K, r0 ]" z
<LI>收集框架
: K2 h  B6 u2 `+ j/ ?5 L; o8 F<LI>Swing组件 $ t" C% _0 l* _7 `" Q0 u
<LI>即插即用
. {5 z$ t$ O8 ?<LI>安全 ; i7 D* z; M0 _" s! U' G5 Q) V
<LI>Java IDL
$ r2 {/ f7 c, I9 C0 |<LI>JDBC
8 h6 x* k2 I* v0 P( ^; I% a<LI>远程方法调用(RMI)
6 o3 P, j: A2 D- N: m8 \$ n<LI>Java 2D </LI></UL>
8 {2 p9 G9 ?4 ^<><FONT color=#ffcc00>Enterprise Java</FONT></P>
/ E3 D/ ~; G' [  T, `* {1 V<UL>
- A/ N* f, ]' J5 z3 H. f<LI>Enterprise JavaBeans (EJB) 体系结构 & Z8 m" c% n! A! G2 D8 Q
<LI>JavaServer Pages?(JSP)
! v" r0 Y( s8 j# H2 \<LI>Java Servlet
$ G6 R; z# g4 j1 r$ I! Z' E/ d( b<LI>Java 名称和目录接口 (JNDI)
! H$ J( J6 U+ C0 \. C<LI>Java IDL
0 I! P$ m8 |* T8 G3 J  l/ a4 h<LI>JDBC
+ [2 g8 k- \% ~3 `+ W<LI>Java Message Service (JMS)
3 C4 e. g  u6 P8 N<LI>Java 事务 (JTA)
$ j  ?! m. L' W4 D<LI>Java 事务服务(JTS) ' f. Q! i2 k+ V5 M& i
<LI>JavaMail
% O. p$ I3 q$ d& F8 `; D7 U<LI>RMI-IIOP ' N2 W+ @; Z8 W: o
<LI>Software Development Kit &amp; Application Model
# Z; U# n& \. Z. s, m0 _+ B/ _& q<LI>Java 2 SDK, Enterprise Edition (J2EE) # Q( u4 c( U, Q" \: U3 v. Z
<LI>Sun BluePrints Design Guidelines for J2EE </LI></UL>
0 G0 X0 y% e# v) q/ E$ n$ H' q1 m<><FONT color=#ffcc00>消费和移动设备</FONT></P>
- y4 X! t& |- t% G- j<UL>9 B$ i! M- G9 N. E$ W
<LI>Java 2 Platform, Micro Edition (J2ME technology)
! V$ o" x) R  x% [; g$ I+ ^<LI>Connected Device Configuration (CDC)
+ Y: n5 ^' j. S) p1 X9 c<LI>Connected Limited Device Configuration (CLDC)
! g9 D) F1 D3 w  N" M) a: _8 K; W<LI>C Virtual Machine (CVM)
( \1 z& D1 j. b2 |3 p% M; z+ W<LI>K Virtual Machine (KVM)
, j1 H6 M1 ?  S5 q7 L) w<LI>ersonalJava
& P5 y: x5 d9 h3 s<LI>Java Card
! }! q1 z2 H6 \/ W2 e# p% C; f<LI>JavaPhone API
. I; M* r* b3 x7 E7 }0 B<LI>Java TV API % y$ R; G. n. D# ~. V
<LI>Jini 网络技术
5 l% e' n$ v6 o% y+ {- V! G4 V5 i5 p<LI>移动信息设备 (MIDP)? </LI></UL>
& b1 a+ F" M8 p$ U( |( W0 u7 s<><FONT color=#ffcc00 size=+2><B>Java的历史</B></FONT></P>5 w" R- R; q8 R. s( K9 T
<>自从1995年Java被介绍给公众,就引起了公众的注目。不久就有几百个有价值的报道事件:产品发布、Java技术的叙述。下面的表格大致的证明了许多关键的事件。</P>; O- k0 B+ N: H! [/ K& ]2 I
<TABLE border=1 cellPadding=5 cellSpacing=0>
+ ^7 i9 C, ~4 y+ {; O7 b
8 m5 t8 T9 [  N+ S<TR align=left vAlign=top>
; I9 n) |, H1 T7 A# e1 x$ {& G<TD bgColor=#cccccc><B>1995</B></TD>
# \; p& I+ P" J. r<TD>
4 N0 }# H( g2 U% D# j1 y+ r. {* }<UL>
( o4 ^4 ]" B& m9 i# S6 [& F<LI>Java 技术发行,开始的重点是applets </LI></UL></TD></TR>( |, @' y1 S( b2 r6 N
<TR align=left vAlign=top>
' q* k4 h. w( A" R+ K6 b<TD bgColor=#cccccc><B>1996</B></TD>/ h! D; F  u# q+ P
<TD>
3 @, \1 o5 s8 J! t' w  w0 c7 W<UL>3 f7 v" F4 f5 E
<LI>Java Development Kit (JDK) v1.0 发布. 包含核心层的功能 (socket programming, file I/O, GUI等) </LI></UL></TD></TR>
  }* }$ z8 w1 ~8 {1 Y7 _( U+ W/ F( C<TR align=left vAlign=top>
! J$ A! @7 E+ J2 _<TD bgColor=#cccccc><B>1997</B></TD>
% l' ^& h  F- A& d<TD>
3 f$ S- c- v! m! f* T3 M6 }  `% A4 i<UL>
# D6 S( G2 D. r1 l" j  K5 I<LI>JDK 1.1 发布. 引入几个增强的方面:Java GUI, JDBC数据控制, RMI 分布对象和其他一些。 </LI></UL></TD></TR>
  i( y, n: I: `: O4 R/ J<TR align=left vAlign=top>, }" V8 E: q7 S4 O4 g/ i
<TD bgColor=#cccccc><B>1998</B></TD>
* G' g" [0 C0 _( C1 m9 y<TD>! Z  I; D& h! k0 A4 }& k
<UL>3 O( j5 Q& c: c/ i
<LI>JDK 1.2 (称 Java 2) 发布
1 Q- T9 a3 s: p/ y5 x0 z9 s<LI>JFC/Swing ships ,那年JFC/Swing被下载了500,000多次 </LI></UL></TD></TR>
, ]4 q: F8 W: Q& j" U, K* @<TR align=left vAlign=top>6 f* v, I& n2 }( ~
<TD bgColor=#cccccc><B>1999</B></TD># i# S6 w/ K7 S' \
<TD>2 l1 @) ~5 B7 C0 l! _6 n3 j
<UL>4 r# P- D) E5 V) p
<LI>Java 技术被分成J2SE, J2EE and J2ME
0 `: e! Y; Z3 ]  [9 a, F5 _8 Q; j<LI>Java HotSpot performance engine unveiled
# N& m& `4 K# q<LI>JavaServer Pages (JSP)技术公诸于众 ) F! M% C7 r9 G: X! @( Z- a- V
<LI>J2EE platform ships
2 X, y! \" C9 M3 ]) q5 m<LI>J2SE platform on Linux ships </LI></UL></TD></TR>
. w* |3 J3 x1 U/ N) f& J- M& E<TR align=left vAlign=top>
2 y9 r4 `3 X! w. Z  [  _! P% ]<TD bgColor=#cccccc><B>2000</B></TD>" Z$ ]' P& Y/ w
<TD>( W6 ?  c; B1 o8 j
<UL>, A/ J5 S0 L/ I$ N+ f4 L2 i
<LI>JDK v1.3 发布 8 m* e; ~1 T! j) i* n; |5 W
<LI>Java APIs for XML ship - b" f3 }  |1 x. c6 {2 w
<LI>J2EE 授权给 ATG, BEA Systems, Gemstone, Silverstream和其他几个公司. 许多卖主已经接收了这个。 0 H* e4 ^/ J* U7 N, s3 N
<LI>Java开发者成员上升到150万。 </LI></UL></TD></TR></TABLE>
) L( O9 Z* S) F7 S$ }/ Y% w! a: k1 j<><FONT color=#ffcc00 size=+2><B>Java的成长</B></FONT></P>! r3 G) c& F0 P9 z
<>Java现在运行在桌面系统、服务器、数据库、smart卡、PDAs、smart电话、机顶盒等许多方面。</P>
! _$ s. x. K' I$ [2 d< align=center style="TEXT-ALIGN: center"><IMG src="http://www.javajia.com/images/figure-javatouchesall.gif"></P>% D3 z5 q+ h, }7 O% C
<><FONT color=#ffcc00 size=+2><B>Java 成功的众多原因</B></FONT></P>; A0 O5 p8 n# A- W: _, k
<UL>. A2 {; K  S0 h: s4 z' {
<LI>奇妙的程序设计语言
* k1 n" }" [9 A0 T, n<UL>7 a$ p' @# w9 b/ l! g7 \' ^
<LI>没有类似与C/C++的内存问题
1 r. i4 S5 c" a( P<LI>面向对象 ' x& \3 q& ^) x1 H+ f" e
<LI>高度动态,不像 C/C++/VB - ?0 c8 s5 w- @2 r  N/ m/ @
<LI>安全
, I6 Z5 f( t5 W0 F" Y<LI>针对Internet程序设计 </LI></UL>! t4 B5 \# W4 k: J
<LI>平台无关:一次编译,到处运行
! w. @8 T4 |5 `3 k<LI>Java推出一个公共的途径以代替象Windows, MQ Series, Sybase DB Library等一样的私有技术。这对于每个人来说都是非常伟大的,不论你是开发者还是企业。 </LI></UL>
7 Q' d' V% V5 G; U1 x! @<><FONT color=#ffcc00 size=+2><B>一些感兴趣的事实</B></FONT></P>: S" [" h- P' o9 j- w
<UL>
! D* ]" p* u% @2 m2 }6 h<LI>在JavaOne2000年会上,有超过25000人参加;有超过330个公司显示了他们基于Java的解决方案 % T1 G0 ]% O1 i) l7 z; O! Q
<LI>在世界上有超250万的Java程序。IDC估计到2003年将会超过400万 5 M% O0 ^$ D* Z* ^% t0 Y" I6 ~9 |
<LI>JDK V 1.1 已经有超过500万的下载 ! G. f2 X5 R" V! w1 A/ s
<LI>有关Java平台的书籍已经超过2000本
$ k  ~4 u. N  r# U$ E( R<LI>在世界上已经有超过1500个Java用户训话(JUGs) . q" i9 @/ k  w+ _
<LI>Sun解决问题的网站已经超2800个,并且提供超过2100个的Java服务
: K. L5 d. P% t, G  w4 J<LI>2千万的Java Smartcards已经在去年被销售
4 f/ X( S3 e) c8 q4 @  N<LI>java.sun.com一个月这内就有110万的浏览者,他们在这个站点浏览了3600万个页面。
2 p# O; F6 d, z3 w<LI>80%的境外大学要求学习Java;其中50%是作为必修课 </LI></UL>1 v8 f/ X/ K3 R8 E1 m
<P>关键原因是Java让企业增加了市场判断能力</P>7 a" P. y# z4 V9 M
<UL>
3 t0 E1 l3 A7 B# X5 [$ o1 v<LI>在市场中存在大量的好的产品可供使用,让开发者以及开发者去执行他们的系统变化
5 {3 g7 X. a: B- ~9 B; D% D2 C<LI>能够与各种各样的环境结合在一起(由于支持通讯、XML、CORBA等)
/ N: G/ t( j3 }0 A2 ^: p<LI>端到端的分布式传输支持 8 ]5 S" l1 l" p6 z/ a, @
<LI>自从被推出以来,Java有著引人关注的成熟 </LI></UL># Z. L5 W7 M+ J4 f) b1 I" V
<H3><FONT color=#ffcc00 size=+2><B>Java以其相关技术</B></FONT></H3>  Z- V7 c& R" ^/ l% b% H% z
<H3><FONT color=#ffcc00>微软</FONT></H3>
: E5 l* Z( ~. R" O/ \- r5 @7 ^  l7 H<UL>
4 D' |  ~/ M$ n, M<LI>Sun和微软之争对于开发者来说是无关紧要的,因为你可以简单的安装Java虚拟机在Windows 2000、NT4.2、或者9x上。 0 C  v7 n) q* _$ m
<LI>对于浏览器端的Java,这些项目包括:
( u; z( n) Y! [. R3 q<UL>* R! x/ f" m3 h1 [, {
<LI>基于HTML/JavaScript的Web应用和服务器端Java - ^2 e0 T4 w! e" d" B2 G) A
<LI>在IE 4.x 和IE 5.x中对于JDK1.1 90%以上的支持 </LI></UL>: X; Q/ v; M' _) ~/ U6 f5 H
<UL>6 N! V( v* Y4 Q' g% e8 `
<LI>Java 2以及更新版本的支持 </LI></UL>
' B  I0 ^7 e; ?5 y* R) B5 x) D<UL>
' P# d  {4 x1 {0 ^8 X9 w) Z( X<LI>Sun的Java插件 </LI></UL>
9 N; l3 ]7 X; X2 l* m; s5 r<UL>6 B% [5 R  }8 b- t/ D
<LI>Sun的Java Web Start(在浏览器之外也能运行应用) </LI></UL>
/ H2 v6 X. W" K& A+ k9 z<LI>Java认为在其他Unix平台下比在Windows平台下运行得更好、更快。
  ~3 u- j6 l8 R; h/ w7 r! A<LI>几个"桥 "在Java和微软技术之间可供使用 </LI></UL>
. _8 e& R$ }1 k0 o: n! |: r* }9 u4 Z<H4><FONT color=#cc9933><B>XML</B></FONT></H4>% U& i5 C  J& F7 c8 m
<UL>
/ V1 Q5 I* l' U  ]# a<LI>Java和XML是高端的补充技术 - I; {/ j! ~2 q+ Z, x0 M2 _, g# q$ V( c
<LI>Java提供代码布局,XML提供数据布局 2 m7 ?* ]+ |* b5 p0 e+ B
<LI>Java有成熟的支持XML、XSL和其他相关技术
( c  w  V. w4 t# I# r) V<LI>Java中包含有Sun、IBM和Apache的针对于XML的程序 % v# l4 p: ?0 ?0 b3 b- \
<LI>JSP做为动态网而能够很易的使用XML </LI></UL>3 G' s$ l% K  r5 W, d
<H4><FONT color=#cc9933><B>其他: WAP, SOAP, 蓝牙, CORBA 等.</B></FONT></H4>
; L/ d$ r" X2 ~: Q/ Z- n<UL>
# k( ?) a7 ?' H& ], b<LI>Java能看作是一种程序设计语言或整个平台 ) x0 q2 w8 S+ Y# a  z( U( g- w- |
<LI>从程序设计语言的角度 ; X" B' n3 @0 ?$ C' O. w
<UL>9 W# R: H, f. D; c3 l, f
<LI>Java可以符合几乎所以的协议写程序 % N( ^1 O: _, S! ~+ s  D" \0 s
<LI>很多新出现的技术和产品支持Java接口 </LI></UL>
- _7 B0 k8 R% e( s2 X: M: A<UL>) {8 T1 n' w0 s/ \! G5 |  X
<LI>Java也能通过C/C++而扩展 </LI></UL></LI></UL>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5