Java入门系统Java基础知识部分总结2.docx
精品名师归纳总结Java 入门 系统 Java 基础学问部分总结1、虽然有很多伴侣可能进行了多年的java 开发老手, 但可能仍然对某些点缺乏认真探究。2、去一些公司求职面试或笔试时的技术题目中,也往往会涉及到这里的一些内容。所以,期望下边的这些总结能够对一些学习java 或求职的伴侣有些许帮忙。1、 关于 java 类中的缺省的构造器假如一个 java 类没有显式定义没有参数的构造器,将有一个默认缺省的构造器。假如定义了一个有参数的构造器,那么原先的缺省的构造器将不在有效。publicclassA此时假如用newA;java 编译器将使用缺省的构造器。publicclassApublicAinti假如此时用 new A;将产生一个编译错误,由于此时显式定义了,一个有参数的构造器。2、Java 中的类名与文件名1、在一个 java 文件中可以有多于一个类定义 更常见于某些组件的监听器类 ,但只能有一个 public class定义,且与文件同名。2、假如一个 java 源文件中没有 public类,那么每个类的名字没特别规章, 即不必与文件同名。3、在编译后产生的 class文件中,仍然是多个单独分开的class 文件。3、import关键字1、import 语句必需定义在全部的 class 定义之前。2、import 语句只是为编译器指明白一个路径, 并不像 C或C+中的 #include , 所以用 import .*并不影响性能可编辑资料 - - - 欢迎下载精品名师归纳总结System.out.println"11t.testaa;aa="+aa+"num="+aa.num;System.out.println"22aa="+aa+"num="+aa.num;voidtestAaAab=newA;a=ab;4、Java 中的几个特别关键字Java 中的关键字很多大家都比较熟识,而有几个就不是很常用,如:1、goto 和 const 是保留关键字,在 java 中没使用2、strictfp和 volatile不常用; sizeof、zhen 不是关键字。3、true,false,null不是严格意义上的关键字,而是literals。5、java 方法中的传递值参在 Java 方法中传递参数,对于基本类型来讲传递的是值参数,相当于建立的一个参数的拷贝,不影响原先变量的值。在引用方法中可以转变传递对象的内容,但对象引用会转变。 像 A5d87b2从来不publicclassttpublicstaticaa=newvoidA;mainStringargsAaa.num=5;ttt=newtt;System.out.println"33ab="+ab+"num="+ab.num;classAintnum;6、变量初始化java 中的变量在使用之前必需被初始化,当创建一个对象的时候一些类的变量会自动初始化并给予缺省值。数字类赋值 0;char类型赋值 'u0000' boolean类型赋值 false;引用对象赋值 null;可编辑资料 - - - 欢迎下载精品名师归纳总结留意的是在方法之外的类变量的值是自动赋初始值,而方法内的局部变量必需手工初始化。classAAintnum;voidtestintj;j=5;/ 没有这一行就编译不会通过。j=j+num;7、switch语句这个点常常在求职笔试题目中显现。 default放在最上边编译没问题 ; 遇到符合分支的,假如没有break 会始终向下运行。publicclassttpublicstaticvoidmainStringargs ttt=newtt;t.test2;/可转变成 3 运行一下看一下结果voidtestinti switchidefault:System.out.println"default" case1:System.out.println"111" break;case2:System.out.println"222" break;8、关于 java 中的 label使用.breaklabel.continuelbele.lable:statement;/ 这里的 statement 必需是一个 loop 循环publicclassttpublicstaticvoidmainStringargs可编辑资料 - - - 欢迎下载精品名师归纳总结ttt=newtt; t.test;voidtest System.out.println"0000" lb1:forinti=0;i<10;i+lb2:forintj=0;j<2;j+ifi=2continuelb1; System.out.println"i="+i+"j="+j;System.out.println"111111"9、类型转换校正classEmployee|classManager向上校正,总是答应的, Manager直接使用父类 Employee的方法。向下校正,必需用 instanceof检验,才能将一个 Employee转换为 Manager对象。publicvoidtestEmployeee ifeinstanceofManagerManager.m=Mnagere;10、方法重载 overloading、方法掩盖 overriding方法重载 overloading肯定要求名字相同,参数不同,返回类型可以相同也可以不同classvoidAtestinticlassAAextendsAint returntestinti, 5;intj可编辑资料 - - - 欢迎下载精品名师归纳总结classpublicAAinticlassAAextendsApublicAAinti=5;/这里出错,没有父构造器注:方法掩盖 overriding要求名字,参数,返回类型全部必需相同,拜访掌握符可以不同, 但必需大过父类的。 由于假如名字和参数都已经相同了就肯定要求返回类型相同,否就认为这是一个新的方法了,名字就必需不同了。classvoidclass publicAtestintiAAextendsAvoidtestinti/如是换成 private就编译不通过。注:关于掩盖方法抛出反常的问题。如A 是父类, B是继承 A的子类。 B 中的方法 meth 去掩盖父类 A的此方法时, B 中不能 throws 出新的反常,只能是父类抛出的反常或其子集。更甚至可以不抛出反常。11、关于类的构造重视载问题由于父类 A 自定义了构造器, 所以缺省的构造器就丢失了, 当子类的构造器自动试图调用父类没参数的构造器时却没有,所以会编译出错。12、关于 static关键字总结:1、不能在 static修饰的方法中引用 this变量,只能引用一些静态变量或方法,或 new新的对象 可以定义局部变量 。简言之,静态方法或块中,只能引用静态的方法或变量。2、类中的成员变量 static修饰 有缺省值,而类的定义的方法中的局部变量没有缺省值。可编辑资料 - - - 欢迎下载精品名师归纳总结3、在类的构造器中,可以引用任何的静态或非静态的变量和方法,可以在非 static方法中调用 static方法。4、static块中的代码在类装载中仅执行一次。5、在 7-7 , A static method cannot be overridden but can be hidden.不懂得。6、不能在无论非 static方法中或 static方法中定义 static变量。13、关于 final关键字1、不能继承 final修饰的类,不能掩盖 final修饰的方法。2、final修饰的变量,如没赋值,必需在构造器中赋初始值。classAfinal publicintAj;j=9;/如没有此行,就编译不通过。3、final类型的方法参数可定义,但不能转变。classAvoidmfinalinti/ 这一行的声明 i 为一个 final没问题。i+;/ 但在这里面, i 的值不能再被转变。14、Interface接口关键字1、接口中的变量1、必需初始化其值。2、默认修饰符为 public+static+final,其他的修饰符不答应。2、接口中的方法1、默认为 public+abstract可编辑资料 - - - 欢迎下载精品名师归纳总结2、其它修饰符static,private,protected,final,synchronized,native均不能有。interfaceAvoidclass voids;AAsimplementsA/ 编译器在这里提示由于接口中的方法s 修饰符默认是 public ,/ 而这里的 s 默认是 protected ,小于 public所以不答应。15、abstract抽象关键字abstractprivate privateclassint voidAi;m;抽象类中可以有私有的变量和私有属性,而接口就不行 缘由如上 ,这是由于 java 是按实例虚拟调用的,在生成某一个详细的对象可以有私有的属性或方法的。abstractprivate private publicclassint voidAi;abstractm;voidn;/如是 private就编译不通过。抽象类中的抽象方法是让其他类继承的, 假如本身都是私有的, 就没有什么意义了16、集合类型以有无次序,答应不答应重复区分 Collections:一组对象,无序集合,答应重复Set:无序集合,不答应重复List :有序集合,答应重复可编辑资料 - - - 欢迎下载精品名师归纳总结留意:在 JDK1.1 中定义的集合类型, 都是线程 安全 的,所以都是“重量级” 的。像 HashTable,Vector而在 java2 中定义的一些新的集合类型如 HashMap, ArrayList不是线程 安全的,是“轻量级”的, 但速度快, 性能好。这一点在很多公司面试试题都见过。17、布局治理器FlowLayout,BorderLayout,GridLayout,CardLayout关于 Panel 和 Frame默认的 Layout 常在一些公司的面试试题中显现。1、Panel 和 Applet 类默认的布局治理器是 FlowLayout 一个一个的加上去2、Frame和 window 类默认的布局治理器是 BorderLayout 按东南西北加入3、xyLayout 是 Borland 公司开发的布局治理器。18、面试试题中 Applet 部分1、使用代码2、可以掩盖的方法 init,start,stop,destory,paintg 19、面试试题中线程部分1、基本实现方式两中,继承 Thread 类和实现 Runnable 接口2、必需实现父类或接口中的 run 方法。3、有关线程方法, start启动线程。join指在调用这个线程的方法或进程中, 必需等待此线程运行终止才能连续其他进程。4、线程中的同步 synchronized, 留意死锁。20、对象串行化1、仅仅对象类型的数据可以串行化。2、标记为 transient的数据不行以串行化。储备一个对象到某种永久性 储备 叫 persistence,如储备到磁盘、磁带或别的机器的内存中。可编辑资料 - - - 欢迎下载精品名师归纳总结java.io.Serializable接口没有定义方法要实现,仅仅是一个标记示意实现了这个接口的类可以被考虑串行化。 没有实现这个接口的对象不能储存或储备它们的状态。当一个对象被串行化的时候, 仅仅数据被保留, 而方法和构造器不是串行化的部分。一些对象类是不能串行化的由于他们代表的数据是常常变化的。如java.io.FileInputSream和 java.langThread。假如串行化的对象包含了不行串行化的对象,整个串行化动作会失败,并抛出NotSerializableException。21、java 中的网络通讯一般的 TCP/IP 网络数据通信主要可分2 种, TCP和 UDPTCP:TCP是面对连接的通信 协议 ,就像打电话,先要拨通建立连接,传送的数据不会丢失。java 供应了 ServerSocket 和 socket 类。在 server 端,建立一个serverSocket ,并指定端口,并侦听连接。服务器 端代码ServerSocketsc=newServerSocket1111; Socketsocket1=sc.accept;DataInputStreams_in=newDataInputStreamsocket1.getInputStream ;客户端代码Socket socket2 = new Socket"192.168.1.1",1111;UDP:UDP非面对连接,就像写信,将传输的数据包成一个分组,可能有数据丢失服务器 端代码DatagramSocketserver=newDatagramSocket1234; DatagramPacketin_packet=newDatagramPacketin_buf,2000;server.recievein_packet;客户端代码可编辑资料 - - - 欢迎下载精品名师归纳总结DatagramSocketclient=newDatagramSocket1235; DatagramPacketout_packet=newDatagramPacketout_buf,100,"192.168.1.1",1234; client.sendoutPacket;22、String对象一般讲来创建的两个对象假如用=来比较确定是不等的, 由于他们的引用的址是不同的,而 =是对于对象来讲是比较对象的址的。但对于String对象来讲是一个例外,两个 String对象假如值相同, =比较也是相同的。我想这可能与Sun公司对 String对象定义有关。publicclassttpublicstaticvoidmainStringargs ttt=newtt;t.test2;voidtestinti Strings1="123" Strings2="123" ifs1=s2System.out.println"111111"else System.out.println"2222222"结果输出: 111111可编辑资料 - - - 欢迎下载