中级java面试问题大全及答案大全_Java中级面试题

中级java面试问题大全及答案大全_Java中级面试题String和StringBuffer、StringBuilder的区别在于String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新的String对象,而StringBuffer、StringBuilder可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用String。相对于java初级面试,中级面试肯定是要有些难度的,毕竟java跟等级是挂钩的,等级越高,薪资越高,当然要求的技能也是不能低的,那java中级面试题有哪些?..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

相对于java初级面试,中级面试肯定是要有些难度的,毕竟java跟等级是挂钩的,等级越高,薪资越高,当然要求的技能也是不能低的,那java中级面试题有哪些?下面来我们就来给大家讲解一下。

image.png

1.char型变量中能不能存贮一个中文汉字?为什么?

答:char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

2. java 中操作字符串都有哪些类?它们之间有什么区别?

答:操作字符串的类有:String、StringBuffer、StringBuilder。

String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

3.多线程编程的优势在哪?

答:在开发多线程的程序中,提高程序效率的方式就是多线程执行并发,CPU不会因为某个线程需要等待资源而进入空闲状态。多个线程共享堆内存(heap memory),因此创建多个线程去执行一些任务会比创建多个进程更好。举个例子,Servlets比CGI更好,是因为Servlets支持多线程而CGI不支持。

4.为什么Thread类的sleep()和yield()方法是静态的?

答:Thread类的sleep()和yield()方法将在当前正在执行的线程上运行。处于等待状态的线程被调用这种行为是毫无意义的。避免程序员错误的认为可以在其他非运行线程调用这些方法的最好方式就是在当前正在执行的线程中工作。

5.用一个例子解释垃圾回收?

答:比方说,下面这个方法就会从函数调用。通过函数第一行代码中参考变量calendar,在堆上创建了GregorianCalendar类的一个对象。函数结束执行后,引用变量calendar不再有效。因此,在方法中没有创建引用到对象。JVM认识到这一点,会从堆中删除对象。这就是所谓的垃圾回收。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

6.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里是值传递还是引用传递?

答:是值传递。Java 语言的方法调用只支持参数的值传递。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的内存地址。这个值(内存地址)被传递后,同一个内存地址指向堆内存当中的同一个对象,所以通过哪个引用去操作这个对象,对象的属性都是改变的。

Java中级面试题肯定要有些难度,这就要求我们掌握基础知识之外,还要不断的做项目提升自己的技能,这样才能往更高一层进步!

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183271.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • @JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别[通俗易懂]

    三者出处1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、JSONField来源于fastjson,是阿里巴巴…

  • idea 2021.10.3 激活码【2021最新】

    (idea 2021.10.3 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlbnNlSWQiOi…

  • 机器学习中的目标函数、损失函数、代价函数有什么区别?

    机器学习中的目标函数、损失函数、代价函数有什么区别?

    2021年11月21日
  • 论文阅读报告_小论文

    论文阅读报告_小论文FactorizingYAGOScalableMachineLearningforLinkedData关联数据的可扩展机器学习分解发表于WWW2012–Session:CreatingandUsingLinksbetweenDataObjects摘要:语义Web的链接开放数据(LOD)云中已经发布了大量的结构化信息,而且它们的规模仍在快速增长。然而,由于LOD的大小、部分数据不一致和固有的噪声,很难通过推理和查询访问这些信息。本文提出了一种高效的LOD数据关系学习方

    2022年10月22日
  • 手写算法-python代码实现Lasso回归

    手写算法-python代码实现Lasso回归手写算法-python代码实现Lasso回归Lasso回归简介Lasso回归分析与python代码实现1、python实现坐标轴下降法求解Lasso调用sklearn的Lasso回归对比2、近似梯度下降法python代码实现LassoLasso回归简介上一篇文章我们详细介绍了过拟合和L1、L2正则化,Lasso就是基于L1正则化,它可以使得参数稀疏,防止过拟合。其中的原理都讲的很清楚,详情可以看我的这篇文章。链接:原理解析-过拟合与正则化本文主要实现python代码的Lasso回归,并用实例佐证原

  • Debian网卡配置_服务器光纤网卡配置

    Debian网卡配置_服务器光纤网卡配置Debian不同于centos系统,网卡配置不是在/etc/sysconfig/network-scrip里面,而是在/etc/network/interfaces里面1.修改vi/etc/network/interfacesautoeth0#开机自动启动ifaceeth0inetstatic#静态IP设置address192.168.0.10#本机IPnetmask255.255.255.0#子网掩码gateway192.168.0.1#网关ifaceeth0i

发表回复

您的电子邮箱地址不会被公开。

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