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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

61. 基本的IO流有哪些?
字节流:InputStream、OutputStream、FileInputStream、FileOutputStream
字符流:Writer、Reader、FileWriter、FileReader
高效字节流:BufferedInputStream、BufferedOutputStream
高效字符流:BufferedWriter、BufferedReader

最开始的时候,只有字节流,但是后来由于中文字符或者其他字符的出现,用两个字节才能表示
如果用字节流也是可以读写字符文件的数据的,但是比较麻烦。为了简化这种操作,就提供了字符流

62. flush()和close()的区别?
flush() :        刷新缓冲区,流对象还可以继续使用
close() :        释放流资源,但是会先刷新一次缓冲区,操作完毕后,流对象不可以再使用

63. 什么是多线程?进程和线程的区别是什么?
多线程就是应用程序的多条执行路径
进程:正在运行的应用程序,每个进程的具备独立的运行空间
线程:是进程的执行单元,执行路径。如果是多个线程,那么,这多个线程共享同一个进程资源

64. 启动线程调用的是run()还是start()方法?run()和start()的区别是什么?
启动线程调用的是start()
        run()封装了被线程执行的代码,start()是启动线程并调用run()方法

65. 多线程有几种实现方案?分别是什么?如何操作?
        多线程有两种实现,分别是:
        1、继承Thread类
                自定义类继承Thread类,在类中重写run()方法,测试类中创建自定义类对象,并调用start()方法
        2、实现Runnable接口
                自定义类实现Runnable接口,重写run()方法,测试类中创建自定义对象,
                创建Thread对象,把自定义对象作为构造参数传递。调用Thread类的start()方法。

66. 线程的生命周期?
        新建:        创建线程对象
        就绪:        具备cup执行资格,没有执行权,随时准备执行
        运行:        具备执行资格,执行权,执行run()中的代码
        堵塞:        是当线程运行到符合某个我们定义的条件时,它会停止下来等待唤醒
        死亡:        run()结束了

67. 多线程为什么会出现安全问题?怎么解决呢?
如果满足以下条件,那么就会出现安全问题:
                1、是多线程程序。
        2、有共享的数据。
                3、针对共享数据有多条语句操作。
只要我们把多线程环境中,把操作共享数据的操作,变成单线程就没有问题了
Java针对这种情况,就提供了同步技术:
        A:同步代码块
                B:同步方法
        C:JDK5以后的Lock锁

68. 同步的锁对象分别是?
        代码块                :        任意对象
        方法                :        this
        静态方法        :        类名.class

69. sleep()和wait()的区别?
        sleep()        :        必须指定时间,不释放锁对象
        wait()        :        可以指定时间,也可以不指定。释放锁对象

70. 线程死锁是什么,为什么有死锁,怎么解决死锁?
为了解决程序因占用资源,出现资源争抢,而出现的程序进入等待的状态(死锁)
举例:
有A和B两个线程,有CD 两把锁, A和B嵌套CD锁,A线程中有C,D锁,B线程中有D C两把锁,当两个线程运行时,就可能会出现死锁导致程序停滞的情况
解决:
真正意义上来说,死锁是不能被解决的,死锁是多线程中的一个需要避免的重大的问题,当我们在编写程序时,可以给共享的资源加上另外一个把锁,控制资源的动态,同时可以设置线程的优先级使线程之间协调合理的利用CPU的时间
71. 线程间的通信是什么?
        不同种类的线程针对同一个资源的操作

72. 什么是网络编程?
        用编程语言来实现计算机的资源共享和信息传递,就叫做网络编程

73. 网络通信三要素是什么?
        1、IP地址
                计算机在网络中的唯一标识
                现在使用的是:"点分十进制"
        2、端口
                应用程序的的标记
        3、协议
                通信的规则

74. UDP和TCP的区别?
        UDP : 不建立连接,数据打包传输,数据有限制,数据不可靠,速度快
        TCP : 建立连接,数据无限制,数据可靠,速度慢

75. 反射是什么?反射获取字节码文件的三种方式?反射的好处?
        在运行状态下,通过class文件对象(Class的对象),去使用构造方法,成员变量,成员方法。就是反射
3种方法:
            1、用Object类的getClass方法得到
        2、用任意数据类型的静态class属性可以得到
        3、用Class类的静态方法forName(String className)方法得到
好处:
只要有一个类或者一个类的对象,就可以得到这个类或对象的所有属性和方法。包括私有的

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马