ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:19.87KB ,
资源ID:8800854      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8800854.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java基础知识部分总结.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java基础知识部分总结.docx

1、Java基础知识部分总结Java基础知识部分总结 本文就java基础部分容易混淆的一些知识点进行了一下总结。因为Java本身知识点非常多,不可能在很短的篇幅就能叙述完,而且就某一个点来讲,如欲仔细去探究,也能阐述的非常多。这里不做全面仔细的论述,仅做为一个引子,抛砖引玉。具体个例,还需各位看官自己验证一下,以增进理解和记忆。 这下面的一些是我当初在过Sun公司的程序员认证的时候仔细学习指定教材SL-275时自己做的一些总结,也有后来在不同公司面试求职者或去求职时在不同公司看到的一些试题所涉及部分知识点。拟将来时间将求职笔试和面试java试题这一部分做个专题总结,希望能做到。 欢迎就这一部分各位

2、朋友与我进行探讨,共同进步。1、虽然有很多朋友可能进行了多年的java开发老手,但可能仍旧对某些点缺乏仔细探究。2、去一些公司求职面试或笔试时的技术题目中,也往往会涉及到这里的一些内容。 所以,希望下边的这些总结能够对一些学习java或求职的朋友有些许帮助。1、 关于java类中的缺省的构造器 如果一个java类没有显式定义没有参数的构造器,将有一个默认缺省的构造器。如果定义了一个有参数的构造器,那么原来的缺省的构造器将不在有效。public class A 此时如果用 new A(); java编译器将使用缺省的构造器。public class A public A(int i) 如果此时用

3、 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 .

4、*并不影响性能4、Java中的几个特殊关键字 Java中的关键字许多大家都比较熟悉,而有几个就不是很常用,如: 1、goto和const是保留关键字,在java中没使用 2、strictfp和volatile不常用; sizeof、zhen不是关键字。 3、true,false,null不是严格意义上的关键字,而是literals。5、java方法中的传递值参 在Java方法中传递参数,对于基本类型来讲传递的是值参数,相当于建立的一个参数的拷贝,不影响原来变量的值。 在引用方法中可以改变传递对象的内容,但对象引用(像A5d87b2)从来不会改变。public class tt public s

5、tatic void main (String args) A aa = new A(); aa.num =5; tt t = new tt(); System.out.println(11 aa=+aa + num=+aa.num); t.test(aa); System.out.println(22 aa=+aa + num=+aa.num); void test(A a) A ab = new A(); a = ab; System.out.println(33 ab=+ab + num=+ab.num); class A int num; 6、变量初始化 java中的变量在使用之前必须

6、被初始化,当创建一个对象的时候一些类的变量会自动初始化并赋予缺省值。 数字类赋值0;char类型赋值u0000; boolean类型赋值false;引用对象赋值null; 注意的是在方法之外的类变量的值是自动赋初始值,而方法内的局部变量必须手工初始化。 class AA int num; void test() int j; j =5;/没有这一行则编译不会通过。 j = j+num; 7、switch语句 这个点经常在求职笔试题目中出现。default放在最上边编译没问题;碰到符合分支的,如果没有break会一直向下运行。 public class tt public static void

7、 main (String args) tt t = new tt(); t.test(2);/可改变成3运行一下看一下结果 void test(int i) switch (i) default: System.out.println(default); case 1: System.out.println(111); break; case 2: System.out.println(222); break; 8、关于java中的label使用 break label continuelbele lable: statement; /这里的statement必须是一个loop循环publi

8、c class tt public static void main (String args) tt t = new tt(); t.test(); void test() System.out.println(0000); lb1:for (int i=0;i10;i+) lb2:for (int j=0; j2; j+) if (i=2) continue lb1; System.out.println(i=+i + j=+j); System.out.println(111111); 9、类型转换校正 class Employee | class Manager 向上校正,总是允许的,

9、Manager直接使用父类Employee的方法。 向下校正,必须用instanceof检验,才能将一个Employee转换为Manager对象。public void test(Employee e) if (e instanceof Manager) Manager m = (Mnager)e; . 10、方法重载(overloading)、方法覆盖(overriding) 方法重载(overloading)一定要求名字相同,参数不同,返回类型可以相同也可以不同class A void test(int i) class AA extends A int test(int i, int j

10、) return 5; 注:方法覆盖(overriding)要求名字,参数,返回类型全部必须相同,访问控制符可以不同,但必须大过父类的。因为如果名字和参数都已经相同了则一定要求返回类型相同,否则认为这是一个新的方法了,名字就必须不同了。class A void test(int i) class AA extends A public void test(int i)/若是换成private则编译不通过。 注:关于覆盖方法抛出异常的问题。如A是父类,B是继承A的子类。B中的方法meth()去覆盖父类A的此方法时,B中不能throws出新的异常,只能是父类抛出的异常或其子集。更甚至可以不抛出异常

11、。 11、关于类的构造器重载问题class A public A(int i) class AA extends A public AA() int i = 5; / 这里出错,没有父构造器 由于父类A自定义了构造器,所以缺省的构造器就丢失了,当子类的构造器自动试图调用父类没参数的构造器时却没有,所以会编译出错。 12、关于static关键字总结: 1、不能在static修饰的方法中引用this变量,只能引用一些静态变量或方法,或new新的对象(可以定义局部变量)。 简言之,静态方法或块中,只能引用静态的方法或变量。 2、类中的成员变量(static修饰)有缺省值,而类的定义的方法中的局部变量

12、没有缺省值。 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修饰的变量,若没赋值,必须在构造器中赋初始值。class A final int j; public A(

13、) j = 9;/若没有此行,则编译不通过。 3、final类型的方法参数可定义,但不能改变。class A void m(final int i) /这一行的声明i为一个final没问题。 i + ; /但在这里面,i的值不能再被改变。 14、Interface接口关键字 1、接口中的变量 1、必须初始化其值。 2、默认修饰符为public+static+final,其他的修饰符不允许。 2、接口中的方法 1、默认为public+abstract 2、其它修饰符 static,private,protected,final,synchronized,native均不能有。interface

14、A void s();class AA implements A void s() /编译器在这里提示由于接口中的方法s()修饰符默认是public, /而这里的s()默认是protected,小于public所以不允许。 15、abstract抽象关键字abstract class A private int i; private void m(); 抽象类中可以有私有的变量和私有属性,而接口就不行(原因如上), 这是因为java是按实例虚拟调用的,在生成某一个具体的对象可以有私有的属性或方法的。abstract class A private int i; private void m()

15、; public abstract void n();/若是private则编译不通过。 抽象类中的抽象方法是让其他类继承的,如果本身都是私有的,就没有什么意义了 16、集合类型以有无顺序,允许不允许重复区分 Collections: 一组对象,无序集合,允许重复 Set:无序集合,不允许重复 List:有序集合,允许重复 注意:在JDK1.1中定义的集合类型,都是线程安全的,所以都是“重量级”的。像HashTable,Vector 而在java2中定义的一些新的集合类型如HashMap, ArrayList不是线程安全的,是“轻量级”的,但速度快,性能好。这一点在许多公司面试试题都见过。 1

16、7、布局管理器 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(),paint(g) 19、面试试题中线程部分 1、

17、基本实现方式两中,继承Thread类和实现Runnable接口 2、必须实现父类或接口中的run()方法。 3、有关线程方法,start()启动线程。 join()指在调用这个线程的方法或进程中,必须等待此线程运行结束才能继续其他进程。 4、线程中的同步synchronized,注意死锁。 20、对象串行化 1、仅仅对象类型的数据可以串行化。 2、标记为transient的数据不可以串行化。 存储一个对象到某种永久性存储叫persistence,如存储到磁盘、磁带或别的机器的内存中。 java.io.Serializable接口没有定义方法要实现,仅仅是一个标记暗示实现了这个接口的类可以被考虑

18、串行化。没有实现这个接口的对象不能保存或存储它们的状态。 当一个对象被串行化的时候,仅仅数据被保留,而方法和构造器不是串行化的部分。 一些对象类是不能串行化的因为他们代表的数据是经常变化的。如java.io.FileInputSream和java.langThread。如果串行化的对象包含了不可串行化的对象,整个串行化动作会失败,并抛出NotSerializableException。 21、java中的网络通讯 一般的TCP/IP网络数据通信主要可分2种,TCP和UDPTCP:TCP是面向连接的通信协议,就像打电话,先要拨通建立连接,传送的数据不会丢失。 java提供了ServerSocke

19、t和socket类。在server端,建立一个serverSocket,并指定端口,并侦听连接。服务器端代码ServerSocket sc=new ServerSocket(1111);Socket socket1= sc.accept();DataInputStream s_in = new DataInputStream(socket1.getInputStream();客户端代码Socket socket2 = new Socket(192.168.1.1,1111);UDP:UDP非面向连接,就像写信,将传输的数据包成一个分组,可能有数据丢失服务器端代码DatagramSocket s

20、erver = new DatagramSocket(1234);DatagramPacket in_packet =new DatagramPacket(in_buf,2000);server.recieve(in_packet);客户端代码DatagramSocket client= new DatagramSocket(1235);DatagramPacket out_packet= new DatagramPacket (out_buf,100,192.168.1.1,1234);client.send(outPacket); 22、String对象 一般讲来创建的两个对象如果用=来比

21、较肯定是不等的,因为他们的引用地址是不同的,而=是对于对象来讲是比较对象地址的。但对于String对象来讲是一个例外,两个String对象如果值相同,=比较也是相同的。我想这可能与Sun公司对String对象定义有关。public class tt public static void main (String args) tt t = new tt(); t.test(2); void test(int i) String s1 = 123; String s2 = 123; if (s1=s2) System.out.println(111111); else System.out.println(2222222); 结果输出:111111 s

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1