才学会一些Java基础,去面试一般会被问到什么(带答案上)?

相信还是有很多小伙伴才学习Java没多久,只了解了Java的基础,也会去公司面试工作后再满满跟着大佬提升技术。

但是就有些小伙伴不知道对于我们这样的基础Java程序员来说,去面试公司一般会问到些什么,这里我就整理了一些基础面试问题,看看Java的基础面试问题和答案,希望对你们有帮助。下面开始讲解问题和答案。
在这里插入图片描述
下面这个链接,暗号: csdn 。加入即可获得。
点这个,这个。

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

JVM :英文名称(Java Virtual Machine),就是我们都知道的 Java 虚拟机。它只认识 xxx.class 这种类型的文件。

JRE :英文名称(Java Runtime Environment),我们叫它Java运行环境,包括Java虚拟机和Java程序所需的核心类库等。如果想要运行一个开发好的Java程序,计算机只需要安装JRE即可。

JDK :英文名称(Java Development Kit),JDK是提供给Java考法人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就不用了在单独安装JRE了。

其中的开发工具:编译工具(javac.exe)、打包工具(jar.exe)等。

简单来说:JDK>JRE>JVM,使用JDK开发完成的Java程序,交给JRE去运行。

2.Java中一个char类型是否可以存储一个汉字?

java采用unicode,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言,char 在java中是2个字节。

所以可以存储中文。

3.Java的数据类型?

4.自动类型转换规则是什么?

规则1:如果一个操作数为double型,则整个表达式可提升为double型

规则2:满足自动类型转换的条件

扫描二维码关注公众号,回复: 11514469 查看本文章

两种类型要兼容

数值类型(整型和浮点型)互相兼容

目标类型大于源类型

例如:double 型大于 int 型

5.运算符优先级顺序是什么?

算术运算符>关系运算符>逻辑运算符

!> 算数运算符 > 比较运算符 > && > ||

6.if和switch选择结构的区别是什么?

a.相同点

都是用来处理多分支条件的结构

b.不同点

switch选择结构只能处理等值条件判断的情况

多重if选择结构适合某个变量处于某个连续区间时的情况

7.While循环和do while循环的区别是什么?

a.执行次序不同

While 先判断再执行

Do while 先执行再判断

b.初始情况不满足循环条件时

While循环一次都不会执行

Do while循环至少执行一次
在这里插入图片描述
下面这个链接,暗号: csdn 。加入即可获得。
点这个,这个。

8.break和continue的区别?

a.使用场合

break常用于switch结构和循环结构中

continue一般用于循环结构中

b.作用(循环结构中)

Break语句终止本层循环,程序跳转到循环块外的下一条语句

Continue跳出本次循环,进入下一次循环

9.数组使用的步骤?

1.声明

2.分配空间

3.赋值(边声明边赋值;动态从键盘录入信息赋值)

4.处理数据

10.类和对象的关系?

1.类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。

2.对象是类的一个具体。它是一个实实在在存在的东西。

*简单来说:类是对象的模板,对象是类的实例化。

11.类的开发步骤是什么?

1.发现类(定义类)

2.编写属性

3.编写方法

  1. 使用属性和方法

12.局部变量和成员变量的区别是什么?

a. 作用域不同

成员变量作用在整个类内都是可见的;局部变量仅限于它定义的方法内。

b. 初始值不同

会为成员变量赋初值;不会给局部变量赋初值。

c.优先级不同

在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级。

d.声明位置

成员变量类内方法外,局部变量在方法内

13.静态变量和实例变量的区别?

a.静态变量是被 static 修饰符修饰的变量,在内存中只有一个内存空间,在加载类的过程中完成静态变量的内存分配,可以直接通过(类名.)来访问。

b.实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它,每创建一个实例对象,就会为实例变量分配不同的内存,各个对象访问自己的实例变量。

c.无论创建了一个类的多少个对象,静态变量只初始化一次,所有的实例都可以访问此静态变量,而且可以通过类名直接访问。

14.String类可以被继承吗?

不可以。

String 类是由final修饰的,所以不可以被继承。

15.String类中常用的方法都有哪些?

获得字符串的长度:length()
比较字符串:equals()
连接字符串:concat()
提取字符串:substring()
搜索字符串:indexOf()
拆分字符串:split()
忽略字符串大小写:equalsIgnoreCase()
将所有英文字符转换为小写字母:toLowerCase()
将所有英文字符转换为大写字母:toUpperCase( )
去空格:trim()

16.String、StringBuffer、StringBuilder之间的区别?

String:适用于少量的字符串操作的情况

StringBuilder:线程不安全,适用于单线程下在字符缓冲区进行大量操作的情况

StringBuffer:线程安全,效率低适用多线程下在字符缓冲区进行大量操作的情况

(操作就是对字符串的拼接)JDBC中拼接sql

17.你对面向对象4大特性的理解?

封装:

通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。我们在类中编写的方法就是对实现细节的一种封装;我们编写一个类就是对数据和数据操作的封装。可以说,封装就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口。(减少代码冗余)
继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

多态:

多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。多态性分为编译时的多态性和运行时的多态性。方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写(override)实现的是运行时的多态性(也称为后绑定)

抽象:

抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

18.方法的重载和重写的区别是什么?(方法的重载是发生在一个类里面的,方法的重写是发生在父子类之间的)
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;

重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

方法重载的规则:

1.方法名一致,参数列表中参数的顺序,类型,个数不同。

2.重载与方法的返回值无关,发生在一个类里面的。

3.可以抛出不同的异常,可以有不同修饰符。

方法重写的规则:

1.参数列表、返回类型必须完全与被重写方法的一致。

2.构造方法不能被重写,声明为 final 的方法不能被重写,声明为 static 的方法不能被重写,但是能够被再次声明。

  1. 发生在父子类之间的,访问权限子类不能严于父类。

19.public、protected、private、默认的(缺省friendly)之间的区别是什么?

20.多重继承下初始化顺序是什么?

先父类后子类,先属性后构造方法。

21.使用运行时多态开发的思路是什么?

a.编写父类

b.编写子类,子类重写父类方法

c.运行时,使用父类的类型,子类的对象

向上转型 Pet pet = new Dog();

22.类中向上转型和向下转型的区别是什么?

向下转型:父类转换为子类(使用instanceof强制类型转换)(对象 instanceof 类或接口)

向上转型:子类转换为父类(自动进行类型转换)使用父类的类型,子类的对象

提供【免费】的Java架构学习资料,学习技术内容包含有:Spring,Dubbo,MyBatis, RPC, 源码分析,高并发、高性能、分布式,性能优化,微服务 高级架构开发等等。

下面这个链接,暗号: csdn 。加入即可获得。
点这个,这个。

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48011329/article/details/107796916