欢迎光临散文网 会员登陆 & 注册

这些基础的java面试题,你都知道吗?

2021-07-04 18:02 作者:每天一个秃顶小技巧  | 我要投稿

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

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

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

以下总结的问题,全都来自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程序开发时用的开发工具包,其内部也有JRE运行环境JRE。JRE是JAVA程序运行时需要的运行环境,就是说如果你光是运行JAVA程序而不是去搞开发的话,只安装JRE就能运行已经存在的JAVA程序了。JDk、JRE内部都包含JAVA虚拟机JVM,JAVA虚拟机内部包含许多应用程序的类的解释器和类加载器等等。

2、Java三种注释类型

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

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

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

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

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

共同点:

  1. i++和++i都是变量自增1,都等价于i=i+1

  2. 如果i++,++i是一条单独的语句,两者没有任何区别

  3. i++和++i的使用仅仅针对变量。 5++和++5会报错,因为5不是变量。

不同点:

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

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

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

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、方法重载和方法重写(覆盖)的区别

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

最近有准备面试的同学,抓紧时间好好准备一下了,有需要全部面试题的同学,可以留言,UP会私发给各位同学的。

这些基础的java面试题,你都知道吗?的评论 (共 条)

分享到微博请遵守国家法律