JavaSE面试题
XuXinStu
只要路是对的,就不怕路远
展开
-
JavaSE面试题——9.重载和重写的区别?
方法重载指在同一个类中,多个方法之间,方法名相同,参数列表不同,用于执行不同的处理逻辑方法重载是Java编译时多态的体现,编译期会根据参数类型和长度来确定调用的方法方法重载发生在编译期同一个类多个方法之间方法的参数列表必须不同构造方法也可以进行重载方法重载与返回类型和修饰符无关方法重写指子类重写父类的某个方法,用于对父类的方法重新定义,方法重写发生在子类中,通过方法重写来实现多态,方法重写是运行时多态,运行时根据实际类型来选择方法,方法的符号引用会在运行时进行解析,之后在类加载的解析阶段原创 2022-03-31 10:23:05 · 471 阅读 · 2 评论 -
JavaSE面试题——8.成员变量和局部变量有什么区别?
语法规则不同:成员变量定义在类在中,任何方法和代码块之外局部变量则是定义在代码块或者方法中或者方法的参数作用域不同:成员变量可以被类中的所有方法进行调用局部变量只能在定义的方法或代码块中使用内存中的存储方式不同:使用static修饰的成员变量,属于类的变量,储存在JVM的方法区中没有使用static修饰的成员变量属于对象的成员变量,随着对象存储在堆内存中局部变量属于某个代码块或方法,存储在栈内存中方法栈帧的局部变量表中生命周期不同:成员变量属于对象的一部分,它随着对象的创建而创建,随着原创 2022-03-31 10:21:11 · 455 阅读 · 0 评论 -
JavaSE面试题——7.为什么重写equals方法时必须重写hashcode方法?
如果两个对象相等(即:调用equals方法返回为true),那么他们的hashcode值也一定要相等如果两个对象的hashcode值相等,那么这两个对象并不一定相等(即:调用equals方法返回可能为fasle)所以在重写equals方法的时候,为保证hashcode值也相等就必须也同时重写hashcode方法,否则将导致该对象不能在基于hash表的集合中正常使用,如:HashMap、HashTable、HashSet等集合重写equals方法时重写hashcode方法,可以减少equals方法调用的原创 2022-03-25 22:13:48 · 1543 阅读 · 5 评论 -
JavaSE面试题——6.静态方法和实例方法有何不同?
静态方法和实例方法的不同有三点调用方式不同静态方法调用可以使用“对象名。方法名”或“类名。方法名”,但是实例方法只能使用“对象名。方法名”调用访问内容不同静态方法只能访问类的静态成员(静态方法和静态属性)不允许访问实例成员,而实例方法即可以访问静态方法和实例方法初始化时机不同静态方法在类加载的时候被初始化,并且只会被初始化一次,而实例方法会在创建对象的时候被初始化,每次创建对象都会被初始化JavaSE面试题整理JavaSE面试题——1.面向对象和面向过程有什么区别?JavaSE面试题——原创 2022-03-24 21:40:27 · 262 阅读 · 2 评论 -
JavaSE面试题——5.面向对象的三大特征:封装、继承、多态
封装:封装的目的是隐藏对象内部的实现细节,以提高安全性和简化编程。指把一个对象的属性隐藏在对象内部,不允许对象外部直接访问对象内部的数据,只能通过可以被外界访问的方法来操作这些属性继承:继承是代码复用的一种机制,以已存在的类为基础建立新类的技术,新类被称为子类,已存在的类被称为父类,子类自动继承父类的非私有的属性和方法,从而达到代码复用的效果JAVA中只支持单继承,不支持多继承多态:顾名思义,多态表示一个对象具有多种形态,具体表现为父类的引用指向子类对象,使程序的拓展性更强,提高了系统的灵活性原创 2022-03-24 21:05:15 · 4567 阅读 · 4 评论 -
JavaSE面试题——4.Int 和 Integer 有什么区别?
int是基本类型 Integer是引用类型int的默认值是0, Integer的默认值是nullint比较的时候使用== , Integer比较的时候使用equalsInteger 有一个内部缓存的存在,在-128 - 127 之间可以使用 ==进行比较,它会直接取缓存,在大于127或者小于-128时就不一定相等了,需要使用equals来进行比较我们在平时使用的时候,一些临时的对象使用int比较好,因为它是分配在栈上的我们在定义一些实体类的时候,最好使用Integer,这样的话在序列化和反序列原创 2022-03-21 22:13:55 · 674 阅读 · 28 评论 -
JavaSE面试题——3.== 和 equals 的区别
== 是运算符 equals是方法当比较基本类型时,==比较的是值是否相等当比较引用类型时,比较的是他们的地址值是否相等equals默认实现是,比较地址值是否相等我们可以根据业务需要重写equals方法里的比较规则思考:Interger = 129 与 int = 129 是否相等?JavaSE面试题JavaSE面试题——1.面向对象和面向过程有什么区别?JavaSE面试题——2.接口和抽象类的区别...原创 2022-03-20 20:16:51 · 510 阅读 · 20 评论 -
JavaSE面试题——2.接口和抽象类的区别
一、接口和抽象类的相同点① 接口和抽象类都不能被实例化,它们用于被其他类实现和继承② 接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法二、接口和抽象类的区别① 接口里只能包含抽象方法,静态方法和默认方法,不能为方法提供实现,也就是方法不能书写方法体,而抽象类中的普通方法可以为方法提供实现② 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是被public static final 修饰的常量,常量必须赋值③ 接口中不能包含构造器,而抽象类中原创 2022-03-19 22:02:39 · 2228 阅读 · 10 评论 -
JavaSE面试题——1.面向对象和面向过程有什么区别?
面向过程:在我理解,面向过程就是把一件事情拆分成一个个的方法和数据,然后按照一定的顺序去执行这些方法,每一个方法都可以看做是一个过程优点:因为面向过程不需要实例化对象,所以面向过程的性能要好于面向对象缺点:设计出的系统耦合性比较高,不易于维护和拓展面向对象:在我理解,面向对象就是把一件事情抽象成一个对象,赋予这个对象它的属性和方法,让这个对象去执行他自己的方法优点:设计出的系统耦合性比较低,系统更加灵活,易于复用、拓展和维护缺点:面向对象的性能比面向过程低原创 2022-03-17 10:21:18 · 411 阅读 · 28 评论