Solace Blog

Thinking will not overcome fear but action will.

Java web知识点复习

状态码 1xx:信息状态码。表示该请求已经被接受,正在被处理 2xx:正确状态码。表示该请求已经被正确接受并处理,没有错误发生 3xx:重定向状态码。例如301永久性重定向;302临时性重定向 4xx:请求错误。例如401表示没有权限访问;404表示资源不存在;405表示访问方式错误 5xx:服务器错误。500表示程序出现异常而中途停止运行 JSP(Java Se...

逼哥最rock

逼哥最rock ​ 逼哥一直说自己在音乐方面根本没有一点天赋,完全就是比别人勤奋了一点所以现在挣了点钱。我很同意,因为放眼望去,有谁一首歌能有这么多版本?每首都是不一样的感觉,尤其推崇那些摇滚版本的曲目,听着不仅舒服,更重要的是逼哥很摇滚。逼哥是我近几年见到的三观最正的人,也是我最佩服的人。 ​ 最近刚换了工作,适应环境、适应同事、适应一切从头开始。看着整天活的人模狗样的坐在写字楼里面,...

归并排序

归并算法 归并排序(merge-sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 // private static long sum = 0; /** *...

Java代码执行顺序

Java - static 执行顺序 Father类 public class Father { public int a = a(); public static int b = b(); int a() { System.out.println("Father normal variable init... ..."); return 1...

算法时间复杂度

时间复杂度 数据结构(Data Structure) 链表 插入数据快,只需改变前后的指针 数组 查找数据比较快,根据单元格的大小和第几个数据只根据计算的偏移量就能找到相应的数据 如何测算算法的优劣 时间测算:完成算法所花费的时间 方法就是在算法前后记录下开始和结束时间,然后计算下时间差,就...

消息队列(mq)

MQ MQ的作用 解耦:将各个系统解耦,降低各系统之间的耦合性。 异步:之前的一个业务操作可能需要整个操作完成后返回一个结果,整个操作完成很耗时。使用mq后可以将请求放到队列中,让消费者去队列消费对应的消息。对于用户来说提升了用户体验。 削峰:高峰期大量操作涌入系统会导致数据库崩溃,使用mq后可以将大量请求放入队列中,让系统从队列中根据最高可操作的请求数量来拉取请求来处理,...

Http请求方法区别

概念 副作用 当发送完一个请求后,网站上的资源状态没有发生修改,即认为这个请求是无副作用的。 幂等性 一个请求无论发送多少次,服务器上资源的状态最终是一致的。 request body 请求可传输的数据量 http method 区别 method 副...

分库分表相关问题

分库分表相关问题 实际项目中的拆分情况? 水平拆分,所有表结构都一样,一般拆分有两种,一种是按照range来分,比如时间,但是这样会导致最新的数据落在某个表,压力不均匀;另一种是hash分法,利用取模来划分数据表,这样的好处是所有表的压力会均匀分配,但是后期如果扩容需要数据迁移。 分库分表中间件 sharding-jdbc:当当网开源插件,在客户端使用,不需要单独部署,运维成本低,就...

Redis

Redis 数据类型 string: list:有序列表,比如微博大V粉丝,lrange可以实现分页 hash:比如存对象 set:无序,自动去重,微博大V共同粉丝 sorted set(zset):有序,自动去重,可排序,排行榜 问题 redis和memcached区别 redis更丰富的数据结构,更强大的数据操作;redis官方是支持cluster模式,...

Mysql优化

MySQL优化 如果明确知道查询结果只有一条记录,建议使用 limit 1 来提高效率,可以让数据库停止游标的移动 select name from user where id=6105281991******** limit 1 索引(index): 对于记录较多的表在使用时可以提高检索速度,分为单列索引和组合索引。 普通索引:create index index_name on...