栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 编程基础面试题(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 编程基础面试题(一)

文章目录
  • Java 编程基础面试题(一)
        • 1.什么是面向对象?
        • 2.Java 数据类型有哪些?
        • 3.为什么重写 equals 还要重写 hashcode?
        • 4.== 和 equals 比较的区别
        • 5.final 关键字的作用
        • 6.介绍 Java 的集合类
        • 7.ArrayList 和 LinkedList 的区别
        • 8.说一说你对 Java 访问权限的了解
        • 9.请介绍成员变量和局部变量的区别
        • 10.说说为什么要有包装类?
        • 11.如何进行 int 和 Double 两个数判断相等?

—关注“程序员闭关修炼”公众号,回复“面试”即可获得全套Java面试笔记。

Java 编程基础面试题(一) 1.什么是面向对象?

面向对象包括封装、继承、和多态。

----封装:

封装是指:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问。

----继承:

继承就是:子类继承父类的方法和属性,并作出自己的改变和扩展,可以单继承也可以多继承。

继承的特性:

  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

----多态:

**多态就是:**子类继承父类的方法和属性之后,子类的属性和方法可以具有不同于父类的数据类型和表现行为。

多态存在的三个必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child();
2.Java 数据类型有哪些?

基本数据类型有四类八种:

  • 整数型:byte(1字节),short(2),int(4),long(8) 数据范围:-27—27-1(以此类推)

  • 浮点型:float(4),double(8)

  • 字符型:char(2)

  • 布尔型:boolean(14)

    *补充:int 类型数据范围为:-231----231-1

引用类型有三种:(引用数据类型,就是对一个对象的引用,本质上就是通过指针指向堆中的内存地址)

  • 数组
  • 接口
3.为什么重写 equals 还要重写 hashcode?

​ equals 和 hashcode 是配套使用的。

​ 如果不重写 hashcode,那么equals方法认定为相等的两个对象拥有两个不同的哈希值。

​ 因为必须保证重写后的equals方法认定相同的两个对象拥有相同的哈希值。

4.== 和 equals 比较的区别
  • 对象不同:equals():是超类Object中的方法,==:是二元操作符。

  • 比较的对象不同:equals() 方法通过重写可以比较两个对象的内容是否相等。

    ​ == 比较分为两种情况: 第一:基本数据类型比较:比较的是他们的值是否相等

    ​ 第二:引用数据类型:比较的是引用的地址值是否相同

5.final 关键字的作用
	使用final 关键字声明类、方法、属性

	(1)使用final修饰的类不能有子类。

	(2)使用final修饰的方法不能被子类重写。

	(3)使用final修饰的变量(成员变量和局部变量)是常量,常量不可修改。
6.介绍 Java 的集合类 7.ArrayList 和 LinkedList 的区别
  • 数据结构不同:ArrayList 是Array(动态数组)的数据结构,LinkedList是Link(链表)的数据结构.

  • 不同操作效率不同:查找和修改操作 ArrayList 快。增加和删除 LinkedList 快。

  • 开销不同:ArrayList 创建需要开辟一段存储空间,LinkedList 不需要。

8.说一说你对 Java 访问权限的了解

Java 提供了三种访问修饰符,分别是 private、protect、public。

分为四种访问权限,分别为:private、default、protect、public。

在修饰成员变量/成员方法时分为四种情况:

  • private:只准许类内部成员访问。
  • default:准许类内部成员、同一包下的其他类访问。
  • protect:准许类内部成员、同一包下的其他类、子类访问。
  • public:准许任意包下任意类访问。

在修饰类时,分为两种情况:

  • default: 准许同一包下其他类访问。
  • public:准许任意包下任意类访问。
9.请介绍成员变量和局部变量的区别

成员变量:

  • 成员变量是在类的范围内定义的变量。

  • 成员变量有默认初始值。

  • 未被 static 修饰的称为实例变量,存储于堆内存中,生命周期与对象相同。

  • 被 static 修饰的称为类变量,存储与方法区中,生命周期与当前类相同。

局部变量:

  • 局部变量是在方法的范围内定义的变量。
  • 局部变量没有默认初始值。
  • 局部变量存储在栈内存中,方法调用结束,变量空间自动释放。
10.说说为什么要有包装类?

​ Java 语言是面向对象的语言,即“一切皆对象”。但是8中基本数据类型却出现了例外,为了解决这个问题,Java 为这8中基本数据类型都定义了一个引用类型,这就是包装类。

而且 JDK1.5提供了自动装箱和自动拆箱功能:

自动装箱:可以将基本数据类型直接赋给对应的包装类型;

自动拆箱:可以将包装类型直接赋给对应的基本数据类型;

比如:某个方法的参数是包装类型,而我们要直接传入一个基本数据类型,那么通过自动装箱就可以直接传入啦。

11.如何进行 int 和 Double 两个数判断相等?
  • 不能用 == 或者 compareTo 方法比较,因为他们是不同的数据类型。
  • 不能转为字符串比较,因为 int 不带小数点,double 带小数点。
  • ***整数和浮点数的包装类都继承于 Number 类型,而Number 类型提供了分别转向 byte、short、int、long、folat、Double 的方法,故 int 和 double 两个类型进行比较,应该调用 Number 方法转化成相同数据类型,在进行比较。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号