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

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

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

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


相关推荐

  • jquery输入数字随机抽奖特效

    简介:jQuery自定义数值抽奖活动代码是一款点击开始按钮计算机会产生玩家输入范围内的随机数,点击停止按钮,将显示数字最终结果的效果。效果展示 http://hovertree.com/te

    2021年12月26日
    63
  • javaweb-springMVC-54

    javaweb-springMVC-54

    2021年5月18日
    155
  • 半同步复制简介

    半同步复制简介

    2022年3月5日
    42
  • jvm 吞吐量_jvm oom

    jvm 吞吐量_jvm oom公式吞吐量=运行代码时间/(运行代码时间+垃圾收集时间)示例虚拟机总共运行了100分钟1)运行代码:99分钟2)垃圾收集:1分钟吞吐量=99/100=99%参数-XX:GCRatio 设置吞吐量的大小-XX:MaxGCPauseMillis 控制最大的垃圾收集停顿时间分析互联网交互式项目:需要在停顿时间范围内(100~200ms),保证最大吞吐量(96%~)传统项目:需要在保证最大吞吐量范围内,降低停顿时间吞吐量越大,代表着垃圾收集时间越短,那么用户代码可以充分

    2022年10月8日
    4
  • 一比一还原axios源码(八)—— 其他功能

    到此,我们完成了axios的绝大部分的功能,接下来我们来补全一下其他的小功能。一、withCredentials这个参数可以可以表明是否是一个跨域的请求。那这个的使用场景是啥呢?就是我们在同域的请

    2022年3月25日
    42
  • 钟表代码分享

    今天分享一个时钟的源码,效果如图所示:最后附上源码<!DOCTYPEhtml><html><head><metahttp-equiv=”Content-Type”content=”text/html;charset=UTF-8″><title>时钟</title><styletype=”text/c…

    2022年4月4日
    73

发表回复

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

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