面试题及解答

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链接是全双工的,因此每个方向上都必须单独关闭。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

    当主机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不保证。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值