static修饰的每次实例化对象,static修饰的方法,或者变量都会执行一次!
final修饰的值,不能改变引用 但是可以改变它的值!
Abstract不能进行实例化操作,只能进行进程和扩充
Synchronized修饰的方法,在同一个时间只能有一个线程访问
Transient修饰的变量不会持久化,只是预处理StringBuilder 和StringBuffer的区别是Buffer是线程安全的,而Builder是线程不安全的。但是
Buffer的执行效率没有Builder的高。for循环
for循环,通过下标,对循环中的代码反复执行,功能强大,可以通过index取得元素。在处理比较复杂的处理的时候较为方便。
foreach循环
foreach,从头到尾,对于集合中的对象遍历。适用于简单的遍历。foreach使用的时候,会锁定集合的对象,期间不能进行修改。
使用的选择
foreach相对于for循环,代码减少了,但是foreach依赖IEnumerable。在运行的时候效率低于for循环。当然了,在处理不确定循环次数的循环,或者循环次数需要计算的情况下。使用foreach比较方便。而且foreach的代码经过编译系统的代码优化后,和for循环的循环类似。throw 和 Throws ,throws只是往外抛出异常,处理交给父类进行处理,只是往外抛出异常。throw单单注重一个动作,只是把异常抛出去.
在try catch finally 如果try程序中出现system.exit(0);则不会执行finally语句。如果try里面出现return则会先执行finally里面的语句,然后才会执行return语句!
声明抽象方法会造成以下两个结果:
如果一个类包含抽象方法,那么该类必须是抽象类。
任何子类必须重写父类的抽象方法,或者声明自身为抽象类接口的实现
当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键子。
接口中的方法都是公有的。
在Java中,类的多重继承是不合法,但接口允许多重继承,。继承最大的弱点是:
打破封装;解决办法是如果不想被子类继承的方法可以吧方法设置成final组合和继承的区别是:组合创建的类比较多,但是可以调用组合类的自由方法;继承虽然使用方便,但是容易打破封装,而且类一旦私有化,就不能使用!组合比继承更适合类的维护和扩展
看书笔记!
最新推荐文章于 2021-02-10 14:12:53 发布