京东提前批面经 - 转

本文深入探讨Java内存模型、锁机制、线程池管理等核心概念,解析synchronized与Lock的区别,以及线程池的参数配置和状态管理,为Java开发者提供全面的并发编程指南。

作者:秃头少女学Java
链接:https://www.nowcoder.com/discuss/480625?type=post&order=time&pos=&page=1&channel=-2&source_id=search_post
来源:牛客网

一面

  • 比赛经历、获奖情况

  • 兴趣爱好、最近在看什么 🙋 :我在看《java并发编程的艺术》这本书。接下来问题轰炸

  • Java内存模型介绍一下?

  • 内存间交互操作有什么?他们有顺序关联吗?

  • Java怎么实现可见性的?

  • Volatile是怎么保证内存可见性的?他的常见用途有什么?

以上几题参考文章:https://zhuanlan.zhihu.com/p/29881777

读完文章总结一下就能回答。

 

  • 实现锁的方法有什么(提到了synchronized、Lock接口以及AQS)

  • synchronized 和 lock的区别(synchronized都是可重入的,差点说错)

关于锁:https://blog.youkuaiyun.com/Longtermevolution/article/details/107366014

 

  • synchronized是怎么保证可重入的?

https://blog.youkuaiyun.com/mulinsen77/article/details/88632409

重入锁实现可重入性原理或机制是:

每一个锁关联一个线程持有者和计数器,当计数器为 0 时表示该锁没有被任何线程持有,那么任何线程都可能获得该锁而调用相应的方法;当某一线程请求成功后,JVM会记下锁的持有线程,并且将计数器置为 1;此时其它线程请求该锁,则必须等待;而该持有锁的线程如果再次请求这个锁,就可以再次拿到这个锁,同时计数器会递增;当线程退出同步代码块时,计数器会递减,如果计数器为 0,则释放该锁。

 

  • 线程池的五大参数、拒绝策略、核心线程是一个一个创建的吗?

五大参数、拒绝策略:https://blog.youkuaiyun.com/u013044816/article/details/108078817

线程池相关:https://zhuanlan.zhihu.com/p/73990200

 

  • 线程池的关闭方法、有何不同?

https://zhuanlan.zhihu.com/p/150260386

 

  • 线程池的 5 大状态

https://www.cnblogs.com/-wyl/p/9760670.html

 

  • 线程的 6 大状态、BLOCKED状态可以和WAITING相互转换吗?

https://www.zhihu.com/question/56494969/answer/154053599

 

  • 线程的实现方式?(被教育说Callable不算一类)

https://zhuanlan.zhihu.com/p/47401636

 

  • Thread、Runable的区别?

  • new一个对象 和JVM内存区域哪些地方有关联?

https://zhuanlan.zhihu.com/p/101031254

 

  • 创建一个对象的过程是原子的吗?

  • 方法区是怎么保存类信息、常量之类的

  • 偏向锁、什么场景会用到

  • 对象头里面哪部分和锁有关?对象头里class对象指针是干嘛的?

  • StringBuffer 用锁吗?性能开销?怎么解决? (提到了锁粗化)

  • int 和 Integer判断

  • boolean a = true; a == true的区别?

  • 你有什么想问我的?

二面
 

  • 自我介绍

  • 关于我搭的博客网站,涉及到了知识点:springboot、maven、表单提交、session、get&post。还有很多零散问题,记不太清了

  • 数据库主从复制、常用算法

  • 网站的搜索引擎

  • 大型网站优化

  • 集群

  • 反问环节

### IoT硬件开发试经验 对于IoT硬件开发岗位的试,候选人不仅需要掌握基本的电子电路设计原理和嵌入式编程技能,还需要具备处理实际项目中的各种挑战的能力。在准备这类职位的试时,可以从以下几个方着手: #### 1. 基础理论知识 深入理解微控制器的工作机制、传感器接口技术以及无线通信模块的应用是必不可少的基础。例如,在对具体应用场景时如何选择合适的MCU型号及其外设资源分配方案;熟悉SPI/IIC等常见串行总线协议的操作方式。 #### 2. 实际操作能力 除了笔试之外,很多公司还会安排动手实践环节来考察应聘者的实战水平。这可能涉及到PCB板的设计与焊接、编写简单的固件程序实现特定功能或是搭建小型网络节点之间的数据传输链路等内容[^2]。 #### 3. 调试技巧 当遇到设备无法正常工作的情况时,能否快速有效地找到原因至关重要。因此要学会运用逻辑分析仪、示波器之类的工具辅助排查故障点所在位置,并通过调整参数设置或修改代码逻辑解决问题。 #### 4. 安全意识 随着越来越多敏感信息被上传至云端存储空间内,保障整个系统的安全性变得越来越重要。了解TLS/SSL加密算法的作用机理及其与其他主流物联网通讯标准(比如MQTT, CoAP)相结合的方式有助于增强个人竞争力[^3]。 ```c++ // 示例:使用MBED库初始化Wi-Fi连接并发送HTTP请求获取远程服务器时间戳 #include "mbed.h" #include "EthernetInterface.h" int main() { EthernetInterface eth; eth.connect(); TCPSocket socket; SocketAddress addr("time.nist.gov", 80); socket.open(&eth); socket.connect(addr); char send_data[] = "GET / HTTP/1.1\r\nHost: time.nist.gov\r\nConnection: close\r\n\r\n"; socket.send(send_data, strlen(send_data)); char recv_data[100]; int bytes_received = socket.recv(recv_data, sizeof(recv_data)); printf("Received %d bytes from server:\r\n%s", bytes_received, recv_data); socket.close(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值