java date只保留年月日_总结腾讯Java多线程面试考点,你能答上几个?

编程语言Java的应用非常广,在网页、手机系统、软件、游戏中都可以找到它的身影,岗位需求越来越大。

在Java面试中,99%以上会遇到与多线程相关的问题,大多数待遇丰厚的Java开发职位对于程序员的要求更是要精通多线程技术。

今天,小编分享了腾讯等大公司常考的Java多线程面试题。

f813e3610415120afeca09a9ffa818e9.png

总结腾讯Java多线程面试考点,你能答上几个?

0、进程,线程,协程之间的区别是什么(这个问题考的是基础概念,这个一定不要失误)

回答:

简单来说,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,而一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,这样可以减少切换次数,从而效率更高。

线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。

1、守护线程和非守护线程有怎么区别

回答:

程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程。守护线程最典型的例子就是GC线程。

2、多线程上下文切换是什么?

回答:

多线程上下文切换就是指CPU控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取CPU执行权的线程的过程。

db919ec4196d15817f29a5ef18c24a0d.png

总结腾讯Java多线程面试考点,你能答上几个?

3、有哪两种创建线程的方式?

回答:

两种方式:通过实现java.lang.Runnable或者通过扩展java.lang.Thread类。

这里要注意,面试官还可能问你这两种方式更优的是哪个?可以这样答:

实现Runnable接口可能更优,原因:a、Java不支持多继承,因此扩展Thread类就代表这个子类不能扩展其他类。而实现Runnable接口的类还可能扩展另一个类;b、类可能只要求可执行即可,因此继承整个Thread类的开销过大。

4、怎么检测一个线程是否持有对象监视器

Java的Thread类提供了一个holdsLock(Object obj) 方法,只有当对象obj的监视器被某线程持有时才会返回true。

5、产生死锁的条件有哪些?

回答:

互斥条件:一个资源只能够被一个进程使用。

请求与保持条件:请求资源是如果一个进程阻塞,则对已获得的资源保持不放。

不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

6f8bd7652831585f97cf64ce4df988db.png

总结腾讯Java多线程面试考点,你能答上几个?

6、一个线程如果出现了运行时异常怎么办?

回答:

如果该异常没有被捕获的话,这个线程就停止执行了。但是要注意:如果这个线程持有某个对象的监视器,则这个对象监视器会被立即释放。

7、Java使用的线程调度算法是?

回答:

应用了抢占式,Java中一个线程用完CPU之后,操作系统会立马根据线程优先级、线程的饥饿情况等数据算出一个总的优先级并分配下一个时间片给某个线程执行。

4c1ff193ba9500ab91c9c6526af9f721.png

总结腾讯Java多线程面试考点,你能答上几个?

各位粉丝和读者朋友们可根据自己的情况,选择对应的模块进行阅读。

Java基础、语法

1. Java跨平台原理(字节码文件、虚拟机)

2. Java的安全性

3. Java三大版本

4. 什么是JVM、什么是JDK、什么是JRE?

5. Java三种注释类型

6. 8种基本数据类型及其字节数

7. i++和++i的异同之处

8. &和&&的区别和联系,|和||的区别和联系

9. 用最有效率的方法算出2乘以8等于多少

10. 基本数据类型的类型转换规则

11. if多分支语句和switch多分支语句的异同之处

12. while和do-while循环的区别

13. break和continue的作用

14. 请使用递归算法计算n!

15. 递归的定义和优缺点

16. 数组的特征

17. 请写出冒泡排序代码

18. 请写出选择排序的代码

19. 请写出插入排序的代码

20. 可变参数的作用和特点

21. 类和对象的关系

22. 面向过程和面向对象的区别

23. this和super关键字的作用

24. static关键字的作用

25. final和abstract关键字的作用

26. final、finally、finalize的区别

27. 写出java.lang.Obiect类的六个常用方法

28. private/默认/protected/public权限修饰符的区别

29. 继承条件下构造方法的执行过程

30. ==和equals的区别和联系

31. 谈谈Java的多态

32. 简述Java的垃圾回收机制

33. 基本数据类型和包装类

34. Integer和int的区别

35. java.sql.Date和java.util.Date的联系和区别

36. 使用递归算法输出某个目录下所有文件和子目录列表

37. 关于Java编译,下面哪一个正确()

35245be8a1e546cdd1fd220b9b49e8be.png

总结腾讯Java多线程面试考点,你能答上几个?

38. 下列说法正确的有()(单选)

9d30f58cbce01255ea681414d1c60f07.png

总结腾讯Java多线程面试考点,你能答上几个?

39.Java中接口的修饰符可以为()(单选)

402eb014f8d64122b4e71ed6749df933.png

总结腾讯Java多线程面试考点,你能答上几个?

40.给定以下代码,程序将输出 ()(单选)

fca358669e28f7d21c163394f070233a.png

总结腾讯Java多线程面试考点,你能答上几个?

728bdfa2ca9c9aa0811575684bf9b5c3.png

总结腾讯Java多线程面试考点,你能答上几个?

41.下列关于关键字的使用说法错误的是()(单选)

652effbf957b8bcaeabf7953b7349c59.png

总结腾讯Java多线程面试考点,你能答上几个?

42.下列哪些语句关于内存回收的说法是正确的()(单选)

0c353c4d1ddc2cac9013c9c0af978a86.png

总结腾讯Java多线程面试考点,你能答上几个?

43.选出合理的标识符()(双选)

b4ede91e9e830d66003ce69566a40d1d.png

总结腾讯Java多线程面试考点,你能答上几个?

44.下列说法正确的是()(多选)

493f49eb38c4bcc7627e7a32d74fc33d.png

总结腾讯Java多线程面试考点,你能答上几个?

45.定义一个类名为”MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明为()(双选)

9c347f82daa173503ade3da26bd68a97.png

总结腾讯Java多线程面试考点,你能答上几个?

46.面向对象的特征有哪些方面?请用生活中的例子来描述。

47.说明内存泄漏和内存溢出的区别和联系,结合项目经验描述Java程序中如何检测?如何解决?

48.什么是Java的序列化,如何实现Java的序列化?列举在哪些程序中见过Java序列化?

49.不通过构造函数也能创建对象吗?

50.匿名内部类可不可以继承或实现接口。为什么?

51.在Java中,为什么基本类型不能做为HashMap的键值,而只能是引用类型,把引用类型做为HashMap的健值,需要注意哪些地方。

52.简述Java中如何实现多态

53.以下对继承的描述锚错误的是 ( )

5e9b7a7ed3d5f6a7ff52238d2a1b49ae.png

总结腾讯Java多线程面试考点,你能答上几个?

659.某二叉树的先序遍历是12453,中序遍历是42513,那么其后序遍历是()

4ffe38cf66670c4e98f92b15f3ba4f99.png

总结腾讯Java多线程面试考点,你能答上几个?

660.设一颗二叉树中有3个叶子节点,有八个度为1的节点,则该二叉树中总的节点数为()

bd39a7362661a5b43d61e2da7d282e73.png

总结腾讯Java多线程面试考点,你能答上几个?

661.给出下面的二叉树先序、中序、后序遍历的序列?

e935d045830876abff5ca8fa96f9e4f1.png

总结腾讯Java多线程面试考点,你能答上几个?

662.你知道的排序算法都哪些?用Java写一个排序系统

663.写一个二分查找(折半搜索)的算法。

664.统计一篇英文文章单词个数。

665.输入年月日,计算该日期是这一年的第几天。

666.回文素数:所谓回文数就是顺着读和倒着读一样的数(例如:11,121,1991…),回文素数就是既是回文数又是素数(只能被1和自身整除的数)的数。编程找出11~9999之间的回文素数。

667.全排列:给出五个数字12345的所有排列。

668.对于一个有N个整数元素的一维数组,找出它的子数组(数组中下标连续的元素组成的数组)之和的最大值。

669.用递归实现字符串倒转

670.输入一个正整数,将其分解为素数的乘积。

671.一个有n级的台阶,一次可以走1级、2级或3级,问走完n级台阶有多少种走法。

672.写一个算法判断一个英文单词的所有字母是否全都不同(不区分大小写)

673.有一个已经排好序的整数数组,其中存在重复元素,请将重复元素删除掉,例如,A= [1, 1, 2, 2, 3],处理之后的数组应当为A= [1, 2, 3]。

674.给一个数组,其中有一个重复元素占半数以上,找出这个元素。

675.编写一个方法求一个字符串的字节长度?

1a48ff3a12f265ead71efc026a08ad98.png

编程语言Java的应用非常广,在网页、手机系统、软件、游戏中都可以找到它的身影,岗位需求越来越大。

在Java面试中,99%以上会遇到与多线程相关的问题,大多数待遇丰厚的Java开发职位对于程序员的要求更是要精通多线程技术。

今天,小编分享了腾讯等大公司常考的Java多线程面试题。

f813e3610415120afeca09a9ffa818e9.png

总结腾讯Java多线程面试考点,你能答上几个?

0、进程,线程,协程之间的区别是什么(这个问题考的是基础概念,这个一定不要失误)

回答:

简单来说,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,而一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,这样可以减少切换次数,从而效率更高。

线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位。同一进程中的多个线程之间可以并发执行。

1、守护线程和非守护线程有怎么区别

回答:

程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程。守护线程最典型的例子就是GC线程。

2、多线程上下文切换是什么?

回答:

多线程上下文切换就是指CPU控制权由一个已经正在运行的线程切换到另外一个就绪并等待获取CPU执行权的线程的过程。

db919ec4196d15817f29a5ef18c24a0d.png

总结腾讯Java多线程面试考点,你能答上几个?

3、有哪两种创建线程的方式?

回答:

两种方式:通过实现java.lang.Runnable或者通过扩展java.lang.Thread类。

这里要注意,面试官还可能问你这两种方式更优的是哪个?可以这样答:

实现Runnable接口可能更优,原因:a、Java不支持多继承,因此扩展Thread类就代表这个子类不能扩展其他类。而实现Runnable接口的类还可能扩展另一个类;b、类可能只要求可执行即可,因此继承整个Thread类的开销过大。

4、怎么检测一个线程是否持有对象监视器

Java的Thread类提供了一个holdsLock(Object obj) 方法,只有当对象obj的监视器被某线程持有时才会返回true。

5、产生死锁的条件有哪些?

回答:

互斥条件:一个资源只能够被一个进程使用。

请求与保持条件:请求资源是如果一个进程阻塞,则对已获得的资源保持不放。

不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

6f8bd7652831585f97cf64ce4df988db.png

总结腾讯Java多线程面试考点,你能答上几个?

6、一个线程如果出现了运行时异常怎么办?

回答:

如果该异常没有被捕获的话,这个线程就停止执行了。但是要注意:如果这个线程持有某个对象的监视器,则这个对象监视器会被立即释放。

7、Java使用的线程调度算法是?

回答:

应用了抢占式,Java中一个线程用完CPU之后,操作系统会立马根据线程优先级、线程的饥饿情况等数据算出一个总的优先级并分配下一个时间片给某个线程执行。

4c1ff193ba9500ab91c9c6526af9f721.png

总结腾讯Java多线程面试考点,你能答上几个?

各位粉丝和读者朋友们可根据自己的情况,选择对应的模块进行阅读。

Java基础、语法

1. Java跨平台原理(字节码文件、虚拟机)

2. Java的安全性

3. Java三大版本

4. 什么是JVM、什么是JDK、什么是JRE?

5. Java三种注释类型

6. 8种基本数据类型及其字节数

7. i++和++i的异同之处

8. &和&&的区别和联系,|和||的区别和联系

9. 用最有效率的方法算出2乘以8等于多少

10. 基本数据类型的类型转换规则

11. if多分支语句和switch多分支语句的异同之处

12. while和do-while循环的区别

13. break和continue的作用

14. 请使用递归算法计算n!

15. 递归的定义和优缺点

16. 数组的特征

17. 请写出冒泡排序代码

18. 请写出选择排序的代码

19. 请写出插入排序的代码

20. 可变参数的作用和特点

21. 类和对象的关系

22. 面向过程和面向对象的区别

23. this和super关键字的作用

24. static关键字的作用

25. final和abstract关键字的作用

26. final、finally、finalize的区别

27. 写出java.lang.Obiect类的六个常用方法

28. private/默认/protected/public权限修饰符的区别

29. 继承条件下构造方法的执行过程

30. ==和equals的区别和联系

31. 谈谈Java的多态

32. 简述Java的垃圾回收机制

33. 基本数据类型和包装类

34. Integer和int的区别

35. java.sql.Date和java.util.Date的联系和区别

36. 使用递归算法输出某个目录下所有文件和子目录列表

37. 关于Java编译,下面哪一个正确()

35245be8a1e546cdd1fd220b9b49e8be.png

总结腾讯Java多线程面试考点,你能答上几个?

38. 下列说法正确的有()(单选)

9d30f58cbce01255ea681414d1c60f07.png

总结腾讯Java多线程面试考点,你能答上几个?

39.Java中接口的修饰符可以为()(单选)

402eb014f8d64122b4e71ed6749df933.png

总结腾讯Java多线程面试考点,你能答上几个?

40.给定以下代码,程序将输出 ()(单选)

fca358669e28f7d21c163394f070233a.png

总结腾讯Java多线程面试考点,你能答上几个?

728bdfa2ca9c9aa0811575684bf9b5c3.png

总结腾讯Java多线程面试考点,你能答上几个?

41.下列关于关键字的使用说法错误的是()(单选)

652effbf957b8bcaeabf7953b7349c59.png

总结腾讯Java多线程面试考点,你能答上几个?

42.下列哪些语句关于内存回收的说法是正确的()(单选)

0c353c4d1ddc2cac9013c9c0af978a86.png

总结腾讯Java多线程面试考点,你能答上几个?

43.选出合理的标识符()(双选)

b4ede91e9e830d66003ce69566a40d1d.png

总结腾讯Java多线程面试考点,你能答上几个?

44.下列说法正确的是()(多选)

493f49eb38c4bcc7627e7a32d74fc33d.png

总结腾讯Java多线程面试考点,你能答上几个?

45.定义一个类名为”MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明为()(双选)

9c347f82daa173503ade3da26bd68a97.png

总结腾讯Java多线程面试考点,你能答上几个?

46.面向对象的特征有哪些方面?请用生活中的例子来描述。

47.说明内存泄漏和内存溢出的区别和联系,结合项目经验描述Java程序中如何检测?如何解决?

48.什么是Java的序列化,如何实现Java的序列化?列举在哪些程序中见过Java序列化?

49.不通过构造函数也能创建对象吗?

50.匿名内部类可不可以继承或实现接口。为什么?

51.在Java中,为什么基本类型不能做为HashMap的键值,而只能是引用类型,把引用类型做为HashMap的健值,需要注意哪些地方。

52.简述Java中如何实现多态

53.以下对继承的描述锚错误的是 ( )

5e9b7a7ed3d5f6a7ff52238d2a1b49ae.png

总结腾讯Java多线程面试考点,你能答上几个?

659.某二叉树的先序遍历是12453,中序遍历是42513,那么其后序遍历是()

4ffe38cf66670c4e98f92b15f3ba4f99.png

总结腾讯Java多线程面试考点,你能答上几个?

660.设一颗二叉树中有3个叶子节点,有八个度为1的节点,则该二叉树中总的节点数为()

bd39a7362661a5b43d61e2da7d282e73.png

总结腾讯Java多线程面试考点,你能答上几个?

661.给出下面的二叉树先序、中序、后序遍历的序列?

e935d045830876abff5ca8fa96f9e4f1.png

总结腾讯Java多线程面试考点,你能答上几个?

662.你知道的排序算法都哪些?用Java写一个排序系统

663.写一个二分查找(折半搜索)的算法。

664.统计一篇英文文章单词个数。

665.输入年月日,计算该日期是这一年的第几天。

666.回文素数:所谓回文数就是顺着读和倒着读一样的数(例如:11,121,1991…),回文素数就是既是回文数又是素数(只能被1和自身整除的数)的数。编程找出11~9999之间的回文素数。

667.全排列:给出五个数字12345的所有排列。

668.对于一个有N个整数元素的一维数组,找出它的子数组(数组中下标连续的元素组成的数组)之和的最大值。

669.用递归实现字符串倒转

670.输入一个正整数,将其分解为素数的乘积。

671.一个有n级的台阶,一次可以走1级、2级或3级,问走完n级台阶有多少种走法。

672.写一个算法判断一个英文单词的所有字母是否全都不同(不区分大小写)

673.有一个已经排好序的整数数组,其中存在重复元素,请将重复元素删除掉,例如,A= [1, 1, 2, 2, 3],处理之后的数组应当为A= [1, 2, 3]。

674.给一个数组,其中有一个重复元素占半数以上,找出这个元素。

675.编写一个方法求一个字符串的字节长度?

1a48ff3a12f265ead71efc026a08ad98.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值