【JAVA经典面试题】每日一刷
Q1.创建线程有哪几种方式?
继承Thread类并实现run方法,调用继承类的start方法开启线程;
通过实现Runnable接口,重写run方法,调用线程对象的start方法开启线程;
通过实现Callable接口,实现call方法,并用FutureTask类包装Callable对象开启线程。
Q2.sleep() 和 wait() 有什么区别?
sleep后程序不会释放同步锁,wait后程序会释放同步锁
sleep可以指定睡眠时间,自动唤醒,wait可以直接用notify唤醒
sleep的类是Thread,wait的类是Object
Q3.synchronized 和 volatile 的区别是什么?
volatile本质是在告诉vm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;
synchronize则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞。
volatile仅能实现变量的修改可见性,不能保证原子性;synchronize可以保证变量的修改可见性和原子性。
volatile不会造成线程的阻塞;synchronize可能会造成线程的阻塞。
volatile标记的变量不会被编译器优化,synchronize标记的变量可以被编译器优化
Q4.synchronized 和 Lock 有什么区别?
synchronized是关键字,属于jvm层面;Lock是具体类,是api层面的锁;
synchronized无法获取锁的状态,Lock可以判断;
synchronized用于少量同步,Lock用于大量同步。
Q5.乐观锁和悲观锁
乐观锁:认为每次去拿数据的时候别人不会修改,所以不会上锁,但是每次要提交数据的时候都会先判断数据是否被别人修改
悲观锁:认为每次去拿数据的时候别人都会修改,所以每次都会上锁。
使用场景:乐观锁使用于多读少写的应用类型,这样可以提高吞吐量;相反的情况则使用悲观锁
Q6.tcp 为什么要三次握手,两次不行吗?为什么?
两次握手只能保证单向连接是畅通的。
只有经过第三次握手,才能确保双向都可以收到对方发送的数据
❤【拼多多2025届技术校招】全面启动,6大岗位(base上海),总有一个适合你!
📣海量HC,线上笔面试,流程超快;越早投递简历机会越多,快来pick你的offer吧!
📣【网申链接】:https://careers.pinduoduo.com/campus/grad/technical-session
📣【内推链接】:https://careers.pinduoduo.com/campus/grad?t=iDsAO7bjl4,内推码:iDsAO7bjl4
继承Thread类并实现run方法,调用继承类的start方法开启线程;
通过实现Runnable接口,重写run方法,调用线程对象的start方法开启线程;
通过实现Callable接口,实现call方法,并用FutureTask类包装Callable对象开启线程。
Q2.sleep() 和 wait() 有什么区别?
sleep后程序不会释放同步锁,wait后程序会释放同步锁
sleep可以指定睡眠时间,自动唤醒,wait可以直接用notify唤醒
sleep的类是Thread,wait的类是Object
Q3.synchronized 和 volatile 的区别是什么?
volatile本质是在告诉vm当前变量在寄存器(工作内存)中的值是不确定的,需要从主存中读取;
synchronize则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞。
volatile仅能实现变量的修改可见性,不能保证原子性;synchronize可以保证变量的修改可见性和原子性。
volatile不会造成线程的阻塞;synchronize可能会造成线程的阻塞。
volatile标记的变量不会被编译器优化,synchronize标记的变量可以被编译器优化
Q4.synchronized 和 Lock 有什么区别?
synchronized是关键字,属于jvm层面;Lock是具体类,是api层面的锁;
synchronized无法获取锁的状态,Lock可以判断;
synchronized用于少量同步,Lock用于大量同步。
Q5.乐观锁和悲观锁
乐观锁:认为每次去拿数据的时候别人不会修改,所以不会上锁,但是每次要提交数据的时候都会先判断数据是否被别人修改
悲观锁:认为每次去拿数据的时候别人都会修改,所以每次都会上锁。
使用场景:乐观锁使用于多读少写的应用类型,这样可以提高吞吐量;相反的情况则使用悲观锁
Q6.tcp 为什么要三次握手,两次不行吗?为什么?
两次握手只能保证单向连接是畅通的。
只有经过第三次握手,才能确保双向都可以收到对方发送的数据
❤【拼多多2025届技术校招】全面启动,6大岗位(base上海),总有一个适合你!
📣海量HC,线上笔面试,流程超快;越早投递简历机会越多,快来pick你的offer吧!
📣【网申链接】:https://careers.pinduoduo.com/campus/grad/technical-session
📣【内推链接】:https://careers.pinduoduo.com/campus/grad?t=iDsAO7bjl4,内推码:iDsAO7bjl4
全部评论
相关推荐
查看11道真题和解析 点赞 评论 收藏
分享
iiooz:别想太多了,面试官如果看不上,就不会约面了,腾讯很少所谓的kpi,有面就说明能力肯定不错,只是每个面试官筛选方式不同,二面甚至只跟你聊生活的都有,鹅还是很开放的在筛选人这一块 点赞 评论 收藏
分享
点赞 评论 收藏
分享