您的位置:首页 > 职场人生

面试题及解答

2017-12-15 08:31 120 查看
0、自我介绍

1、Java中的集合类有哪些了解呢?

2、项目中用到过哪些缓存?

3、ArrayList和LinkedList的区别?

4、linux了解怎么样。各个用户之间的权限了解吗 ?

5、手写代码:求两个链表相交。

6、新建线程的方式,有什么区别

7、Thread的run方法和start方法的区别是什么?

8、怎么关闭线程?

9、TCP为什么是三次握手和四次挥手?

10、TCP和UDP区别?

11、聊聊你的项目经验,最大的成就感是什么?

1.



2. 本地缓存:ehcache

    分布式缓存:redis、memcached(KV缓存)

3. 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于双向链表的数据结构。 
     2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
     3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

4.root用户:超级管理员,#开头。

   普通用户:默认家目录所有者权限,其他目录或文件权限依据umask。

   umask值一般为022,文件755,目录644

5.http://blog.csdn.net/derrantcm/article/details/47855991

6.1.新建类,继承Thread类,重写run方法

   2.实现Runnable接口,重写run方法  new Thread(Runnable r).start()。

   3.实现Callable接口,重写call方法

   2和3区别:call有返回值,run没有

                     call可以抛异常,run不可以

                     运行callable任务可以拿到一个Future对象表示异步计算的结果

                     Callable接口看做Runnable接口的增强版

 
 


   4.利用jdk线程池框架创建

  


7.

  run()

   只是一个普通的方法调用,不会开启新的线程。

  start()

   会开启新的线程,分配新的资源。里面的变量互不影响。

8.1.使用退出标志,使线程正常退出,也就是当运行方法完成后线程终止  
    2.使用stop方法强行终止线程(这个方法不推荐使用,因为停止和暂停,恢复一样,也可能发生不可预料的结果)  
    3.使用中断方法中断线程  

9.tcp建立连接是三次握手,简单概括:请求---应答---再确认

 
 tcp关闭连接是四次挥手

 
 由于TCP链接是全双工的,因此每个方向上都必须单独关闭。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

 
  1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求

    2  主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1

    3 由B 端再提出反方向的关闭请求,将FIN置1

    4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.

10.1.基于连接与无连接;

     2.对系统资源的要求(TCP较多,UDP少);

     3.UDP程序结构较简单;

     4.流模式与数据报模式 ;
     5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: