现在的位置: 首页 > 综合 > 正文

8月19日Java培训小结

2018年04月06日 ⁄ 综合 ⁄ 共 990字 ⁄ 字号 评论关闭

  作为Java特有的垃圾回收机制(本文简称GC),在判断一个对象是否可以回收主要通过两种方法:第一种是使用对象引用计数器,当对象被引用,计数器会自增1,对象引用被销毁后,计数器会自减1GC会每隔一段时间会查看对象的计数器是否为0,如果对象的计数器是0GC就会将其回收。第二种方法是对象的引用遍历,GC每隔一段时间会去检查对象的引用,如果对象的引用存在,那么这个对象就会被标记,内存中所有的对象被遍历完了之后,没有被标记的对象就会被GC回收。我们可以通过system.gc()GC提交执行回收的请求。

  在Java的方法中传递参数的类型有两种,一种是值类型,一种是引用类型。值传递的类型是基础数据类型。在Java中除了基础数据类型以外的都是引用类型。

  面向对象中的三大要素:继承、封装、多态。

  封装主要功能是限制类的访问权限。Java中的访问修饰符有四种:publicprotecteddefaultprivate。其中,被protected修饰的类可以被不同包下的子类访问。

  继承主要是实现代码的重用性。接口的使用主要的为了减低耦合。抽象类和接口都是不可以实例化的。抽象类是指带有一个或一个以上的虚方法。当抽象类被继承时,所有的虚方法都必须被重写,如果存在没有被重写的虚方法,那么这个类也必须是一个抽象类。

  多态主要体现在方法的重写、重载,还有动态链接。当子类继承一个父类时,可以对父类的方法进行重写。也可以对父类的方法进行重载,重载是指方法名相同,但是传递参数的类型不同,或者是传递参数的个数不同,或者是返回值不同的一个方法。动态链接可以简单的理解为:当使用子类实例化父类时,如果在子类中有对父类的方法进行重写,那么此时实例化调用的方法是子类重写的方法。

  递归是编程中常用的一种技巧,一个递归需要符合两个条件,1是边界值,2是自己调用自己。在Java中使用递归时,递归是产生的对象是不会释放的,也就是说,当递归的层次过深是,会出现内存溢出。这个时候要么就是减少递归的层次,要么就不用递归。所有的递归都是可以用其他的方法代替的。递归通常的情况下多用于求值计算。

  线程安全指的是由于多线程的不确定性而产生的数据遗失等问题。多线程无疑是可以提高性能,但是考虑到线程安全又必须加锁,但是加锁必然会到时性能下降。线程同步的方法synchronize是不可停止的。

抱歉!评论已关闭.