发表于: 2020-09-08 22:55:24

1 1429


今天完成的事情:今天再讨论接口的参数,以及方案实现的一些问题。做了部分DB设计。
明天计划的事情:DB设计,讨论设计的是否合理性。
遇到的问题:部分功能的方案实现。
收获:

1. ==和equals的区别

这个要放在几个场景下区分。

(1) 基本数据类型

使用==是比较他们的值是否相等。

(2) 引用类型的比较

2.1 重写了equals方法的,比如String

那么==是比较引用地址,String的引用是否是同一块内存。

使用equals是比较的是String的对象内的值是否一样。

2.2 都没有重写equals的方法,比如自定义的user类

==和equals都是比较引用是否是指向同一块内存。

下面的实例

返回false false true true true true

在java中我们一般把对象存放在堆区,把对象的引用放在栈区。因此在上面三个字符串的内存状态应该是下面这样的。

有个地方需要注意,是我在微信公号的文章上读到的。

输出结果不应该都是 false false吗。

但是结果是false true,为什么?

因为Integer.java类中有一个内部私有类,IntegerCache.java,它缓存了从-128 到127之间的所有整数对象。所以所有的小整数在内存缓存。因为小整数的使用率大于大整数,使用相同的底层对象是为了减少潜在的内存占用。

2. DB设计

signis(签到表)

字段名

数据类型

注解

idbigint自增
user_idbigint用户id
coutSignbigint总签到数
continueSignbigint连续签到数
timeSignvarchar(300)签到日历映射
create_bybigint创建人id
update_bybigint更新人id
create_atbigint创建时间
update_atbigint更新时间


hole(树洞表)

字段名

数据类型

注解

idbigint自增
contentvarchar(240)树洞内容
likebigint点赞数
dislikebigint踩数
create_bybigint创建人id
update_bybigint更新人id
create_atbigint创建时间
update_atbigint更新时间


message(留言表)

字段名

数据类型

注解

idbigint自增
user_idbigint用户id
gradeint(2)年级,0为初中部,1为高中部
titlevarchar(60)标题,20字以内
contentvarchar(3000)留言内容,1000字以内
imgvarchar(300)图片
topint(2)0表示取消,1表示置顶
essenceint(2)0表示普通,1表示精华
readNumbigint阅读数
remarkNumbigint评论数
create_bybigint创建人id
update_bybigint更新人id
create_atbigint创建时间
update_atbigint更新时间

remark(评论表)

字段名

数据类型

注解

idbigint自增
user_idbigint用户id
remark_idbigint留言id
contentvarchar(3000)评论内容
floorbigint几楼
create_bybigint创建人id
update_bybigint更新人id
create_atbigint创建时间
update_atbigint更新时间




返回列表 返回列表
评论

    分享到