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

dedecms 倒计时 天数 网站首页上海优化网站公司哪家好

dedecms 倒计时 天数 网站首页,上海优化网站公司哪家好,厦门网站设计公司,站点推广促销目前是准大四生,最近在进行一个求职,于是整理了一些自己背的八股文的题目和参考答案,在求职的小伙伴也可以参考一下我整理的八股文,参考答案仅供参考,要是有什么不合理的地方可以跟我说我再进行一个修改~1.JVM、JDK、J…

目前是准大四生,最近在进行一个求职,于是整理了一些自己背的八股文的题目和参考答案,在求职的小伙伴也可以参考一下我整理的八股文,参考答案仅供参考,要是有什么不合理的地方可以跟我说我再进行一个修改~

1.JVM、JDK、JRE三者关系?

jdk:包括了java运行环境jre,java工具和Java基础类库

jre:是Java程序运行所需的最小环境

JVM:是Java虚拟机,是Java程序运行的环境。它负责将Java字节码(由Java编译器生成)解释或编译成机器码,=并执行程序。JVM提供了内存管理、垃圾回收、安全性等功能,使得Java程序具备跨平台性。

2.八种基本的数据类型

Java支持数据类型分为两类:基本数据类型和引I用数据类型。

基本数据类型共有8种,可以分为三类:

数值型:整数类型(byte、short、int、long)和浮点类型(float、double)

·字符型:char

·布尔型:boolean

Java八种基本数据类型的字节数:1字节(byte、boolean)、2字节(short、char)、4字节(int、float)、8字节(long、double)

3.数据类型转换方式你知道哪些?

自动类型转换(隐式转换):当目标类型的范围大于原类型时候,会自动转化

强制类型转换(显示转换):小于范围时候 long-》int

字符串转换Interger.parseInt()方法,将字符串转换为整型

数值之间的转换:将整型转换为字符型等,使用包装类实现

4.类型互转会出现什么问题吗?

数据丢失:比如当范围较大的数据类型转换为比较小的数据类型时,long-》int转,会导致高位数据丢失

数据溢出:范围小转换为范围大 int-long

精度丢失:float-double转换

数据转换类型不匹配问题

5.装箱和拆箱是什么?

是将基本数据类型和它所对应的包装类之间的转换

6.Java为什么要有Integer?

①在泛型中的应用:泛型只能使用引用类型,而不是使用基本类型

②在转换中的应用:基本类型和引用类型不能直接转换,必须使用包装类来实现,如int转换为String,必须先转换为Integer

③在集合中的应用:集合只能存储对象,而不能存储基本数据类型。

7.说一下 integer的缓存

Java的Integer类内部实现了一个静态缓存池,用于存储特定范围内的整数值对应的Integer对
象。
默认情况下,这个范围是-128至127。当通过Integer.valueOf(int)方法创建一个在这个范围内
的整数对象时,并不会每次都生成新的对象实例,而是复用缓存中的现有对象,会直接从内
存中取出,不需要新建一个对象

 

8.怎么理解面向对象?简单说说封装继承多态

面向对象是一种编程范式,它将现实世界中的事物抽象为对象,对象具有属性(称为宇段或属性)和行为

(称为方法).面向对象编程的设计思想是以对象为中心,通过对象之间的交互来完成程序的功能,具有

灵活性和可扩展性,通过封装和继承可以更好地应对需求变化。

java面向对象的三大特性包括:封装,继承,多态:

封装:封装是指将对象的属性(数据)和行为(方法)结合在一起,对外隐藏对象的内部细节,仅通过对象提供的接口与外界交互。封装的目的是增强安全性和简化编程,使得对象更加独立。

继承:继承是一种可以使得子类自动共享父类数据结构和方法的机制。它是代码复用的重要手段,通过继承可以建立类与类之间的层次关系,使得结构更加清晰。

多态:多态是指允许不同类的对象对同一消息作出响应。 即同一个接口,使用不同的实例而执行不同操作。多态性可以分为编译时多态(重载)和运行时多态 (重写).它使得程序具有良好的灵活性和扩展性。

9.多态体现在哪几个方面?

方法重载:
方法重载是指同一类中可以有多个同名方法,它们具有不同的参数列表(参数类型,数量或顺序不同).虽然方法名相同,但根据传入的参数不同,编译器会在编译时确定调用哪个方法。
示例:对于一个 add 方法,可以定义为 add(int a, int b) 和 add( double a,double b)
方法重写:
方法重写是指子类能够提供对父类中同名方法的具体实现。在运行时,vm会根据对象的实际类型确定调用哪个版本的方法。这是实现多态的主要方式。
示例:在一个动物类中,定义一个 punos 方法,子类 dog 可以重写该方法以实现
bark,而 cat 可以实现 meow .

10.重载与重写有什么区别?

重载(overloading)指的是在同一个类中,可以有多个同名方法,它们具有不同的参数类型,参数个数或参数顺序不同),编译器根据调用时的参数类型来决定调用哪个方法。
重写(overriding)指的是子类可以重新定义父类中的方法名,参数列表和这回类型必须与父类中的方法一致,通过@override注解来明确表示这是对父类方法的重写。
重载是指在同一个类中定义多个同名方法,而重写是指子类重新定义父类中的方法。

11.抽象类能加final修饰吗?

不能,Java中的抽象类是用来被继承的,而final修饰符用于禁止类被继承或方法被重写,因此,抽象类和final修饰符是互斥的,不能同时使用。

12.接口可以包含构造函数吗?

不可以,因为接口不会有自己的实例,不需要有构造函数

13.Java 中 final 作用是什么?

修饰类、方法、变量

类:不能被继承

修饰方法:不能被重写

修饰变量:一旦被赋值不能被改变

14.什么是泛型?

泛型是Java编程语言中的一个重要特性,它允许类、接口和方法在定义时使用一个或多个类
型参数,这些类型参数在使用时可以被指定为具体的类型。
泛型的主要目的是在编译时提供更强的类型检查,并且在编译后能够保留类型信息,避免了
在运行时出现类型转换异常。

15.java创建对象有哪些方式?

(1)new关键字

(2)使用class类的newInstance()方法

(3)使用constructor类的newInstance()方法

(4)使用clone()方法

(5)使用反序列化,通过对象序列化到文件或流中,然后再进行反序列化来创建对象

14.什么是泛型?

泛型是Java编程语言中的一个重要特性,它允许类、接口和方法在定义时使用一个或多个类
型参数,这些类型参数在使用时可以被指定为具体的类型。
泛型的主要目的是在编译时提供更强的类型检查,并且在编译后能够保留类型信息,避免了
在运行时出现类型转换异常。

 

15.java创建对象有哪些方式?

(1)new关键字

(2)使用class类的newInstance()方法

 

(3)使用constructor类的newInstance()方法

 

(4)使用clone()方法

(5)使用反序列化,通过对象序列化到文件或流中,然后再进行反序列化来创建对象

16.如何获取私有对象?

java中,私有的对象通常用private修饰,只能在类内部使用

不过可以通过以下两种方式来简介获取私有对象

第一:使用公共访问器方法(getter方法)

第二:采用反射机制

反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法,对于任意一个对象,都能调用它的任意一个属性和方法。

 

17.反射在你平时写代码或者框架中的应用场景有哪些?

我们项目使用的数据库是MySQL,使用jdbc连接数据库时使用Class.forName()通过加载数据库驱动程序。

18.能讲一讲Java注解的原理吗?

注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理
类。
我们通过反射获取注解时,返回的是ava运行时生成的动态代理对象。通过代理对象调用自定
义注解的方法,会最终调用AnnotationInvocationHandler的invoke方法。该方法会从
memberValues这个Map中索引出对应的值。而memberValues的来源是Java常量池。

 

19.对注解解析的底层实现了解吗?

注解解析的底层实现主要依赖于Java的反射机制和字节码文件的存储。通过@Retention元注解可以控制注解的保留策略,当使用RetentionPolicy.RUNTIME时,可以在运行时通过反射API来解析注解信息。在JVM层面,会从字节码文件中读取注解信息,并创建注解的代理对象来获取注解的属性值。

 

20.Java注解的作用域呢?

类级别作用域(类的访问级别、继承关系、注释)、

方法级别作用域(访问级别、返回类型、异常、注释)、

字段级别作用域(访问级别、默认值、注释)

21.介绍一下Java异常

异常主要基于两大类,throwable类以及子类,throwable有两个比较重要的子类Error和Exception

Error表示环境运行时错误,这个错误是程序无法处理的严重问题

Exception:可以处理的异常,分为两大类:非运行时异常和运行时异常

非运行异常如文件不存在,运行时异常如空指针

22、Java异常处理有哪些?

try-catch,将觉得有异常的代码写在try里面,catch用于捕获并处理异常

throw语句:手动抛出异常,在代码中使用

throw new ExceptionType("Exception message");

throws关键字:在方法声明中声明可能抛出的异常

public void methodName() throws ExceptionType {//方法体}

finally块:无论异常是否发生都会执行这边,通常用于释放资源

23.== 与 equals 有什么区别?

==比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较;
equals(:比较的是两个字符串的内容,属于内容比较。

24.hashcode和equals方法有什么关系?

假如重写了equals方法则必须重写hashcode,以保证在使用哈希表等数据结构时,对象的相等性判断和存储查找操作能够正常工作。

23.String、StringBuffer、StringBuilder的区别和联系

都是Java中处理字符串常用的类

  • String:不可变的字符串,线程安全,适合固定内容的场景。
  • StringBuffer:可变的字符串,线程安全,适合多线程下的频繁修改。
  • StringBuilder:可变的字符串,非线程安全,适合单线程下的高性能操作。

24.怎么把一个对象从一个jvm转移到另一个jvm?

这个可以使用序列化和反序列化来实现,将对象序列化为字节流,并将其发送到另一个jvm,然后在另一个jvm中反序列化字节流回复对象,这个可以通过java的objectOutStream和objectInputStream来实现

还有一种方法就是使用消息中间件,将对象序列化为消息,通过消息队列进行传输,步骤主要是先将对象转换为通用格式,然后发送消息到中间件,最后目标JVM订阅消息并反序列化

25.将对象转为二进制字节流具体怎么实现?

在Java中通过序列化对象流来完成序列化和反序列化:

首先让类实现serializable接口

创建输出流并写入对象,通过ObjectOutputStream里的writeObject()方法做序列化操作

创建输入流并读取对象,通过ObjectInputStrean里的readObject()方法做反序列化操作。

 

 

http://www.dtcms.com/wzjs/59682.html

相关文章:

  • 做微信公众号的网站有哪些企业网站系统
  • 做区块链在哪个网站关键词排名霸屏代做
  • 网络综艺节目策划方案爱站网seo工具
  • 先做网站还是app营销背景包括哪些内容
  • 2022年最火的加盟店重庆seo按天收费
  • 怎么做军事小视频网站深圳关键词排名推广
  • 如何查询网站的空间搜索引擎优化的策略主要有
  • ps做营销型网站布局搜狗整站优化
  • 做一个简单的公司网站要多少钱广告
  • 网站建设的重点律师推广网站排名
  • 两学一做 投稿网站百度推广账号登陆入口
  • 辽宁建设工程信息网官方网站叶涛网站推广优化
  • 怎么看自己网站的空间国外免费ip地址
  • 网站建设运营的灵魂是什么西安关键词排名软件
  • 商标查询网站怎么做培训机构加盟店排行榜
  • 门户网站建设项目书手机端关键词排名优化软件
  • win网站建设百度竞价推广收费标准
  • 网站模版化配置外贸网站有哪些平台
  • 乌鲁木齐网红餐厅seo标题优化导师咨询
  • 德州做网站哪家好百度账号登陆
  • 怎么在自己的网站做淘宝客软文推广经典案例
  • 中国标准物质信息网网站建设网站免费制作平台
  • 豪华网站建设方案济南全网推广
  • sns有哪些著名的网站购买友情链接
  • 专业手机网站建设哪家好陕西网站制作
  • 网站制作国内知名企业公司网站免费自建
  • 手机免费上网wifi就业seo好还是sem
  • 网站设计 专业石家庄网站seo
  • 自己制作网站该怎么做哈尔滨最新今日头条新闻
  • 企业网站首页应如何布局网站推广的工作内容