Java面向对象基础知识复习.docx_第1页
Java面向对象基础知识复习.docx_第2页
Java面向对象基础知识复习.docx_第3页
Java面向对象基础知识复习.docx_第4页
Java面向对象基础知识复习.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习1保留字 goto2.标识符 数字、字母、下划线、$组成,不能以数字开头,不能使用关键字或保留字,不能包含空格,不能包含除$以外的符号,不能包含中文起名规范:包名:所有字母小写:aaabbbccc 类名/接口名:所有单词首字母大写:AaaBbbCcc 变量名/函数名:第一个字母全小写,后面单词首字母大写:aaaBbbCcc 常量名:所有字母大写,单词之间用下划线连接:AAA_BBB_CCC3.基本数据类型、字节数、大小、包装类byte 1字节 27-1 Byte short 2字节 215-1 Shortint 4字节 231-1 Integerlong 8字节 263-1 Longfloat 4字节 231-1 Floatdouble 8字节 263-1 Doublechar 2字节 215-1 Characterboolean 1位 Boolean4.a+、+ab=a+:temp=a,a=a+1,b=temp b=+a:a=a+1,b=a5.&和&的区别&:无论左侧结果是什么,两侧都需要进行运算&:当左侧为false时,右侧不参与运算6.最有效的方式计算2乘以8 2String:String.valueOf String-基本数据类型:包装类.parseXXX 如:(String-int:Integer.parseInt)24.数组和集合的区别1.长度是否固定:数组长度固定;集合长度可变2.能否保存映射关系:数组可以保存映射关系:张三-北京;集合可以map3.是否可以保存基本数据类型:数组既能保存基本数据类型,也能保存对象;集合可以保存一个对象User,要保存基本类型只能保存包装类4.是否有方法:数组没有方法;集合有方法25.ArrayList、Vector和LinkedList的区别1.线程安全:Vector线程安全;ArrayList线程不安全2.存储结构:Vector和ArrayList是数组结构;LinkedList是链表结构3.效率:ArrayList改查快,增删慢;LinkedList改查慢,增删快26.MyArrayListpublic class MyArrayList /定义一个数组存储数据 private Object data; /定义大小 private int size; public MyArrayList() data=new Object10; /实现add方法 public void add(Object obj) if(size=data.length) /扩容 data=Arrays.copyOf(data, data.length*2); datasize+=obj; /完成扩容 public void ensureCapity() /判断是否越界 if(size=data.length) /扩容 /1.创建一个新的数组 Object newData=new Objectdata.length*2; /2.把原有的数据拷贝到新的数组 for (int i = 0; i data.length; i+) newDatai=datai; /把data指向新的数组 data=newData; 27.final修饰类、方法、属性修饰类:类不能被继承修饰方法:方法不能被重写(覆盖)修饰属性:属性变成一个常量,常量不能被更改或重新赋值28.final修饰属性若要重新赋值1.直接等于某个值2.在构造函数中指定3.在代码块中指定29.什么是抽象类,什么是抽象方法被abstract修饰的类是抽象类,被abstract修饰的方法是抽象方法抽象类可以有抽象方法,也可以有普通方法抽象方法不能有方法体:pubic abstract void f1();普通方法可以调用抽象方法抽象类不能有自己的对象,即不能被new抽象类中定义的方法需依赖子类实现,定义的抽象方法在子类实现时必须实现抽象类中的全部方法abstract能修饰类和方法,不能修饰属性30.接口和抽象类的异同共性:两者都不能有自己的实例化对象区别:抽象类能提供方法的声明,接口不可以 抽象类只能是单继承,接口可多实现 抽象类中定义的变量就是变量,接口中定义的变量是常量31.HashMap和TreeMap的区别,比较倾向于使用哪一个一个平衡树的性能是O(logn)。Java里的TreeMap用一个红黑树来保证key/value的排序。红黑树是平衡二叉树。保证二叉树的平衡性,使得插入,删除和查找都比较快,时间复杂度都是O(log n)。不过它没有HashMap快,HashMap的时间复杂度是O(1),但是TreeMap的优点在于它里面键值是排过序的,这样就提供了一些其他的很有用的功能。使用无序的HashSet和HashMap,还是使用有序的TreeSet和TreeMap,主要取决于你的实际使用场景,一定程度上还和数据的大小以及运行环境有关。比较实际的一个原因是,如果插入和更新都比较频繁的话,那么保证元素的有序可以提高快速和频繁查找的性能。如果对于排序操作(例如产生一个报表合作者运行一个批处理程序)的要求不是很频繁的话,那么把数据以无序的方式存储,然后在需要排序的时候用Collections.sort(?)来进行排序,会比用有序的方式来存储可能会更加高效。这个只是一种可选的方式,没人能给你一个确切的答案。即使是复杂度的理论,例如O(n),成立的前提也是在n足够大的情况下。只要在n足够小的情况下,就算是O(n)的算法也可能会比O(log n)的算法更加高效。另外,一个算法可能在AMD处理器上的速度比在Intel处理器上快。如果你的系统有交换区的话,那么你还要考虑磁盘的性能。唯一可以确定的性能测试途径是用大小合适的数据来测试和衡量程序的性能和内存使用量。在你所选择的硬件上来测试这两种指标,是最合适的方法。32.HashMap和HashTable的去呗1.继承:HashMap:继承于AbstractMap;HashTable:继承于Dictionary2.线程安全:HashMap线程不安全;HashTable线程不安全3.null:HashMap允许key和value为null,但key值只能有一个null,否则会覆盖;HashTable不允许key或value为null33.final、finally和finalize的区别final:修饰符(关键字)如果一个类被声明为final,意味着它不再派生出新的子类,不能作为父类被继承,因此一个类不能既被声明为abstract又被声明为final,将变量或方法声明为final,可以保证它们在使用中不被改变,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改,被声明为final的方法也同样只能使用,不能重载finally:在异常处理时提供finally块来执行任何清除操作,如果抛出一个异常,那么相匹配的catch语句就会执行,然后控制就会进入finally块finalize

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论