- 博客(6)
- 收藏
- 关注
原创 数据库设计——三大范式
但是对于我们来说,我们要想得到这个地址,我们要切割属性,省的字段长度市的字段长度等等肯定都不相同,这个操作起来就是非常的复杂,所以我们就应该考虑这个设计的合理性。所以正确的设计应该是(省,市,区,详细地址),这样我们比如要完成一个需求,得到在北京市的入口数量,是不是就很方便呢?这就是设计的合理性的体现。这才是正确的操作,在建立多对多的两表链接时,第三方表强制要求只能将两表的主属性链接,不能再加入其它非主属性。在我们设计数据库的过程中,有良好的设计思想如何设计出合理的数据库无疑是非常重要的。...
2022-08-13 11:07:31
659
原创 重写hashcode方法需要重写equals方法吗?为什么?
其实我们仔细思考,java就采用了hash表,利用哈希算法(也叫散列算法),就是将对象数据根据该对象的特征使用特定的算法将其定义到一个地址上,那么在后面定义进来的数据只要看对应的hashcode地址上是否有值,如果有那么就用equals比较,如果没有则直接插入,只要就大大减少了equals的使用次数,执行效率就大大提高了。***在合理可行的情况下,hashCode方法定义为*类{@codeObject}确实为不同返回不同的整数*对象。返回对象的哈希码值。...
2022-08-01 00:13:04
2220
原创 Comparable和Comparator的联系与区别
实际上我们发现这些这些集合或者数组之所以可以排序,都是实现了这个Comparable接口做到了可以在本类中实现排序。通过这两幅图片我们可以清晰的观察到这两个接口来的位置,一个是在java.lang,一个是在java.util这个就是为什么有一个需要导包而另外一个不需要的原因。每次只需要传入一个参数,因为这个方法就在本类中每次传入的形参就是本类的对象,可以理解为一个内置的比较器内部的成员会自己比较。关于Comparable和Comparator的联系和区别,我们先实现这个两个接口。...
2022-07-31 19:52:38
215
原创 深克隆和浅克隆的区别
我们可以看到克隆出来的对象跟对象本身的表现形式是完全一样的!返回的结果却是true说明对象的属性的内存地址确是相同的,说明在方法区中这个两个对象的属性引用的一块内存,这个就是浅克隆,虽然是两个完全不同的对象,用的却是同一块内存上的东西。所以说这个方法可以实现java对底层的访问的。大家看我上面的代码会发现,一个类要实现克隆即必须要实现Cloneable接口,因为我们也可以看到本地的克隆方法是无法被你直接调用的,这个时候我们就需要继承或者实现某个接口,在这里我们就是要实现Cloneable这个接口。...
2022-07-31 19:03:14
169
原创 重写与重载的区别
而重写发生在子类与父类之间,这里就有继承关系,重写要求子类被重写的方法与父类被重写的方法有相同的参数列表,同时唯一有区别的就是对访问权限的修饰,在这里子类里面重写的方法的权限修饰不能比父类更严格,也就是说比父类更好访问,不能比父类被重写的方法声明更多的异常。这是一个我们自己定义的类,我们可以重写一个tostring方法,关于重写的标志是@Override,那么它重写的是谁的方法呢,所谓“重”,就是要重新定义了一个方法,那么在这里重新定义的是,Object类中的tostring方法。这就是这两者的区别!...
2022-07-31 00:58:57
103
原创 Equals与==的区别
对于equals方法来说,我们都知道,java中最顶层的父类是Object类,我们可以看一下Object里面的equals方法。我们可以看到其实在最顶层的类中euqls方法,其实比较的也是地址,那为什么我们众所周知String类里面的equlas方法却可以比较值呢?当比较的是基本数据类型时比较的就是值,这个值就是我们日常生活中所理解的数值。很明显这个方法跟最顶层的父类中equals方法完全不一样,事实上这里是重写了这个方法,所以才可以达到这个比较值的功能。这里就是区别的最关键的地方。...
2022-07-30 19:19:05
265
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人