当前位置: 首页 > news >正文

恒生电子面经准备

文章目录

      • 1.jdk,jre,jvm的区别是什么?
      • 2.java中finally的重要性?使用的场景有哪些?有没有总结性的说法?什么类型的东西放到finally?
      • 3.final的作用
      • 4.==和equals的区别?
      • 5.为什么重写equals方法要同时重写hashcode方法?
      • 6.怎么把String类型转换成数字类型
      • 7.Java里面的显示转换和隐式转换,简述一下
      • 8.java中的顶级父类
      • 9.Java的所有基本数据类型,有几种?
      • 10.平时有做单元测试吗?用的什么工具类,测试类怎么写的?@Test注解是什么工具类提供的?
      • 11.String底层是什么数据类型
      • 12.String类型为什么不可变
      • 13.String,StringBuilder,StringBuffer区别?为什么StringBuffer线程安全
      • 14.Java怎么打印对象,怎么打印属性值
      • 15.Java里面如何遍历list
      • 16.重载和重写的区别?
      • 17.线程池有哪些参数?有哪些拒绝策略?除了抛出异常还有什么策略?
      • 18.JVM有做过分析吗?有没有在线处理过异常?
      • 19.java集合的使用,简述一下
      • 20.SpringBoot了解多少
      • 21.JAVA锁了解吗?了解AQS吗?
      • 22.synchronized底层怎么实现的?分布式锁了解吗?
      • 23.那锁住的对象怎么和monitor锁监视器关联上的呢?
      • 24.知道synchronized锁升级的过程吗?
      • 25.java内存结构、类加载过程,编译原理了解吗?
      • 26.JAVA反射了解吗?举几个java反射的应用案例
      • 27.java中字节流和字符流的区别是啥?

1.jdk,jre,jvm的区别是什么?

jdk包含jre,jre包含jvm。jdk包含了编译器调试器等开发工具
jre是java运行时环境,可以运行已经编译好的程序
jvm是虚拟机负责把字节码编译成机器指令执行

2.java中finally的重要性?使用的场景有哪些?有没有总结性的说法?什么类型的东西放到finally?

finally保证关键的代码一定会被执行,无论try块是否抛出异常,或者执行了return
常见的使用场景是资源释放,比如关闭文件流,关闭数据库连接,锁释放等等。可以总结为:带有收尾性的都应该放在finally中

3.final的作用

是修饰符,用来保证不可变性,修饰的类不可继承,修饰的方法不可重写,修饰的变量只能赋值一次

4.==和equals的区别?

==比较的是内存地址指向是否相同。equals比较的是两个对象的具体值是否相同

5.为什么重写equals方法要同时重写hashcode方法?

hashcode方法用于定位元素存放的数组下标,可能冲突,所有需要equals判断元素值是否重复,重复就丢弃,只重写equals不重写hashcode可能出现元素重复

6.怎么把String类型转换成数字类型

Integer.parseInt()

7.Java里面的显示转换和隐式转换,简述一下

隐式转换式小范围提升为大范围,如int转换为double。显示转换时大范围转化为小范围(type)实现,可能出现精度丢失

8.java中的顶级父类

Object方法‘

9.Java的所有基本数据类型,有几种?

八种,byte.short,int long float double char boolean

10.平时有做单元测试吗?用的什么工具类,测试类怎么写的?@Test注解是什么工具类提供的?

junit做单元测试,@Test注解是junit注解提供的,用来标记测试方法

11.String底层是什么数据类型

jdk8底层采用的是char类型数组,jdk9采用的是byte数组

12.String类型为什么不可变

final保证类不被继承,修饰char数组保证引用不发生改变,该类没有对外提供get和set方法,保证不被修改

13.String,StringBuilder,StringBuffer区别?为什么StringBuffer线程安全

String:不可变,安全,效率低
StringBuilder:可变,单线程高效,线程不安全
StringBuffer:可变,多线程安全,采用synchronized修饰

14.Java怎么打印对象,怎么打印属性值

类重写了toString方法,new构造对象,点出来属性值

15.Java里面如何遍历list

传统for循环,增强for循环,迭代器,lambda表达式

16.重载和重写的区别?

方法 重载(Overload) 是指同一个类中方法名相同,但参数列表不同,可以是参数类型或数量不同,它属于 编译时期多态。而方法 重写(Override) 是指子类继承父类时,方法名和参数列表相同,通过修改方法实现来改变行为,它属于 运行时期多态。简单记忆:重载同名不同参,重写子类改父类。

17.线程池有哪些参数?有哪些拒绝策略?除了抛出异常还有什么策略?

public ThreadPoolExecutor(
int corePoolSize, // 核心线程数
int maximumPoolSize, // 最大线程数
long keepAliveTime, // 救急线程存活时间
TimeUnit unit, // 存活时间单位
BlockingQueue workQueue, // 阻塞队列
ThreadFactory threadFactory, // 线程工厂
RejectedExecutionHandler handler // 拒绝策略
)
线程池的拒绝策略有四种:抛出异常,丢弃新来的任务,丢失最早的任务,交给主线程执行

18.JVM有做过分析吗?有没有在线处理过异常?

线上CPU飙高,top命令查看哪个进程,ps查看进程对应线程信息,使用jstack查看进程的哪些线程出现了问题,最终定位问题

19.java集合的使用,简述一下

在java中,常用的集合主要有三类,List,Set,Map.List主要是有序可重复,适合按照顺序存储数据。set存放不重复无序数据,适合用来去重。Map存放键值对数据

20.SpringBoot了解多少

快速搭建web应用和微服务项目,核心在于他的自动配置,开箱即用,减少了很多手动配置

21.JAVA锁了解吗?了解AQS吗?

主要有悲观锁和乐观锁。悲观锁有synchronized和reentrantlock,乐观锁使用版本号法,其中reentrantlock底层是基于AQS实现的,AQS用一个state记录锁状态(0表示无锁,1表示有锁),没有获取锁成功用FIFO队列管理等待线程

22.synchronized底层怎么实现的?分布式锁了解吗?

sychronized锁会让锁住的对象关联一个锁监视器,当一个线程获取到锁的时候,其他线程会进入到阻塞队列中,如果调用了wait方法会进入到等待队列中。
分布式锁可以采用redis实现,比如比较常用的redission分布式锁

23.那锁住的对象怎么和monitor锁监视器关联上的呢?

首先要分析这个对象的内存结构,分为对象头,实例数据,填充(hotspot虚拟机规定),对象头包括markword和klassword。这里主要通过markword实现关联,markwork重量级锁有一个monitor指针可以实现关联

24.知道synchronized锁升级的过程吗?

偏向锁:单线程反复加锁解锁
轻量级锁:多个线程竞争不激烈
重量级锁:多线程竞争激烈
原因:阻塞/唤醒涉及到操作系统用户态和内核态的切换,开销很大。这里的开销指的是上下文的切换,保存程序计数器,寄存器,堆栈指针等等

25.java内存结构、类加载过程,编译原理了解吗?

JVM内存结构分为线程私有和线程共享两部分
线程私有:虚拟机栈(存放方法调用的栈帧),本地方法栈(给native方法服务),程序计数器(记录当前线程执行到的字节码行号)
线程共享:堆,存放对象的示例数据,是垃圾回收的主要区域
方法区(jdk8叫元空间):存放类的结构信息,方法,静态变量等
运行时常量池:存放字面量和符号引用
2.类加载过程:
类的加载由类加载器完成,遵循双亲委派模型。
2.1加载:读取.class文件,生成Class对象
2.2验证:确保字节码合法,安全
2.3准备:为静态变量分配内存并赋初值
2.4解析:把常量池的符号引用解析为直接引用
2.5初始化:执行类的clinit方法,真的赋值和静态代码块
3.编译原理:
首先是源代码通过javac编译成字节码。接着字节码交给解释器翻译为机器指令,还有JIT编译为本地机器码,提高运行效率

26.JAVA反射了解吗?举几个java反射的应用案例

反射指的是运行时动态获取类的信息并操作类成员。比如说Spring底层通过反射创建对象,JSON序列化和反序列化,jdbc通过反射加载驱动,AOP通过动态代理加反射实现

27.java中字节流和字符流的区别是啥?

字节流按字节处理,适合二进制文件,比如图片,字符流按字符处理,适合文本文件。字节流基类是 InputStream/OutputStream,字符流基类是 Reader/Writer。”

http://www.dtcms.com/a/438819.html

相关文章:

  • 电视剧在线观看完整版免费网站网友让你建网站做商城
  • 大学网站群建设方案设计网名姓氏
  • Qt 按钮点击事件全链路解析:从系统驱动到槽函数
  • 外贸公司建网站一般多少钱京津冀协同发展现状
  • 开发网站 语言优秀营销软文范例300字
  • 木匠手做网站网站主体变更
  • 领码方案 | 掌控研发管理成熟度:从理论透视到AI驱动的实战进阶
  • 为什么学网站开发互联网最吃香的职业
  • MTK调试-耳机驱动
  • Go语言中的map
  • 国土系统网站建设用地受理表花垣县建设局网站
  • 网站建设报告内容合肥经开区建设局网站
  • 华清远见25072班C++学习假期10.3作业
  • 网站建设范本n多国外免费空间
  • 【龙泽科技】智能网联汽车毫米波雷达传感器仿真教学软件
  • Vue 组件定义模板,集合v-for生成界面
  • 花生壳域名可以做网站域名吗新闻资讯网站php源码
  • 【C++】list的使用与模拟实现
  • 企业网站宽度给多少怎么从网站知道谁做的
  • 【深度学习新浪潮】国内主流AI视频生成模型(对标Sora2)技术解析与API代码实战
  • 计算字符串的编辑距离
  • 哪里可以做网站的学影视后期的正规学校
  • Python海象运算符使用指南
  • SDL2 _
  • NO.14数据结构红黑树|树高|转化4阶B树|插入操作|删除操作
  • 学网页设计要多长时间南京seo招聘
  • EPOLLONESHOT事件类型和ET模式有什么区别?
  • “多数派”的智慧:Redis Redlock 分布式锁
  • 国家城乡建设官方网站参与做网站的收获
  • 房地产公司网站建设报价方案建立网站是什么建立的