java基础知识刷题总结

final刷题总结:

final修饰变量(属性):
1、final修饰变量能被显示地初始化并且只能初始化一次;final修饰符通常和static修饰符一起使用创建类常量。
2、final关键字修饰一个变量时等同于常量,引用变量不能变(不能被再次赋值),引用变量所指向的对象中的内容还是可以改变的。

final修饰类:
1、final修饰的类是最终类,final类不能被继承和改写。
2、final不能修饰抽象类,抽象类一般都需要被继承
3、final类的方法能否被同一个包的类访问不是final决定

final修饰方法:
1、final修饰的方法可以被重载但不能被重写
2、final修饰的方法中的参数,称为最终参数

抽象类刷题知识点总结:

抽象类:
1、抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
2、抽象类可以不包含抽象方法,但是有抽象方法的类一定要声明抽象类。(只要包含一个抽象方法的类,该类必须要定义成抽象类,不管是否还包含有其他方法。)
3、抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
4、构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
5、抽象类的子类必须给出抽象类中的抽象方法的具体实现(抽象方法必须由子类来进行重写),除非该子类也是抽象类。
6、抽象类不允许多继承
7、抽象类可以有构造函数
8、abstract 不能与private、static、final或native并列修饰同一个方法。
9、定义的抽象方法没有实体时候,大括号必须省略。
10、JDK 1.8以前,抽象类的方法默认访问权限为protected
JDK 1.8时,抽象类的方法默认访问权限变为default
抽象类和接口区别和联系:
1、抽象类中可以有普通成员变量,接口中没有普通成员变量。
2、抽象类和接口中都可以包含静态成员常量。
3、一个类可以实现多个接口,但只能继承一个抽象类
4、抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。(JDK1.8后,接口中可以有静态方法,静态方法必须有方法体
5、一个抽象类可以是public、private、protected、default, 接口只有public;
6、一个抽象类中的方法可以是public、private、protected、default, 接口中的方法只能是public和default
7、抽象类可以含有私有成员变量,接口不含有私有成员变量。

HashTable和HashMap的区别

1、Hashtable 是一个哈希表,该类继承了Dictionary,实现了map接口。(Dictionary->Hashtable->Properties)
2、Hashtable 线程安全的,而 HashMap 是线程不安全的
3、HashTable使用Enumeration,HashMap使用Iterator
4、HashMap允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。
5、HashMap 是内部基于哈希表实现,该类继承AbstractMap,实现Map接口
6、HashMap的数据结构是怎样的:数组+链表
7、HashMap实现Map接口,它允许任何类型的键和值对象,并允许将NULL用作键或值 一个null

ArrayList和LinkedList

1、ArrayList和LinkedList均实现了List接口
2、ArrayList访问速度比LinkedList快
3、ArrayList线程不安全的,允许存放重复对象
4、ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构
5、对于随机访问get和set,ArrayList优于LinkedList,因为LikedList要移动指针
6、对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
7、ArrayList的空间浪费主要体现在在list列表的结尾预留一定的容量空间,而LinkedList的空间花费则体现在它的每一个元素都需要消耗相当的空间。

构造函数

1、构造方法的方法名必须与类名相同。
2、构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
3、构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
4、一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
5、构造方法可以重载,以参数的个数,类型,顺序,因此构造器可以有0个,1个或一个以上的参数

重载和重构

重载是一个类中多态性的一种表现;重写是父类与子类之间多态性的一种表现

重载的规则:
1、必须具有不同的参数列表;
2、可以有不同的返回类型,只要参数列表不同就可以;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常;
5、方法能够在一个类中或者在一个子类中被重载。
重写的规则: 两同,两小,一大
1、方法名相同
2、参数类型相同
3、子类返回类型小于等于父类方法返回类型
4、子类抛出异常小于等于父类方法抛出异常
5、子类访问权限大于等于父类方法访问权限。

其他

1、实现了GBK编码字节流到UTF-8编码字节流的转换
dst=new String(src,“GBK”).getBytes(“UTF-8”)
2、局部类可以用哪些修饰符修饰: abstract 和 final
3、Math中的round方法,求的值就是取小于等于(参数+0.5)的最大整数。
4、java8中,忽略内部接口的情况,不能修饰interface里的方法的有:private protected
5、什么操作会使得当前线程停止?
1)、一个异常抛出,或导致线程停止(An InterruptedException is thrown)
2)、线程执行了wait()方法。线程使用了wait方法,会强行打断当前操作,(暂停状态,不会中断线程) 进入阻塞(暂停)状态,然后需要notify方法或notifyAll方法才能进入就绪状态。
3)、线程在MediaTracker上执行了waitforID()调用,

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值