热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

知了堂|2020年java常见4大面试题及答案

知了堂姐
2024-07-09 11:12:24
0
朋友们你们有福了,2020 年java常见面试题及答案,已经新鲜出炉啦~还在等什么,快跟小编一起来看看吧~
 
1、什么是多线程共享数据?
 
在 Java 传统线程机制中的共享数据方式,大致可以简单分两种情况:
➢ 多个线程行为一致,共同操作一个数据源。可以使用同一个 Runnable 对象,这个 Runnable 对象中有那个共享数据。
➢ 多个线程行为不一致,共同操作一个数据源。
 
如果每个线程执行的代码不同,这时候需要用不同的 Runnable 对象,有如下两种方式来实现这些 Runnable 对象之间的数据共享:
 
1) 将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个 Runnable 对象。每个线程对共享数据的操作方法也分配到那个对象身上去完成,这样容易实现针对该数据进行的各个操作的互斥和通信。
 
2) 将这些 Runnable 对象作为某一个类中的内部类,共享数据作为这个外部类中的成员变量,每个线程对共享数据的操作方法也分配给外部类,以便实现对共享数据进行的各个操作的互斥和通信,作为内部类的各个Runnable 对象调用外部类的这些方法。当线程并发执行时,由于资源共享和线程协作,使用线程之间会存在以下两种制约关系。  间接相互制约。一个系统中的多个线程必然要共享某种系统资源。 直接相互制约。这种制约主要是因为线程之间的合作。
 
 
2、int和Integer的区别?
 
Java本身是一个纯粹的面向对象的语言,但是为了方便还是引入了基本数据类型
 
整数:byte short int long
小数: float double
字符: char
逻辑类型:boolean
Byte - > byte
Short -> short
Integer - > int
Long - > long
Float - > float
Double - > double
Character - > char
Boolean - > boolean
 
在java中包装类型和基本数据类型可以互相转换 (装箱和拆箱)
基本数据类型直接使用  包装类型需要实例化
基本数据类型直接指向变量存储的值 包装类型指向的是对象的引用
int 默认值为0  Integer的默认值为null
 
两者之间是可以直接互相比较的,只要值相同那么返回就是true
但是两个Integer之间如果是不同的对象,那么即使值相同也是false
 
3、访问权限修饰符 public、private、protected, 以及不写(默认)时的区别?


  同类 同包 继承 不同包
Private × × ×
默认 × ×
Protected ×
Public
 
 
4.什么情况下导致线程死锁,遇到线程死锁该怎么解决?
 
死锁是多个线程在运行过程中互相竞争资源发生的僵局,若无外力作用,它们都无法推进下去。
死锁的四个必要条件
 
互斥条件:一个资源每次只能被一个线程使用。
请求和保持条件:一个线程因为请求资源而阻塞时,对已获得的资源保持不放。
不剥夺条件:线程已经获得的资源在没有使用完之前,不能强行剥夺。
循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。
 
解决死锁的基本方法
 
预防死锁:
 
1)资源一次性分配:一次性分配所有资源,这样就不会有请求了(破坏请求条件)
2)只要有一个资源得不到分配,就不给这个线程分配其他的资源(破坏保持条件)
3)可剥夺资源:即当某进程获得了部分资源,但得不到其它资源,则释放已占有的资源(破坏不剥夺条件)
4)资源有序分配法:系统给每个资源赋予一个编号,每一个线程按照编号递增的顺序请求资源,释放则相反(破坏环路等待条件)
 
解除死锁常用的有:
 
1)剥夺资源:从其他线程剥夺足够数量的资源给死锁进程,以解除死锁状态;
2)撤销线程:可以直接撤销死锁线程或撤销代价最小的线程,直至有足够的资源可用;
 
经验总结
 
多面试,不要害怕失败,多总结经验。
尽早准备,不论是找工作前、面试前还是面试后。
熟悉自己的简历。
电话和视频面试很平常,面试前提前准备一下。
坚持!offer 虽然可能会迟到,但是只要不放弃,就一定不会缺席。
大家都在看

0基础怎么转行做网络安全?网安怎么学?

2024-07-09 浏览次数:0

知了堂2023届“天府人才·校招行”启动ing,...

2024-07-09 浏览次数:0

零基础转行,在成都哪里学web前端?

2024-07-09 浏览次数:0

零基础初学者怎么学习Java?哪里有Java学习...

2024-07-09 浏览次数:0

知了堂全国招募体验官招募的UI实战需求

2024-07-09 浏览次数:0

知了堂 | 2023网络安全、Java、前端全套...

2024-07-09 浏览次数:0
最新资讯
提灯引梦,汇智知了堂班主任的一...   大家好,我是知了姐。  之前推文中为大家介绍过知了堂“督导老师”这一角色,随着教师节临近,这期我...
知了堂CISP-PTE班学员顺...   网络安全领域中有两个常见的术语,红队与蓝队,它们既代表安全行业里的专业岗位,同时也用来描述攻击者...
成都Java开发前景怎么样?成...   随着科技的不断发展,Java作为一种流行的编程语言,被广泛应用于软件开发和数据分析等领域,成为了...
如何寻找合适的IT培训班?报名...   随着科技的迅速发展,越来越多的人选择通过参加IT培训班来提升自己的技能和竞争力。然而,面对众多的...
没有基础可以学JAVA吗?成都...   随着数字化时代的快速发展,Java作为一种流行的编程语言,已经成为了IT行业的必备技能。许多初学...
Java速成班上课有用吗?成都...   随着信息技术的迅速发展,Java作为一种流行的编程语言,被广泛应用于各种软件开发项目中。许多人都...
选择成都汇智知了堂,选靠谱的网...   在这个数字化飞速发展的时代,网络安全已经成为个人和企业不可忽视的重要议题。面对日益复杂的网络威胁...
渗透测试培训哪家好,选择成都汇...   随着网络攻击手段的不断演进,渗透测试作为一项关键的网络安全防御技术,越来越受到重视。企业和个人都...