最常问的Java面试题,有Get吗?

1. import java和javax有什么区别

刚开始的时候JavaAPI所必需的包是java开头的包,javax当时只是扩展API包来说使用。然而随着时间的推移,javax逐渐的扩展成为Java API的组成部分。但是,将扩展从javax包移动到java包将是太麻烦了,最终会破坏一堆现有的代码。因此,最终决定javax包将成为标准API的一部分。

所以,实际上java和javax没有区别。这都是一个名字。

2. 接口和抽象类的区别是什么?

接口的方法默认是public,所有方法在接口中不能有实现,抽象类可以有非抽象的方法

接口中的实例变量默认是final类型的,而抽象类中则不一定

一个类可以实现多个接口,但最多只能实现一个抽象类

一个类实现接口的话要实现接口的所有方法,而抽象类不一定

接口不能用new实例化,但可以声明,但是必须引用一个实现该接口的对象 从设计层面来说,抽象是对类的抽象,是一种模板设计,接口是行为的抽象,是一种行为的规范。

3. 成员变量与局部变量的区别有那些?

从语法形式上,看成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所修饰;但是,成员变量和局部变量都能被final所修饰;

从变量在内存中的存储方式来看,成员变量是对象的一部分,而对象存在于堆内存,局部变量存在于栈内存

从变量在内存中的生存时间上看,成员变量是对象的一部分,它随着对象的创建而存在,而局部变量随着方法的调用而自动消失。

成员变量如果没有被赋初值,则会自动以类型的默认值而赋值(一种情况例外被final修饰但没有被static修饰的成员变量必须显示地赋值);而局部变量则不会自动赋值。

4. 创建一个对象用什么运算符?对象实体与对象引用有何不同?

new运算符,new创建对象实例(对象实例在堆内存中),对象引用指向对象实例(对象引用存放在栈内存中)。一个对象引用可以指向0个或1个对象(一根绳子可以不系气球,也可以系一个气球);一个对象可以有n个引用指向它(可以用n条绳子系住一个气球)。

5. 什么是方法的返回值?返回值在类的方法里的作用是什么?

方法的返回值是指我们获取到的某个方法体中的代码执行后产生的结果!(前提是该方法可能产生结果)。返回值的作用:接收出结果,使得它可以用于其他的操作!

6. 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确执行吗?为什么?

主要作用是完成对类对象的初始化工作。可以执行。因为一个类即使没有声明构造方法也会有默认的不带参数的构造方法。

7. 构造方法有哪些特性?

名字与类名相同;

没有返回值,但不能用void声明构造函数;

生成类的对象时自动执行,无需调用。

8. 静态方法和实例方法有何不同?

在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制.

9. 对象的相等与指向他们的引用相等,两者有什么不同?

对象的相等 比的是内存中存放的内容是否相等而引用相等 比较的是他们指向的内存地址是否相等。

10. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?

帮助子类做初始化工作。

11. ==与equals(重要)

== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型==比较的是值,引用数据类型==比较的是内存地址)

equals() : 它的作用也是判断两个对象是否相等。但它一般有两种使用情况:

情况1:类没有覆盖equals()方法。则通过equals()比较该类的两个对象时,等价于通过“==”比较这两个对象。

情况2:类覆盖了equals()方法。一般,我们都覆盖equals()方法来两个对象的内容相等;若它们的内容相等,则返回true(即,认为这两个对象相等)。

 为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java的类型擦除

一、各种语言中的编译器是如何处理泛型的 通常情况下,一个编译器处理泛型有两种方式: 1.Code specialization。在实例化一个泛型类或泛型方法时都产生一份新的目标代码(字节码or二进制代码)。例如,针对一个泛型list&…

如何高效学习java呢?

1.基础阶段的学习 在这个学习阶段你应该找一个好的基础学习视频,对着视频认真进行学习,每天自己要逼着自己学习,大学很容易让人颓废。边看还要变敲代码,不要用ide用记事本有利于后期的代码编写习惯,还要做好笔记哦。 …

Java中数组的初始化

一、什么是初始化 在Java程序开发中,使用数组之前都会对其进行初始化,这是因为数组是引用类型,声明数组只是声明一个引用类型的变量,并不是数组对象本身,只要让数组变量指向有效的数组对象,程序中就可使用…

Java程序员如何不断提高自己的专业技能

1、一定要看书 现在学习Java变得比以前容易多了,除了有大量的视频教程外,还有专业的java培训机构,这都使学习变得更加傻瓜化,然而我要说的是,Java虽然变得越来越容易学,然而那只代表入门容易,并…

Java学习路线,你值得了解

Java学习路线,了解一下! 需要资料的欢迎加入学习交流群:9285,05736

_linux中curl命令详解-linux运维

linux中curl命令的使用详情:1、【curl url】获取该网址的文本信息;2、【curl -i url】获取该网址的文本信息以及协议头部信息;3、【curl -x proxy url】使用代理获取网页文本信息。linux中curl命令的使用详情:1、curl url(获取该网…

Java的重载与覆盖,傻傻分不清!

重载和覆盖是JAVA多态性的不同表现方式,其中重载是在一个类中多态性的一种表现,是指在一个类中定义了多个同名的方法,他们或有不同参数个数或有不同参数类型。 在使用重载时需注意以下几点: 1)重载是通过参数来区分的…

python字符串_教你快速了解 Python 字符串

我们知道字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 Hello World! var2 "Python Runoob"Python 访问字符串中的值Python 不支持单字符类型&#…

那些年踩过的Java异常,简直了!

1、NullPointerException 空指针异常,操作一个 null 对象的方法或属性时会抛出这个异常。具体看这篇文章:Java 避免空指针的 5 个案例。 2、OutOfMemoryError 内存异常异常,这不是程序能控制的,是指要分配的对象的内存超出了当前最…

字体怎么安装到电脑上_文章还在使用电脑上的固定字体?这款字体软件超好用...

在我们平日里的工作以及生活当中,我们经常会看到一些文字的文档。但是,有的时候我们会因为文字在文档内太多单一,从而觉得枯燥乏味一点了都没有。尤其是在用电脑读文本小说、或者是说明文档的的时候,字体千篇一律,看着…

java面向对象多态特性

一、多态的概念 多态是继封装,继承之后,面向对象的三大特性。 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的张三同学既是学生也是人,即出现两种形态。 java作为面向对象的语言&…

决策树 prepruning_智能建筑运维前探 AI天天见之五:决策树算法应用探索

点击上方“蓝字”关注我们,成为幸福的人~这是一个大街小巷热议人工智能的时代~人工智能犹如上世纪九十年代的互联网,以惊涛之势席卷大江南北、带动着产业革命。作为智慧建筑运维领域的专业服务商,有志于“用数字智能服务每个建筑,…

Java技术知识点的一些总结

边学习边记录,对于程序员来说真的是一个很好的学习习惯,下面是近期在学习java时总结的一些技术知识点。 第一讲,主要是Java环境变量的配置。搭建好环境才能干活。要理解什么是编译、什么是运行。编译是javac.exe程序在负责;运行则…

电脑机器人_【头条】厚积薄发!卡达电脑智能机器人之纸箱码垛机赋能智能工厂...

点击上方视频,观看卡达电脑“智能机器人之纸箱码垛机”现场运行视频。近年来,随着纸包装行业市场竞争加剧、订单交付时间变短、人工成本逐年增加、产品质量要求变高等挑战,使得纸箱包装智能化生产变得极为迫切。“软件硬件” 助力瓦楞纸箱包装…

如何参悟Java的三大框架

大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇。 Java是世界第一编程语言,这已经达成共识,是毋庸置疑的真理。框架是程序员们必学的知识点,而且是十分重要的应用…

amba simple class驱动_UML - 建模基础 - 用例驱动

用例驱动是统一过程的重要概念,或者说整个软件生产过程就是用例驱动。用例驱动软件生产过程是非常有道理的。让我们再次回顾建模公式,很容易得出一个推论,要解决问题领域就要归纳出所有必要的抽象角度(用例),为这些用例描述出可能…

ad file type not recognised_Java实用工具类:File工具类方法学习,可创建目录及文件...

开发项目过程中,会用到很多工具类,今天分享一个Java中File操作工具类,可以帮你节约时间,提高开发效率。File工具类public class CreateFileUtil {public static boolean createFile(String destFileName) { File file new File(d…

putty保存用户名和密码_社保局官网搬家啦!忘记用户名、密码肿么办?自救指南来一波!...

刚过完元旦四舍五入一下马上又要到春节了又开始期盼着下一个假期新年换新衣新年新气象我们官网也换新网址啦!宝宝们还记得前几期的内容吗?小编再三提醒过大家一定要收藏新网址办理社保业务不要跑错地方哦!深圳市社会保险基金管理局官网已经开…

hibernate 批量更新_360产品动态,10月份平台都有哪些更新?

本篇给大家分享的是360资源上下线产品变化快讯,下面一起来看下10月份360平台都有哪些产品更新。每月初定期更新上月内容哦~1产品优化| 新功能上线▌展示广告10月13日 创意质量上线概述:展示广告-投放管理-创意层级-诊断,修改为“创意质量”。…

Java中的迭代与递归

递归 提到迭代,不得不提一个数学表达式: n!n*(n-1)*(n-2)*...*1 有很多方法来计算阶乘。有一定数学基础的人都知道n!n*(n-1)!因此,代码的实现可以直接写成: 代码一 int factorial (int n) { if (n 1) { return 1; } else …