稀疏数组
为什么要使用稀疏数组当我们存储有大量重复元素的二维数组时,如果使用一般的二维数组就造成有大量重复元素,很浪费空间,例如这个棋盘,如果要记录棋子的位置我们会想到使用二维数组(1代表黑,2代表蓝),当使用普通二维数组时,那些大量重复的0,占用了很大的内存空间。于是我们就可以使用稀疏数组来存储有效数据
稀 ...
java8新特性:Lambda表达式
什么是Lambda表达式百度说 “Lambda 表达式”是一个复匿名函数,它可以包含表达式和语句,制并且可用于创建委托或表达式树类型。
Lambda表达式的优缺点优点
代码简洁,开发迅速
方便函数式编程
非常容易进行并行计算
java引入lambda,改善了集合操作(引入Stream API)
缺 ...
HashMap在JDK1.7和1.8的区别
HashMapJDK1.7中,底层使用数组+链表JDK1.8中,底层使用数组+链表+红黑树
共同点:容量(capacity):HashMap中数组的长度
容量范围:必须是2的幂 & <最大容量(2的30次方)
初始容量 = 哈希表创建时的容量
默认容量 = 16 = 1<< ...
手写ArrayList(仿照源码)
ArrayList简述ArrayList底层使用的是数组,相对于LinkeList来说查询修改快,增删慢,适用于查询较多的场景。非线程安全。
List 接口: List是Collection的子接口,它是一个元素有序(按照插入的顺序维护元素顺序)、可重复、可以为null的集合
AbstractLi ...
java集合
什么是集合
简而言之,集合就是一个放数据的容器,准确的说是放数据对象引用的容器。集合不能放基本数据类型只能放对象,而数组时可以放所有数据。集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。
java集合类存放于java.util包中。
集合类型主要有3种:Set(集 ...
手写LinkedList(仿照源码)
LinkedList简述LinkedList底层使用一个Node数据结构,有前后两个指针,双向链表实现的。相对数组,链表插入效率较高,只需要更改前后两个指针即可;另外链表不存在扩容问题,因为链表不要求存储空间连续,每次插入数据都只是改变last指针;另外,链表所需要的内存比数组要多,因为他要维护前后 ...
Spring Boot实现邮件登录注册
使用Spring Boot完成邮箱登录注册源码:https://github.com/Hobo-clh/spring-boot-email
前提主要记录一下邮箱注册,使用Spring Boot和MyBatis
springboot中导入email相关依赖
开启邮箱的POP3/SMTP服务(这里使用 ...
jQuery的过滤器
1、基本属性过滤器
获取–属性名等于指定值的元素$(“选择器[属性名=值]”)
获取–不含指定值的元素$(“选择器[属性名!=’值’]”)
获取–指定值开始的元素$(“选择器[属性名^=’值’]”)
获取–指定值结束的元素$(“选择器[属性名$=’值’]”)
获取–包含指定值的元素$(“选 ...
maven-解决新建spring boot项目导入jar包失败的问题
发现问题
新建springboot项目时无法导入jar包
尝试在maven的settings文件中修改maven镜像–>没用
尝试更换maven版本–>没用
如何查看查看log日志发现是
java.lang.RuntimeException: sun.security.pro ...
hexo+GitHub搭建我的博客
首次尝试用GitHub+hexo搭建博客,大概步骤记录一下
准备工作安装git和node.js
git:进入git官网下载
node.js:进入node.js官网下载
通过以下命令查看是否安装好了git和node.js12git --version node -v
在自己的磁盘中创建 ...