发表于: 2020-09-08 22:55:24
1 1431
今天完成的事情:今天再讨论接口的参数,以及方案实现的一些问题。做了部分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(签到表)
字段名 | 数据类型 | 注解 |
---|---|---|
id | bigint | 自增 |
user_id | bigint | 用户id |
coutSign | bigint | 总签到数 |
continueSign | bigint | 连续签到数 |
timeSign | varchar(300) | 签到日历映射 |
create_by | bigint | 创建人id |
update_by | bigint | 更新人id |
create_at | bigint | 创建时间 |
update_at | bigint | 更新时间 |
hole(树洞表)
字段名 | 数据类型 | 注解 |
---|---|---|
id | bigint | 自增 |
content | varchar(240) | 树洞内容 |
like | bigint | 点赞数 |
dislike | bigint | 踩数 |
create_by | bigint | 创建人id |
update_by | bigint | 更新人id |
create_at | bigint | 创建时间 |
update_at | bigint | 更新时间 |
message(留言表)
字段名 | 数据类型 | 注解 |
---|---|---|
id | bigint | 自增 |
user_id | bigint | 用户id |
grade | int(2) | 年级,0为初中部,1为高中部 |
title | varchar(60) | 标题,20字以内 |
content | varchar(3000) | 留言内容,1000字以内 |
img | varchar(300) | 图片 |
top | int(2) | 0表示取消,1表示置顶 |
essence | int(2) | 0表示普通,1表示精华 |
readNum | bigint | 阅读数 |
remarkNum | bigint | 评论数 |
create_by | bigint | 创建人id |
update_by | bigint | 更新人id |
create_at | bigint | 创建时间 |
update_at | bigint | 更新时间 |
remark(评论表)
字段名 | 数据类型 | 注解 |
---|---|---|
id | bigint | 自增 |
user_id | bigint | 用户id |
remark_id | bigint | 留言id |
content | varchar(3000) | 评论内容 |
floor | bigint | 几楼 |
create_by | bigint | 创建人id |
update_by | bigint | 更新人id |
create_at | bigint | 创建时间 |
update_at | bigint | 更新时间 |
评论