这些基础的java面试题,你能回答对吗?

本文总结了面试中常见的Java基础问题,包括JVM、JDK与JRE的区别,Java注释类型,基本数据类型,i++与++i的区别,if与switch语句的异同,while与do-while循环的差异,break与continue的作用,类与对象的关系,面向过程与面向对象的区别,以及方法重载与重写的概念。通过这些问题,帮助Java开发者复习基础知识,提高面试成功率。
摘要由CSDN通过智能技术生成

最近收到好多正在找工作的同学的诉苦,辛辛苦苦准备了十多天,终于有了一个面试的机会,却折在了“八大基本数据类型都有什么?”这种最基础的问题上,因而痛失offer,错失机会。

What?八大基本数据类型都回答不上来?同学你这基础可得好好复习一下了。

Java基础教程_初学者入门_基础巩固  ☚点击开始学习

面试官的心思难以捉摸,鬼知道会问什么奇葩问题,可能很多同学都把精力用在了IOC,AOP,数据库调优以及各种框架原理的准备上,而忽略了那些最简单,最基础的问题。

有了前车之鉴,为了避免其他同学也遇到这种情况。UP特意整理了一些在面试中出现频率比较高的Java基础的问题,希望能帮助各位同学快速回忆起Java中基础的知识点,顺利拿到offer,找到自己满意的工作。 

以下总结的问题,全都来自Java300集,基础不太扎实的同学,一定要再好好学一下哦~ 

Java300集初学者教程

1、什么是JVM?什么是JDK? 什么是JRE?

  • JVM :JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
  • JRE:JRE是java runtime environment(java运行环境)的缩写。光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。
  • JDK:JDK是java development kit(java开发工具包)的缩写。每个学java的人都会先在机器上装一个JDK,那 让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。

现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。

JDK,JRE,JVM三者关系概括如下:

JDK是Java程序开发时用的开发工具包,其内部也有Java运行环境JRE。JRE是Java程序运行时需要的运行环境,就是说如果你光是运行JAVA程序而不是去搞开发的话,只安装JRE就能运行已经存在的Java程序了。JDk、JRE内部都包含Java虚拟机JVM,JAVA虚拟机内部包含许多应用程序的类的解释器和类加载器等等。

2、Java三种注释类型

1)单行注释,采用“//”方式.只能注释一行代码。

//类成员变量

2)多行注释,采用“/*...*/”方式,可注释多行代码,其中不允许出现嵌套。 

/*System.out.println("a");
System.out.println("b");
System.out.println("c");*/

3)文档注释,采用“/**...*/”方式。

/**
* 子类 Dog
* @author Administrator
**/
public class Dog extends Animal{}

3、8种基本数据类型及其字节数

数据类型

关键字

字节数

数值型整数型byte1
short2
int4
浮点型long8
float4
double8
布尔型boolean1(位)
字符型char2

4、i++和++i的异同之处

共同点:

  1. i++和++i都是变量自增1,都等价于i=i+1
  2. 如果i++,++i是一条单独的语句,两者没有任何区别
  3. i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。

不同点:

如果i++,++i不是一条单独的语句,他们就有区别。

i++ :先运算后增1。如:

int x=5;
int y=x++;
System.out.println("x="+x+", y="+y);
//以上代码运行后输出结果为:x=6, y=5

++i : 先增1后运算。如:

int x=5;
int y=++x;
System.out.println("x="+x+", y="+y);
//以上代码运行后输出结果为:x=6, y=6

5、if多分支语句和switch多分支语句的异同之处

相同之处:

都是分支语句,对超过一种的情况进行判断处理。

不同之处:

switch更适合用于多分支情况,就是有很多种情况需要判断处理,判断条件类型单一,只有一个入口,在分支执行完后(如果没有break跳出),不加判断地执行下去;

而if—elseif---else多分枝主要适用于分支较少的分支结构,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行。

switch为等值判断(不允许比如>= <=),而if为等值和区间都可以,if的使用范围大。

6、while和do-while循环的区别

while先判断后执行,第一次判断为false,循环体一次都不执行

do while先执行 后判断,最少执行1次。

如果while循环第一次判断为true, 则两种循环没有区别。

7、break和continue的作用

break: 结束当前循环并退出当前循环体。

break还可以退出switch语句

continue: 循环体中后续的语句不执行,但是循环没有结束,继续进行循环条件的判断(for循环还会i++)。continue只是结束本次循环。

8、类和对象的关系

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。

类和对象好比图纸和实物的关系,模具和铸件的关系。

比如人类就是一个概念,人类具有身高,体重等属性。人类可以做吃饭、说话等方法。

小明就是一个具体的人,也就是实例,他的属性是具体的身高200cm,体重180kg,他做的方法是具体的吃了一碗白米饭,说了“12345”这样一句话。

9、面向过程和面向对象的区别

面向过程面向对象
区别

事务比较简单,可以用线性的思维去解决。

事务比较复杂,使用简单的线性思想无法解决。
共同点面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是对立的。

解决复杂问题,通过面向对象的方式便于我们从宏观上把握事务之间的复杂关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程的方式来处理

比喻

面向过程是蛋炒饭,面向对象是盖浇饭。盖浇饭的好处就是“饭”“菜”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。

区别

编程思路不同:面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。

封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。

面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显。

10、方法重载和方法重写(覆盖)的区别

英文位置作用修饰符返回值方法名参数抛出异常
重载overload同一个类中在一个类里面为一种行为提供多种实现方式并提高可读性无关无关相同不同无关
重写override子类和父类之间父类方法无法满足子类的要求,子类通过方法重写满足要求大于等于小于等于相同相同小于等于

以上这十道面试题UP认为还是很重要的,UP一共整理了600多道面试题,包括java的各个方面。光基础部分就有300多,占了一半。所以,基础很重要啊同学们。把基础部分再好好学一下吧。

Java基础知识点巩固

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值