码迷,mamicode.com
首页 > 编程语言 > 详细

java上课提问记录

时间:2018-08-12 21:33:22      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:就是   notifyall   安全   内容   timertask   原理   不同的   notify   timer   

1、单例设计模式,适配器设计模式
单利设计模式: 
    在java中,单例模式是指为了保证类在内存中只有一个对象,而形成的一种固有的代码模式!
适配器设计模式:
    在java中,适配器设计模式是指为了监视某些行为,但是对于每种监听到的行为又有不同的处理,为了能够让监听者自行来处理监听到指定行为后,要做的后续操作,而形成的一种固有的代码模式!

适配器标准课上答案:

    * a.什么是适配器
        * 在使用监听器的时候, 需要定义一个类事件监听器接口.
        * 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
        * 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
    * b.适配器原理
        * 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
        * 适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的
        * 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.

2、饿汉式和懒汉式的区别

使用场合:
    饿汉式:    开发用
    懒汉式:    面使用,开发一般不用
思想:
    饿汉式:    类一加载就生成对象。
    懒汉式:    在调用获取对象的方法的时候生成。
实用性:
    饿汉式:    安全,效率高。相对懒汉式会在未使用之前就占用内存。
    懒汉式:    存在线程安全漏洞,可以利用同步解决,但是效率会变低。内存方面符合了编程中的延迟加载思想。(在面试中面试官会比较希望答出这一点)

3、Timer类是干嘛的

Timer类是计时器。
一般的使用过程是在Timer类的schedule()方法中传入两个参数,一个TimerTask的子类对象,在这个子类对象中规定了计时结束的操作,另一个java.util.Date类的对象,其参数指定了计时的开始时间和循环周期,

4、wait和sleep的区别

sleep方法:定义在Thread类中,让线程在指定时间内处于休眠状态,超时后继续向下执行,休眠的线程不会释放锁资源。
wait方法 :定义在Object类中,让以当前对象为监视器的线程处于阻塞状态,不可获取执行权,在得到notify或者notifyAll的通知后再继续抢夺执行权。等待的线程会释放锁资源。

5、线程的生命周期(五中状态的切换流程)

线程分为5个生命周期,新建,就绪,运行,阻塞,死亡
其中:
    新建代表线程在内存中创建,对应start方法。
    就绪代表线程拥有抢夺执行权的资格,如果抢到就会执行线程中的内容
    运行代码线程中的内容正在执行。
        a:若被抢走执行权,回到就绪状态
        b:若执行ssleep、wait等方法,会进入阻塞状态。
    阻塞代表线程被强制不可进入就绪状态,对于非就绪状态的线程是没有机会抢夺执行权,也就更不可能进入运行状态了。
    死亡代表线程运行结束,也可能是被强制结束,一般不建议使用。

java上课提问记录

标签:就是   notifyall   安全   内容   timertask   原理   不同的   notify   timer   

原文地址:http://blog.51cto.com/357712148/2158400

(1)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!