Java技术题目

这是一篇关于Java并发编程的题目集,涵盖了volatile、线程池、TCP通信、Redis、锁机制、内存管理等多个方面的问题。文章讨论了volatile如何工作、线程池中哪种锁的性能最佳、如何从大文件中快速读取内容、如何解决TCP的丢包问题,以及公平锁、非公平锁、自旋锁的区别等。同时,提到了在不同并发场景下,从Redis到堆内再到堆外内存的转换原因。文章还探讨了程序员应具备的重要能力和常见的共识算法。
摘要由CSDN通过智能技术生成

每日一题

1.volatile修饰的user对象,里面有两个属性,int a=1和int b=2.(注意:a,b没有被volatile修饰) 这个user对象是另外一个对象Tasker的成员变量。然后tasker对象已经在程序中运行起来了(一个线程运行,我们叫A线程吧)。紧接着又有另外一个线程(B线程)修改了user对象里的a属性,把1修改成了3;那么请问,A线程能否第一时间感知到a属性发生变化呢,也就是知道他变成了3。

答:线程副本里面保存的是对象,所以是知道的(忘记老师答得还是同学答的了,大家知道的,麻烦在群里解答一下。)

2.一个线程池里面有N个线程,并发下执行某一段逻辑(这段逻辑执行的时间很短,大概1-5ms最多),加锁的方式运行,使用哪一种锁性能最高,
a.公平锁;
b.非公平锁;
c.自旋锁;
d.synchronized锁
答:a 公平锁

3.现在我有一个1g的大文件,如何快速的从中间读取10个字节内容,比如我就是想从1g的文件中读取中间
我就是512m往后的10个字节,用什么方式来做
答:RandomAccessFile

4.现在我有9个int类型组成一个数组,2,2,6,6,5,8,8,1,1
如何用最快的方式找出唯一的一个5
答:亦或算法

5.TCP通信里,如何做到,同一个端口运行多个应用程序,而不报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值