![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础易错点归类
文章平均质量分 92
java基础易错点归类
HFish24
这个作者很懒,什么都没留下…
展开
-
重写equals时,为什么还要重写hashcode?
重写equals,为什么还要重写hashcode,大部分的复习资料都会这么写:“**如果两个对象相等,则 hashcode 一定也是相同的。两个对象相等,对两个对象分别调用 equals 方法都返回 true。但是,两个对象有相同的 hashcode 值,它们也不一定是相等的 。**因此,equals 方法被覆盖过,则 hashCode 方法也必须被覆盖。”加粗部分当然是对的,但是和本问题毫无关系。加粗部分把hashmap中哈希冲突的理论讲了一下,就想当然的认为据此理论就可以得出,重写equals就必须原创 2020-07-29 07:52:41 · 2239 阅读 · 4 评论 -
Integer类的vlaueOf和parseInt的区别
最近在做题时,发现有的人喜欢用parseInt来获取String类型的数值。而我一般是用valueOf。然而这两种方法并不影响最终的结果。调取源码后发现,valueOf()是这样的: public static Integer valueOf(String s) throws NumberFormatException { return Integer.valueOf(pars...原创 2020-04-08 21:39:40 · 176 阅读 · 0 评论 -
java的抽象类与接口的区别
首先抽象类对应的是子类,接口对应的实现。也就是抽象类的子类继承了父类的全部特性,是一个更具体的父类。就像兔子类继承动物类。而接口的实现则是具备有自己的特性,他和接口是两个不同的类,只是它实现了接口中所有的方法。所以在概念上抽象类和接口的作用是完全不同的。所以抽象类与子类的关系是"is-a",而接口与实现的关系是"like a"附:意义使用场景举例is-aA是B...原创 2020-04-08 15:33:12 · 199 阅读 · 0 评论 -
java的值传递和引用传递
对于基本数据类型是值传递,对于引用数据类型是引用传递。对于基本数据类型,变量和值都存储在栈中,用一个方法修改变量时,只是修改了变量的副本,而变量本身没有被改变。对于引用数据类型,变量存在栈中,值存在堆中,变量通过指针指向值。用一个方法修改变量时,形参和实参的地址是相同的。所以改变形参的内容,实参也被改变。当然也可以说java就是值传递,只不过对于引用数据类型来说,传递的值是地址值。例题一:...原创 2020-04-05 09:54:43 · 156 阅读 · 0 评论 -
java中的类型转换
1.自动类型转换容量小的数据类型自动转换成容量大的数据类型。数据类型按从小到大排序为:byte->short/char->int->long->float->double其中,byte占1个字节,8位;char和short占两个字节,16位;int占4个字节,32位;long和float占8个字节,64位;double占16字节,128位。由于计算机存储的是...原创 2020-04-03 09:14:11 · 186 阅读 · 0 评论 -
对java静态方法和静态变量的总结
一、静态变量1.静态变量随着类的加载而加载。加载位置是方法区。2.静态变量早于对象出现,所以一般使用类直接调用。3.静态变量被所有对象共享。4.静态变量只能定义在类内,方法外。二、静态方法1.静态方法随着类的加载而加载。加载位置是方法区。2.静态方法早于对象出现。3.静态方法不可以调用非静态方法。可以理解为这是由于静态方法的加载早于非静态方法。4.静态方法可以被继承,但是不可以被...原创 2020-03-02 22:49:36 · 345 阅读 · 0 评论