前言为了配个缓存我容易吗我….最近在写一个个人项目, 用 Spring Boot 构建, 因为懒省事就用了 Myatis 和 MyBatis Generator 管理我的 SQL 语句. 昨天心血来潮想用缓存减轻数据库压力(因为某些特定页面信息量比较多,所以SQL查询比较慢). 想了想觉得还是不用 MyBatis 自带的二级缓存(HashMap 实现的, 感觉不是很好), 最后选择了 Redis ...
MySQL 分页查询优化
今天写自己的项目的时候碰到了一个关于分页的问题,但是参考的那个分页写的很朴素(就是很费时~),正好以前也貌似听说过分页的优化.就自己动手测了一下优化前后的时间开销.在 MySQL 中(为什么不谈 Oracle 或者 SQL Server? 因为我没用过阿~),我所查询到的分页常用的方案有使用limit 和 子查询 俩种方案.在我参考的那个项目中,针对与 MySQL 的分页直接用的 SELECT * ...
Google Java 编程风格指南(中文)
PDF 文件下载前言这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则,我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题,同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则,对于那些不是明确强制要求的,我们尽量避免提供意见。术语说明在本文档中,除非另有说明: ...
Java LinkList 简介
本文转自JavaGuide简介LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchronizedList方法 ...
Java HashMap 简介
本文转自JavaGuideHashMap 简介HashMap 主要用来存放键值对,它基于哈希表的Map接口实现</font>,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时 ...
Java ArrayList 源码分析
本文转自JavaGuide,并加入了自己的部分见解ArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。它继承于 AbstractList,实现了 List, RandomAccess, Clo ...
为什么Java中只有值专递
本文转自JavaGuide一 为什么 Java 中只有值传递?首先回顾一下在程序设计语言中有关将参数传递给方法(或函数)的一些专业术语。按值调用(call by value)表示方法接收的是调用者提供的值,而按引用调用(call by reference)表示方法接收的是调用者提供的变量地址。一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。 它用来描述各种程序设计语言( ...
Http学习笔记(一)
HTTP概念:Hyper Text Transfer Protocol 超文本传输协议概述: HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议。通过使用网页浏览器、网络爬虫或者其它的工具,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比 ...