Java校招面试题合集(120题)-01

1、什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

Java虚拟机是一个可以执行Java字节码的虚拟机进程

Java的跨平台不是指的是源程序的跨平台,Java源程序是先经过javac编译器编译成二进制的.class字节码文件,跨平台指的是.class字节码文件,.class字节码文件运行在jvm上,由java解释器(jvm的一部分)会将其解释成对应平台的机器码执行,所以“与平台无关的语言”是指不同平台上安装了不同的jvm,而在不同平台上生成的.class文件是一样的,而.class文件再由对应平台的jvm解释成对应平台的机器码。

一次编译,永久运行

2、JDK和JRE的区别是什么?

JRE(Java Runtime Environment):Java运行时环境,包含了jvm,Java的核心类库和支持文件,是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。

JDK(Java Development Kit):Java开发工具包,包好了jre、编译器等,是程序员使用java语言编写java程序所需要的开发工具包,让开发者开发、编译、执行java应用程序。

如果你想运行java程序,只需要安装jre就行了,如果你想编写java程序,需要安装jdk。

3、“static”关键字是什么意思?Java是否可以覆盖(override)一个private或者是static的方法?

static关键字表示静态的意义,它可以修饰一个变量,一个方法,被其修饰的变量称为类变量,被其修饰的方法称为类方法,其随着类的加载而被加载。

java中static方法是不能被覆盖,因为static方法是编译时候静态绑定的,方法覆盖是基于运行时动态绑定的。

重写的前提是必须要继承,private修饰不支持继承,因此被私有的方法不可以被重写。

4、是否可以在static环境中访问非static变量?

不能直接访问,因为static成员实在类被加载时而加载的,而非static成员则是在类被实例化时创建的,只能通过实例进行访问。大在static环境中访问非static变量时,此时实例很可能还没有被创建,所以不能访问非static变量。

5、Java支持的数据类型有哪些?什么是自动拆装箱?

java支持8大基本数据类型(byte、short、int、long、float、double、boolean、char) String是引用类型

引用类型:JVM中虚拟栈中存的是对象的地址,创建的对象实质在堆中,通过地址来找堆中的对象的过程,即为引用类型,

自动装箱:java编译器在基本数据类型和对应的对象包装类型(引用类型)之间的转换,如int转换为Interger。通俗的讲就是把基本数据转换为对象,转换为对象可以方便的操作数据。拆箱就是其逆过程。

6、Java中的方法覆盖(overriding)和方法重载(overload)是什么意思?

方法覆盖指的是子类重新定义了父类的方法,方法覆盖必须有相同的方法名,参数列表和返回类型,访问权限不允许缩小。

方法重载是同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。

7、Java中,什么是构造方法?什么是构造方法重载?什么是复制构造方法?

构造函数就是在类的对象在创建时会调用的函数,如果没写构造函数,系统会为该对象提供一个默认的构造函数。构造函数的重载与方法发的重载相似,可以为类创建多个构造方法,每一个构造方法必须有它自己唯一的参数列表(例如有参构造和无参构造)。java中复制构造函数就是讲本类的对象作为参数的构造函数,目的是用一个已经实例化的对象来初始化另一个对象,简单的说就是拷贝一个对象。

8、Java支持多继承?

java中类不支持多继承,只支持单继承。但是java中的接口是支持多继承的,接口的作用是用来扩展对象的功能,一个子接口继承多个父接口,说明子接口扩展了多个功能,当类实现接口时,类就扩展了相应的功能。

9、接口和抽象类的区别?

1.接口中所有方法都是抽象的 ,而抽象类中可以有抽象方法和普通方法    2.一个类可以实现多个接口,但只能继承一个抽象类    3.如果一个类继承了一个抽象类或者实现一个接口, 却没有实现其中所有的方法,那这个类还是抽象类.    4.接口的变量都是final的 ,抽象类的变量可以不是final    5.接口中函数是public 抽象类的函数是public ,protected,private 。

从设计层面来说,抽象是对类的抽象,是一种模板设计,借口是行为的抽象,是一种行为的规范。

10、什么是值传递和引用传递?

值传递传递的是该变量的一个副本,改变副本不影响原变量。

引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本,并不是原对象本身。

结合画图很容易理解。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值