A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

12:访问控制符
        公开:public 同类 同包 子类 不同包 所以人都可访问
        默认:defualt 只向同包同类放开     同一个包中都能访问
        私有:private 只有当前类可以访问       
        保护:protected  同包都能访问,不同包的子类可以访问
--------------------------------------------------------------
13:接口能继承类吗?接口和抽象类、说说接口和抽象类的特征和区别
        成员区别:
                抽象类 可以有变量,常量,有抽象方法和非抽象方法
                接口:只能是常量,和抽象方法
        关系的区别:
                类与类:单继承,可以多层继承
                类与接口:单实现或者多实现
                接口与接口:继承关系,可以多继承
        设计理念的区别:
                抽象类被继承体现的是"is a "的关系,是共性关系
                接口被实现体现的是“like a”的关系,扩展功能
--------------------------------------------------------------
14:介绍一下io、IO流的体系和理解、如何使用字节流的?什么时候会用到转换流呢?
IO流的flush和close方法的作用和区别、请说明字符流和字节流的区别在哪儿?
readLine实现的机制是什么?
         bufw.flush();//仅对缓冲区进行刷新,可以让数据到目的地中。刷新之后流对象还可以继续使用。

        bufw.close();//关闭流对象,但是先刷新一次缓冲区,关闭之后流对象不能再使用
                       
                        1.让流变成垃圾这样就可以被系统回收
                        2.通知系统去释放该文件相关的资源
        flush()是刷新流,把流中数据存进目标,close()是关闭流资源

         //readLine
        底层原理还是read方法,先读取字符将字符存入一个字符数组,
        读取到换行标志:换行“\n”,回车“\r”或者回车后直接换行,就将字符数组转成字符串返回
        包含改行内容的字符串,不包含任何终止符,如果已达到末尾,返回null
       
        字符流=字节流+编码表
--------------------------------------------------------------

17:线程通信的理解、线程的状态、为什么会有多线程的安全问题、
多线程安全问题的解决办法、创建线程有几种方式,那种方式比较好,
为什么、同步的前提、说说你对死锁的理解
       
        同步的前提:必须是多线程。操作一个共享数据,该数据被多条语句操作
        同步:效率低,如果出现嵌套同步,就容易产生死锁
        死锁:指俩个或者以上的线程在执行过程中,因为
                争夺资源产生的一种互相等待现象


        run:仅仅是封装了被线程执行的代码,直接调用的普通方法,
        start:首先启动了线程,然后由jvm去调用该线程的run()方法       
        线程状态:
                新建:start()
                运行:具备执行资格,同时具备执行权;
                冻结:sleep(time),wait()—notify()唤醒;线程释放了执行权,同时释放执行资格;
                临时阻塞状态:线程具备cpu的执行资格,没有cpu的执行权;
                消亡:stop()

        创建线程的第一种方式:继承Thread ,由子类复写run方法。
                第二种方式:实现一个接口Runnable
                   步骤:
                        1,定义类实现Runnable接口。
                        2,覆盖接口中的run方法(用于封装线程要运行的代码)。
                        3,通过Thread类创建线程对象;
                        4,将实现了Runnable接口的子类对象作为实际参数传递给Thread类中的构造函数。
                           为什么要传递呢?因为要让线程对象明确要运行的run方法所属的对象。
                        5,调用Thread对象的start方法。开启线程,并运行Runnable接口子类中的run方法。
                                Ticket t = new Ticket();
        实现接口的好处:避免了java单继承带来的局限性,适合多个相同的代码去处理同一个资源,
                        把线程和程序的代码,数据有效分离,较好的体现了面向对象的设计思想。
        安全问题产生原因:多个线程操作一个拥有多条语句的共享数据,产生数据混乱
        解决:加上同步

4 个回复

倒序浏览
666666666666666666666666
回复 使用道具 举报
牛!!!!!!!!!!!!!!!1
回复 使用道具 举报
看一看。。。。。。。
回复 使用道具 举报
要好好学一下这一块,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马