黑马程序员技术交流社区

标题: 自己总结的Java基础知识与概念 [打印本页]

作者: 18664300701    时间: 2015-9-4 13:03
标题: 自己总结的Java基础知识与概念
15 wait和sleep区别: 分析这两个方法:从执行权和锁上来分析:
        wait:可以指定时间也可以不指定时间。不指定时间,只能由对应的notify或notifyAll来唤醒。
        sleep:必须指定时间,时间到自动从冻结状态转成运行状态(临时阻塞状态)。
        wait:线程会释放执行权,而且线程会释放锁。
        sleep:线程会释放执行权,但是不会释放锁。  

16 run和start的区别?
        run仅仅是封装被线程执行的代码,直接调用是普通方法
        start首先启动了线程,然后再由JVM去调用该线程的run方法

17 说说对线程池的理解
        程序启动一个新线程成本比较高,因为涉及到要与操作系统进行交互,
        而使用线程池就可以很好的提高性能,尤其是当程序要创建大量
        生存期很短的线程,更应使用线程池
       
        线程池里的每一个线程代码结束后,并不会死亡,而是再次
        回到线程池中成为空闲状态,等待下一个对象来使用

18 同步和异步的区别?
        同步是指线程安全,但是效率低。集合里面比如Vector以及Hashtable就是线程安全的
        异步是指线程不安全,但是效率高。集合里面比如ArrayList、TreeSet、TreeMap等都是线程不安全的




七 网络编程(Socket)

1 网络编程三要素?
①IP地址:网络中每一台计算机的唯一标识
②端口:用于标识进程的逻辑地址
③协议:定义通信规则

2 TCP和UDP的区别?
UDP:
        1 将数据源和目的地封装成数据包中
        2 不需要建立连接
        3 每个数据报的大小限制在64KB
        4 因无连接,是不可靠的协议
        5 不需要简历连接,速度快
TCP:
        1 建立连接,形参传输数据的通道
        2 在连接中进行大数据量传输
        3 通过三次握手完成连接
        4 是可靠协议
        5 必须建立连接,效率会稍低









偏门问题:
ArrayList底层怎么实现的?
        底层是数组,默认长度为10,当加入的元素个数大于数组长度时,才会创建新的数组

集合为什么只能存放引用类型?
        因为集合中存放的都是对象的引用,实际内容都在堆上面或者方法区里面,但是基本数据类型是在栈上的。但是通过自动包装类就可以把基本类型转为对象类型。

包装System.in/System.out?
        三种方法:字节流一种,字符流一种,缓冲流一种
1        BufferedOutputStream bos = new BufferedOutputStream(System.in);
        BufferedInputStream bis = new BufferedInputStream(System.out);
2        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamReader(System.out));
3        OutputStreamWriter osw = new OutputStreamWriter(System.out);
        InputStreamReader isr = new InputStreamReader(System.in);       
       
java的特点是什么?
跨平台,只要这个平台有JAVA虚拟机
简单易用、安全可靠,使用率排第一


作者: liuwuzhou    时间: 2015-9-8 13:03
很厉害, 很有帮助, 谢谢你
作者: 0819刘海东    时间: 2015-9-8 21:02
虽然还没学到,不过当提前学习了
作者: 技术人生    时间: 2015-9-8 21:31
顶楼主,希望楼主早日成功。
作者: 王鲁悦    时间: 2015-9-8 21:44
非常厉害




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2