首页 > 编程语言 >挑战Java面试题复习第1天,坚持就是胜利

挑战Java面试题复习第1天,坚持就是胜利

时间:2024-10-26 22:10:10浏览次数:1  
标签:面试题 Java 复习 对象 equals 类型 Integer 方法

面向对象和面向过程的区别
面向过程:

步骤分析:将问题分解为一系列步骤。
函数实现:用函数逐步实现这些步骤。
调用执行:在需要时调用这些函数。
高性能:适合对性能要求高的场合,如单片机和嵌入式开发。
面向对象:

对象分解:将问题分解为多个对象。
行为描述:对象描述事物在问题解决过程中的行为。
特性:封装、继承、多态。
优点:易于维护、复用和扩展,可构建低耦合系统。
性能:相对面向过程,性能较低。
标识符的命名规则
标识符:

定义:程序中自定义的元素,如类名、方法名、变量名等。
命名规则(硬性要求):
组成:可包含字母、数字、$、_。
限制:不能以数字开头。
避免:不得使用关键字。
命名规范(非硬性要求):

类名:首字母大写,后续每个单词首字母大写(大驼峰式)。
变量名:首字母小写,后续每个单词首字母大写(小驼峰式)。
方法名:与变量名规范相同。
自动装箱与拆箱
装箱:
定义:将基本数据类型自动转换为对应的包装器类型。
示例:int 转换为 Integer。
方法:通过 Integer.valueOf(int) 实现。
拆箱:
定义:将包装器类型自动转换回对应的基本数据类型。
示例:Integer 转换为 int。
方法:通过 Integer.intValue() 实现。
Java SE5之前的装箱:
需要显式使用 new 关键字创建包装器类型实例。
示例:Integer i = new Integer(10);
Java SE5及之后的装箱:
提供了自动装箱特性,简化了包装器类型的创建。
示例:Integer i = 10;(自动调用 Integer.valueOf(int))
重载和重写的区别
重写(Override):

父子类关系:仅在子类与父类之间发生。
方法签名一致:方法名、参数列表、返回类型(除子类方法返回类型是父类返回类型的子类外)必须与被重写的方法相同。
访问权限:子类方法的访问修饰符不能比父类方法的更严格。
异常限制:重写的方法不能抛出新的或更广泛的检查型异常。
重载(Overload):

多态性表现:是类中多态性的一种体现。
参数列表差异:要求同名方法的参数列表必须不同(可以是参数类型、个数或顺序)。
返回类型:对返回值类型没有限制,可以相同也可以不同,重载的判断依据是参数列表而非返回类型。
equals与==的区别
== 操作符:

地址比较:比较两个对象在内存中的地址是否相同。
对象引用:判断两个引用是否指向同一个对象。
类型要求:操作数必须类型相同或存在继承关系。
数值比较:对于基本数据类型,如果值相等则比较结果为 true。
指针操作:本质上是比较指针地址。
equals 方法:

内容比较:比较两个对象的内容是否相等。
继承自 Object:所有类都继承自 java.lang.Object 类,适用于所有对象。
默认行为:如果没有重写 equals 方法,它的行为与 == 相同。
空指针安全:使用 equals 比较时,可以避免 NullPointerException。
最佳实践:在比较对象时推荐使用 equals 方法,尤其是在阿里代码规范中。
总结:

在比较对象是否相等时,应使用 equals 方法。
在比较常量时,将常量写在前面,以避免可能的 NullPointerException。
推荐使用阿里代码规范,并使用阿里插件来检查和替换不合适的 == 使用。
Hashcode的作用
Java集合分为List和Set:

List:有序,允许重复。
Set:无序,不允许重复。
Set判断元素存在性:

使用equals方法,但在大量元素时效率低。
哈希算法提升效率:
将集合划分为多个存储区域。
每个对象通过hashCode方法计算哈希码,确定存储区域。
hashCode方法:

根据对象的内存地址计算出一个值。
集合添加新元素时,先通过hashCode方法定位存储位置。
如果位置无元素,直接存储;如果位置有元素,使用equals方法比较。
相同则不存储,不同则寻找其他位置。
减少equals方法调用次数,提高性能。
String、StringBuffer和StringBuilder的区别
String 类要点:

不是基本数据类型,而是一个对象。
底层是 final 类型的字符数组。
字符串内容不可变,任何修改都会生成新的 String 对象。
字段定义:private final char value[];
字符串连接操作:

使用 + 操作符时,会隐式创建 StringBuilder 对象并调用 append 方法进行拼接。
StringBuilder 和 StringBuffer 要点:

两者都继承自 AbstractStringBuilder 抽象类。
底层都是可变字符数组:char[] value;
适用于频繁的字符串操作。
线程安全:

StringBuffer 是线程安全的,方法加了同步锁。
StringBuilder 非线程安全,没有加同步锁。

标签:面试题,Java,复习,对象,equals,类型,Integer,方法
From: https://www.cnblogs.com/wukongnotnull/p/18504715

相关文章

  • 10.26如何进行简单的java连接数据库
    1建表1.win+R输入cmd输入mysql-uroot-p输入密码2.查看数据库原本的成员showdatabases3.创建一个新表,如studentcreatedatabasestudent;4.使用usestudent;createtablestudent(idint,namevarchar(10));5.插入insertintostudentvalue(1,'张三');in......
  • java-BLOG-1
    1.前言第一二个题目集除了最后一个题目以及第三个题目集的第一个题目都比较简单,只要按照题目要求,创建相应的类,题目比较简单一般只需要创建一个类和相应的一些属性、方法,按照输入输出的要求进行创建就行。前两个题目集只需要做对相应的输出就能做对,而第三个题目集重点增加了对输入......
  • jsp ssm 校园新闻管理系统 新闻发布系统 news 项目源码 web java
    一、项目简介本项目是一套基于SSM的校园新闻管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、CSS、Ja......
  • jsp ssm 智能图书馆图书推荐系统 图书管理 项目源码 web java
    一、项目简介本项目是一套基于SSM的智能图书馆图书推荐系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、C......
  • 南昌航空大学-软件学院-22207112-卢翔-JAVAPTA(1-3)博客
    目录前言PTA第一次作业(7-5答题判题程序-1)设计与分析题目分析知识点解析调试过程时序图,耦合度改进建议PTA第二次作业设计与分析题目分析知识点解析(不重复)调试过程类图,耦合度改进建议PTA第三次作业设计与分析题目分析知识点解析调试过程类图,耦合度改进建议踩坑心得总结前言本次的......
  • Java面向对象
    **Java面向对象学习心得**在学习Java的过程中,面向对象编程(OOP)无疑是最重要的概念之一。Java是一门纯面向对象的编程语言,它通过类和对象的概念使得程序设计更为清晰、模块化,并且便于维护和扩展。以下是我在学习Java面向对象编程过程中的一些心得体会。一、理解面向对象的......
  • 初学Java(二)
    初学java(二)在Java学习的第二周,我的学习旅程取得了显著的进展,既加深了对编程基础的理解,又开始接触一些更为复杂的概念。在这段时间里,我意识到编程不仅仅是写代码的过程,更是一种逻辑思维的锻炼和解决问题的能力提升。一、基础知识的巩固本周,我复习了Java的基本语法,包括数据......
  • java游戏第六天——总结
    开始我们先在这里创建五个java文件,后面创建一个文件夹存储图片,我就按照这几个文件作用展开描述bg.javapackagecommon;importcommon.game_pic;importjava.awt.Color;importjava.awt.Graphics;publicclassbg{ publicvoidpaintself(Graphicsg) { g.drawIm......
  • java游戏(第4天)终于能移动了
    学到,自己的小鱼类packagecommon;importjava.awt.*;importcommon.game_pic;publicclassmyfish{ Imageimg=game_pic.myfish_l; //坐标 intx=700; inty=500; intwidth=50; intheight=50; //速度 intspeed=20; //等级 intlevel=1; publicvoidpaintse......
  • 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现二
    一、前言介绍:1.1项目摘要随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势。古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力。然而,在现代社会中,由于生活节奏的加快和信息获取方式的多样化,古诗词的传播和阅读面临着一定的挑......