已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2000年新人培训讲义JAVASJNS 幸 洪中28一 Java概要1 Java的历史年SUN提出了Java,95年正式发表。包括HotJava和JDK(Java Development Kit)版。到了JDK1.2的时候改称JAVA2。JDK包括了开发Java程序所必须的complier,debug和Java实行用的JVM(Java Vitual Machine)。还用一些作为JAVA标准得Class Library。到了现在,已有非常之多的程序员在利用Java了进行开发工作。作为一门编程语言,发展的如此之快。是因为,Java是Free的,并和WWW一起成长。当然,最主要的原因还是他基于非常优秀的设计思想。最初,Java(JDK1.0) 一般是用来开发Applet的。到了JDK1.1发布的时候,随着Performance的提高,国际化对应,Security的强化等,渐渐的转移到了商业应用上。同时也提供了DataBase的Interface,不同机种间的REMOTE METHOD的调用等MIDDELWARE使用的PACKAGE。JDK1.2也进行了很大的升级,提供了Swing等GUI用package。Swing使用纯Java构筑,使不同平台间的GUI设计一致起来。还提供了对应CORBA的API。2 Java的优点与缺点JAVA主要用一下优点:i 真正的面向对象ii 简单易学iii 平台无关性iv 高性能v 多线程对应vi 丰富的CLASS LIBRARYvii 高安全性以上是JAVA的优点,同时JAVA也有一些不足或者说是还不完善的地方。i 平台无关性 VS 高性能ii SIMPLE VS 丰富的CLASS LIBRARY iii 无损于USER INTERFACE的GARBAGE COLLECTION iv 对MULTIMEDIA和NETWORK的APPLICATION开发支持不足。二 JDK1 安装WINDOW NT4.0/2000:运行EXE程序即可。UNIX下自己学习。LOCATION:JDK1.2.2 Sb3serverSoftDevelopToolsJDK122JDK1_2_2-WIN.EXEJDK1.3 JasminesoftsWin32DevToolsJavaJDK1.3j2sdk1_3_0-win.exeCOMMAND介绍Command作用追加时间javajava interpreter(=虚拟机)JDK1.0javaccompilerJDK1.1jdbdebugJDK1.0javap反编译JDK1.0javahnative Code使用C herder file的生成JDK1.0javadocdocument的自动做成JDK1.0appletviewer可运行appletJDK1.0servletrunner可运行 servletJDK1.2jarjar file的做成与操作JDK1.1native2asciisystem code = unicode的ascii表现JDK1.1keytool电子署名的key的管理JDK1.2jarsinger电子署名jar fileJDK1.2policytoolsecurity 的policy file的生成与变更JDK1.2rmicremote interface的实装skeleton的生成JDK1.1rmiregistryRMI 的NAME SERVERJDK1.1rmidRMI 的 ACTIVATION SERVERJDK1.2serialverSERRIALIZE化的OBJECT的VERSION的表示JDK1.1tnameservCORBA的NAME SERVERJDK1.23 编译与运行a. 编译command:javac用法:javac options:-gdebug情报的生成-g:none不要生成debug情报-g:lines,vars,source只生成指定部分的debug情报-0最优化-nowarn不警告-verbosecompile information的输出-deprecation输出使用了非推荐API的那部分source-classpath 使用class file的位置的指定-sourcepath 入力source file的位置的指定-d 生成的class file的位置的指定-encoding source file使用的encoding的指定-target 生成特定的VM version有的class fileb. 执行command:java用法:java -options class args (to excute a class) java jar -options jarfile args (to excute a jar file) options: -cp classpath set search path or application classes and resources-D=set a system property-verboseclass|gc|jnienable verbose output-versionprint product version and exit-showversionprint product version and continue-Xprint help on no-standard options举例说明:首先输入一下的程序public class Welcome /* 処理開始 */ static public void main( String argv ) System.out.println(Welcome to Java World!); 并存为c:testWelcome.java。然后编译他:javac c:testWelcome.java 接着就可以运行了:java c:testWelcome注意:文件名最好和class名一致(包括大小写)在编译和执行之前要检查两个环境变量的设定是否正确。CLASSPATH=C:JDK1.3jreLIBrt.jar;c:testPATH=;c:test三 Java语法1 保留级与运算符a 保留字 原子类型和常量l bytel charl shortl intl longl floatl doublel booleanl truel falsel void class,object,package相关l classl interfacel extendsl implementsl thisl superl newl nulll instanceofl importl package class,member修饰子l publicl privatel protectedl finall staticl abstractl nativel synchronizedl volativel transient 程序流程控制l forl while l dol ifl elsel switchl casel defaultl breakl continuel return 例外处理保留字l tryl catchl finallyl throwl throws其他l constl gotob 运算符 前置单目运算符-不言自明按位取反!逻辑取反+不言自明-不言自明 后置单目运算符+不言自明-不言自明 二目运算符=不言自明+不言自明-不言自明*不言自明/不言自明%不言自明&按位与|按位或异或右移(包括符号位)右移(符号位置零)&不言自明|不言自明=不言自明!=不言自明不言自明=不言自明 三目运算符 A? B:C 带入运算符 +=,-=, *=, /=,%=,&=,|=,=,=,=c 注释 /* THIS IS COMENT */ /THIS IS COMENT /* THIS IS JAVA COMENT */主要用于JAVA DOCUMENT的生成2 数据类型和Classa 数据类型 原子类型JAVA中共有数值,CHARACTER CODE值,布尔值和void九种原子类型。没有对应的class。数值和char有以下七种:bytecharshortintlongfloatdouble1 byte2 bytes2 bytes4 bytes8 bytes4 bytes8 bytes布尔型的值有true和false,和C/C+语言不一样,不能和数值相互转换。b Class的定义class 和 interface是class定义使用的关键字。例:class MyClassinterface是还没有实装的特殊的class。在interface内,不能使用static和abstract。其中的method只有声明,而无实现。例:interface MyInterfacevoid myMethod(int arg1);c Class的继承extends和implements 是class继承用的关键字举例说明二者使用方法:例1:class NewClass extends OldClass例2:interface NewInterface extends Interface1,Interface2例3:class NewClass extends OldClass implements Interface1,Interface2注: 所有的class都是class Ojbect的子类,即使没有显式的声明extends Object 某个特定的class后的extends关键字后只能由一个class,interface关键字后可以有多个erface后的extends关键字后则可以有多个interface。换句话说,一个class可以继承一个并且只能是一个super class和若干个interface。从这点上我们可以看出JAVA的多重继承和C+的不同之处,JAVA实际上是通过implenments来实现多重继承的,并且已经实装的super class只能由一个。d this & superthis指的class本身,super实之父class.例如:public class ParentClasspublic int a;public void Init(int a)this.a = a;public class ChildClass extends ParentClasspublic int b;public void Init(int b)this.b = b;super.Init(b);e Object的生成和消去new,null,instanceof 举例来说明:import java.lang.*;import java.util.*;public class MyClasspublic void test()String s = new String(“12321”);String sArray = new String12;int iLenth = sArray.length; / iLength = 12;if (s instanceof String)System.out.println(“s is a array”);s = null; /一般不用写,有garbage colletcion来处理f Package & importpackage用来指定当前class所在package。他为合理的管理class提供了有效的手段。package名可以省略import 是指需要用到那些class例:package com.sjns.test;import java.util.Vector;import java.lang.*;public class Test3 Class的Membera field,method,constructorfield:class内定义的变量method:class内定义的function。可以定义名相同但是参数不同的多个method。注意,不能通过返回值来区分。constructor:构造函数。没有返回值(一律为void)。可以有多个,通过参数来区分。以可以没有,这是使用父类的构造函数。例:/*This class have no contructor,using super classs construcor. Here super class is Object */public class NoConstructorClasspublic void Init()System.out.println(“This is a class doing nothing”);/* This class shows how use multi constructor.*/public class MultiConstructorClasspublic void MultiConstructorClass()System.out.print(“Constructor 1”);public void MultiConstutorClass(int n)System.out.prinln(“Constructor 2”); /* This class shows how use multi method*/public class MultiMethodClasspublic void testFunction()System.out.println(“This is testFunction 1”);public void testFunction(int b)System.out.println(“This is testFunction 2”);public int testFunction(int b,int a)System.out.println(“This is testFunction 3”);return 0; /If methods return type is not void, must return some value/* This methods define is incorrect*/public int testFunction()reutnr 1;b inner Classclass内部定义的class或者interface例如:public class FatherClassclass Childpublic String sName;public int nAge;private Child children;inner class在编译的时候生成独立的字节码。在什么class内声明的就用什么名字,用$来区分。如上例,编译之后生成FatherClass.class和FatherClass$Child.class。inner class可以有多重。 有时候想在声明的时候使用,在其它地方不能使用。这时,inner class的定义和Object的生成可以同时进行,class 名要省略。如:public class MotherClasspublic static void main(String args)Object child = new Object()public String sName;public int nAge;以上的source编译时,文件名会是怎样的境况呢?系统会用适当的数字来代替。上例生成MonterClass.class和MontherClass$1.class这样的字节码。c access control(public,private,protected)C+里的比较相似,具体如下:publicprotected没有指定privateclass内部llll同一package内部lllX子 classllXX没有关系的classlXXXd static & finalstatic是指所声明的field为静态的,作用是所有class的实例只保持一份copy.例:public class TestClass/* static field */static int x;/* static process */staticx = 10;static public void main(String args)System.out.println(x = + x); 注意static不能用来修饰class。final:用final修饰的field,其值不能更改,但是在子class中可以再定义。method不能够再定义。class的话不能有子class。把static和final放在一起使用可以起到常量定义的作用。例:public class ParentClasspublic static final int BUFFERSIZE = 1024;static public void main(String args)ParentClass pClass = new ParentClass;BUFFERSIZE = 512; /ERRORe abstract & nativeabstract用来修饰需要子class实装的method。含有abstract method的class不能被实例化。native用来修饰需要其他语言实装的erface内的method一定是abstract的。没有必要显式的声明。f synchronize & volatilesynchronize 和 volatile用来同步多个thread对同一数据的access。 在这里不做详细的说明,具体可以自己学习。g transietobject serialize的时候使用,声明为transiet的field,serialize的时候不包含它的信息。4 流程控制a 局部变量的作用域和C/C+类似,在一个程序块内部。b 循环 for (int iCnt=0;iCnt 10) dowhile(iCnt 10); continue & break注意:条件必须是boolean值,不能使用这样的语句:int n;for (n = 10; n ; n-);n = 10;while (n) n-;c 条件分支 if ()else;if ()else if ()else; switch (value)case 10: 注意:value的type只能是整数值和chard 例外例:trycatch (Exception ex)finallypublic method() throws SpecialExeption throw new SpecialException(Error message);四 JAVA类库,常用ClassJava类库以jdk1.2.1为例:GUI使用的package:package作用java.appletapplet使用的packagejava.awt主要提供了window system表示用的Tookit. 用来表示Graphics 的Graphics ,Grapics 2D,以及一些例如Color,Image,Font,Point,Dimeension等DATA的CLASS。还有Layout等等。JDK1.中新追加了Stoke,Paint,Compositive,等Interface实装后的Class BasicStroke,TexturePaint,AlphaCompositive。java.awt.colorJDK1.2新提供的Class.提供了用来表示ColorSpace的Class.实现了依据国际标准International Color Consorsium与设备无关的颜色表现的机能。java.awt. datatransfer主要提供数据交换的机能。Copy & Paste. ClipBorad,DataFlavor(Data种类的识别)java.awt.dnd主要提供数据交换的机能。 Drag & Drop.java.awt.envent事件处理。Mouse & Keyboard.java.awt.font与Font相关的class和Interfacejava.awt.georn和维几何相关的class定义以及操作。java.awt.im提供了input method framework相关的class和Interfacejava.awt.image提供了创建和修改image的class以及Interfacejava.awt.image.renderableProvides classes and interfaces for producing rendering-independent images.java.awt.print提供了与Print相关的PrintJob,Paper,Book等Classjavax.accessibilityJDK1.2新追加.提供了对残疾人界面的操作。javax.swingJDK1.2新追加。提供了一系列轻量级的,纯java的,平台无关的部件。javax.swing.borderSwing部件的边界的指定。诸如LineBorder,MatterBorder等。使统一改变部件的外观成为可能。javax.swing.colorchooser供JcolorChooser部件使用的CLASS和INTERFACEjavax.swing.event对Swing Component的Envent处理,包括Envent相关的Class以及与之相对应的vent Listener Class. 如:ListSelection Event,TreeSelectionEvent, MenuEvent,PopupMenuEvent等等。javax.swing.filechooserContains classes and interfaces used by the JFileChooser component(通常的Application不能利用)javax.swing.plaf提供“Pluggable Look And Feel”机能。javax.swing.plaf.basic提供了用于实装Look &Fell的基本的共通部品。基于这个package 可以减少Look & Fell的实装的工作量。javax.swing.plaf.metal提供了用于实现metallook & feel 的classjavax.swing.plaf.multi允许用户把辅助的look & feel 和 缺省的 l & f 整合在一起。javax.swing.table为实现JTable Class而提供。(一般的application不能利用)javax.swing.text为实现表示文本的Swing component,JTextField,JTextArea,JEditorPane和JTextPane而提供。包含了AbstractDocument和EditorKit等class,cursor制御等多种多样的机能。javax.swing.text.html为实现HTML的编辑和表示的机能而提供。javax.swing.tree为实现CLASS JTree而提供。(一般的application不能利用)javax.swing.undo提供了undo的机能java.beansjavabeans java.beans.beancontextbean context提供application基本功能的packagepackage作用java.io与流输入和输入相关的class和interfacejava.lang提供了java system自身管理的用的class.包括:Ojbect,Class,System,Thread,初等函数用的Math,String,StringBuffer等class.java.lang.refProvides reference-object classes, which support a limited degree of interaction with the garbage collectorjava.lang.reflect提供了在程序内部动态的取得class的member情报用的Field,Constructor,Method等classjava.math大数值,高精度的数java.security提供了与安全性相关的classjava.security.acl提供了进行access control List管理所需的相关的classjava.security.cert认证处理erfaces提供了实现RSA KEYS和DSA KEYS所需的INTERFACEjava.security.specjava.text提供了为对应国际化的文字表示的CLASS。日期,数值,文本,MESSAGE。FORMAT和解析java.utilVector, Stack, Hashtable, Bitset, Date,StringToken.java.util.jar操作jar 文件java.util.zip操作标准的zip和gzip文件network,分布式object相关的packagepackage作用提供了网络通讯相关的class和interface.包括ip和dns名,url的取得,tcp/ip,udp使用的socket,packetjava.sqljdbc相关java.rmiRemote Method Invocation相关java.rmi.activationjava.rmi.dgcjava.rmi.registryjava.rmi.serverorg.omg.CORBACORBA相关org.omg.CORBA.DynAnyPackageorg.omg.CORBA.ORBPackageorg.omg.CORBA.portableorg.omg.CORBA.TypeCodePackageorg.omg.Namingorg.omg.Naming.NamingContextPackage常用Class介绍 java.lang.String,java.lang.StringBuffer +操作符的使用注意事项 子串的查找 长度的取得 字符串的比较 其他的请参照jdk api 例: import java.io.*;public class ReadLine /* 処理開始 */ static public void main( String argv ) try BufferedReader stdin = new BufferedReader( new InputStreamReader( System.in ) ); while( true ) System.out.print( ); / String line = stdin.readLine(); System.out.println( line + “s length is “ + line.length(); / 行出力StringBuffer sTmp = new StringBuffer(line); sTmp.append(“s length is”);sTmp.append(line.length();System.out.println(sTmp.toString();if (line.equals(“Hello world”) / not (line = “HelloWorld”)System.out.println(“Hello word input”);if (line.indexof(“Name”) != -1)System.out.println(“Name is included”); catch( IOException e ) System.err.println(IO Erorr); System.exit(-1); / 強制終了 java.lang.Interger, java.lang.Float,java.lang.Doubleimport java.lang.Interger;import java.lang.Float;import java.lang.Double;public class Testpublic static void main(String args)System.out.println(“-Interger-“);System.out.println(“Max value:”+ Interger.MAX_VALUE);System.out.println(“Min value:” + Interger.MIN_VALUE);System.out.println(“ 1321 is “ + Interger.parseInt(“1321”);System.out.println(“ 1321d is “ + Interger.parseInt(“1321d”);System.out.println(“-Interger-“); java.util.Vector ,java.util.HashTable import java.lang.Vector; import java.lang.HashTable; public class VectorHashTableTest()public static void VectorTest()Vector vTest = new Vector;vTest.addElement(“Element 1”);System.out.println(“Element 1 is added”);vTest.addElement(new Integer(1234);System.out.println(“Element 2 is added”);System.out.println(“Now vTests size is “ +vTest.size();vTest.removeElement(1);System.out.println(“Element 2 is removed”);int nVectorSize = vTest.size();for (int nCnt; nCnt nVectorSize; nCnt +)System.out.pritnln(“Element “ + nCnt + “ is “ + vTest.ElementAt(nCnt);public static void HashTableTest() Hashtable numbers = new Hashtable();String sTmp = “one”,”two”,”three”; numbers.put(sTmp0, new Integer(1);System.out.println(“Now one is added); numbers.put(sTmp1, new Integer(2);System.out.println(“Now two is added); numbers.put(sTmp2, new Integer(3);System.out.println(“Now three is added);int nHashSize = numbers.size();for (int nCnt; nCnt nHashSize; nCnt +)System.out.println(nCnt + “ is “ + numbers.get(sTmpnCnt);numbers.remove(“three”);public static void main(String args)VectorHashTableTest. VectorTest();VectorHashTableTest .HashTableTest(); I/O处理相关代表抽象 入力用 出力用 byte単位 InputStream OutputStream char単位 Reader Writer InputStream 的子类 Reader 的子类 InputStream ByteArrayInputStream BufferedInputStream DataInputStream StringBufferInputStream FilterInputStream PipedInputStream FileInputStream LineNumberInputStream SequenceInputStream PushbackInputStream ObjectInputStream Reader InputStreamReader CharArrayReader BufferedReader StringReader FilterReader PipedReader FileReader LineNumberReader PushbackReader OutputStream 的子类 Writer 的子类 OutputStream PrintStream ByteArrayOutputStream BufferedOutputStream Dat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年舆情专员招聘面试题库及参考答案
- 万达医院考试题库及答案
- 2025年公共事务及政策分析师招聘面试题库及参考答案
- 江西银行笔试题库及答案
- 自考消防证题库及答案
- 幼儿教师资格题库及答案
- 2025年金融科技工程师招聘面试题库及参考答案
- 2025年医疗保险理赔专员招聘面试题库及参考答案
- 2025年安保工程师招聘面试参考题库及答案
- 2025年无机化学研究员招聘面试题库及参考答案
- 2025贵阳市城市建设投资集团有限公司第二批招聘笔试考试参考试题附答案解析
- 承装修安全生产管理制度
- 2025物流师考试试题及答案物流师考试真题及答案
- 2025-2026学年天一大联考高二物理第一学期期末质量跟踪监视模拟试题含解析
- 配电室安全检查要点和监管培训
- 市政府办公文材料审核办法
- 2026年中国食品检验检测市场调查与市场前景预测报告
- 小区物业消防演练方案及
- 云南省昆明市云南师大附中2025-2026学年高一上学期期中语文试题(含答案及解析)
- 《让图表说话》教学课件-2025-2026学年湘美版(2024)初中美术八年级上册
- 2025-2026学年广东省六校联考高三上学期第二次联考数学试题及答案
评论
0/150
提交评论