java高级工程师面试情景题_Java高级工程师面试题III

java高级工程师面试情景题_Java高级工程师面试题III今天依然讲解Java高级题型面试试题与答案解析。shorts1=1;s1=s1+1;有错吗?shorts1=1;s1+=1;有错吗?对于shorts1=1;s1=s1+1;由于1是int类型,因此s1+1运算结果也是int型,需要强制转换类型才能赋值给short型。而shorts1=1;s1+=1;可以正确编译,因为s1+=1;相当于s1…

大家好,又见面了,我是你们的朋友全栈君。

c14f5e962b720310b7ad4c17118e8ab6.gif

今天依然讲解Java高级题型面试试题与答案解析。

aa84f9aa225185441cb94c15d943c372.png

short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

对于short s1 = 1; s1 = s1 + 1;由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

如何实现对象克隆?

1.实现Cloneable接口并重写Object类中的clone()方法;

2. 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

唤醒一个阻塞的线程

如因为Sleep,wait,join等阻塞,可以使用interrupted exception异常唤醒。

说说NIO和IO的区别

1.NIO少了一次从内核空间到用户空间的拷贝。ByteBuffer.allocateDirect()分配的内存使用的是本机内存而不是Java堆上的内存,和网络或者磁盘交互都在操作系统的内核空间中发生。allocateDirect()的区别在于这块内存不由java堆管理, 但仍然在同一用户进程内;

2.NIO以块处理数据,IO以流处理数据;

3.非阻塞,NIO一个线程可以管理多个输入输出通道。

67a66c0a333cb8f3530e2d30425cbb42.png

Java NIO与IO区别

Java中的NIO,BIO,AIO分别是什么?

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。

1.BIO,同步阻塞式IO,简单理解:一个连接一个线程。BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。在JDK1.4之前,用Java编写网络请求,都是建立一个ServerSocket,然后,客户端建立Socket时就会询问是否有线程可以处理,如果没有,要么等待,要么被拒绝。即:一个连接,要求Server对应一个处理线程。

2.NIO,同步非阻塞IO,简单理解:一个请求一个线程。NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。NIO本身是基于事件驱动思想来完成的,其主要想解决的是BIO的大并发问题: 在使用同步I/O的网络应用中,如果要同时处理多个客户端请求,或是在客户端要同时和多个服务器进行通讯,就必须使用多线程来处理。也就是说,将每一个客户端请求分配给一个线程来单独处理。这样做虽然可以达到我们的要求,但同时又会带来另外一个问题。由于每创建一个线程,就要为这个线程分配一定的内存空间(也叫工作存储器),而且操作系统本身也对线程的总数有一定的限制。如果客户端的请求过多,服务端程序可能会因为不堪重负而拒绝客户端的请求,甚至服务器可能会因此而瘫痪。

3.AIO,异步非阻塞IO,简单理解:一个有效请求一个线程。AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

什么是幂等性

所谓幂等,简单地说,就是对接口的多次调用所产生的结果和调用一次是一致的。那么我们为什么需要接口具有幂等性呢?设想一下以下情形:在App中下订单的时候,点击确认之后,没反应,就又点击了几次。在这种情况下,如果无法保证该接口的幂等性,那么将会出现重复下单问题。

在接收消息的时候,消息推送重复。如果处理消息的接口无法保证幂等,那么重复消费消息产生的影响可能会非常大。

c78fae22774d478242201ee9ce6f6029.png

终止线程有几种方式?终止线程标记变量为什么是 valotile 类型?

1.线程正常执行完毕,正常结束;

2.监视某些条件,结束线程的不间断运行;

3.使用interrupt方法终止线程。在定义exit时,使用了一个Java关键字volatile,这个关键字的目的是使exit同步,也就是说在同一时刻只能由一个线程来修改exit的值。

21eb176d8b41320ef1be340da3c107dd.png

Java新生代,老年代,持久代,都存储哪些东西?

新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。在年轻代中经历了N次垃圾回收后仍然存活的对象,就会被放到年老代中。因此,可以认为年老代中存放的都是一些生命周期较长的对象。持久代主要存放的是Java类的类信息。

6c98e5c2f151f4e2232b2418216437ca.png

更多精彩佳文,请关注作者!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141789.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • matlab解常微分方程组数值解法(二元常微分方程组的解法)

    上篇博客介绍了Matlab求解常微分方程组解析解的方法:博客地址微分方程组复杂时,无法求出解析解时,就需要求其数值解,这里来介绍。以下内容按照Matlab官方文档提供的方程来展开(提议多看官方文档)介绍一下核心函数ode45()一般形式:[t,y]=ode45(odefun,tspan,y0) 其中tspan=[t0tf]功能介绍:求微分方程组y′=f(t,y)从t0…

    2022年4月18日
  • 将pip源更换到国内镜像「建议收藏」

    将pip源更换到国内镜像「建议收藏」将pip源更换到国内镜像用pip管理工具安装库文件时,默认使用国外的源文件,因此在国内的下载速度会比较慢,可能只有50KB/s。幸好,国内的一些顶级科研机构已经给我们准备好了各种镜像,下载速度可达2MB/s。其中,比较常用的国内镜像包括:(1)阿里云http://mirrors.aliyun.com/pypi/simple/(2)豆瓣http://pypi.douban.com/simp…

    2022年5月4日
  • golang嵌入式开发_持续集成平台对比

    golang嵌入式开发_持续集成平台对比Drone官方示例-ExampleGoproject用Docker部署Go服务器Golang官方示例-outyet一个生产环境的例子实际的DevOps项目中,在pipeline流水线中包含下载代码、测试、构建、发布、部署、通知等步骤。基本流程如下,当然不同的语言或不同的需求下流程会有所差异:clone->test->build…

    2022年8月15日
  • web聊天室实现

    web聊天室实现后端:packagecom.jsx.chat;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.CopyOnWr…

    2022年6月16日
  • jira使用教程_jira 工具

    jira使用教程_jira 工具JIRA使用教程:在Windows上安装JIRA JIRA使用教程:在Linux上安装JIRA JIRA使用教程:使用文件包安装JIRA JIRA使用教程:创建项目 JIRA使用教程:创建问题 JIRA使用教程:搜索问题 JIRA使用教程:编辑项目键 JIRA使用教程:简单问题跟踪 JIRA使用教程:创建软件开发项目 JIRA使用教程:共享搜索结果 JIRA使用教程:查看项目…

    2022年10月21日
  • 程序员法则_智脑黑客

    程序员法则_智脑黑客1.作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。2.程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。3.编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。4.程序不是年轻的专利,但是,他属于年轻。5.没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。6.一个好汉

    2022年10月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号