04 2023 档案
摘要:Arrays Arrays是Java中提供的一个针对数组操作的工具类,所有的方法都是静态的。 大致有这些常用的方法 sort()针对常用的基本数据类型,都能进行排序,byte、char、int、long、float、doubleparallelSort()并行排序,多线程排序,数据规模较大是可以使用
阅读全文
摘要:Iterator是Java集合中迭代器的顶级接口,在此接口中定义了遍历集合的方法。 注意:Iterable与Iterator不是同一个概念 Iterable是可迭代的意思,实现了该接口就代表这个集合是可以利用迭代器和forEach()方法进行遍历的。 因此Iterable是所有集合都实现的接口,在此
阅读全文
摘要:ArrayList和Vector都是单列集合 首先来说一下Java中集合和数组的区别: 集合是可变长的容器,存在自动可扩容机制。数组是定长的,一旦满了,就不能继续添加了。集合只能存储引用类型的元素,而数组既可以存储引用类型的元素,也可以是基本数据类型的元素数组需要一段连续的空间来存储元素,但是一些非
阅读全文
摘要:Java中集合体系可以分为: 单列集合 有序集合无需集合 双列集合 看图 点击此链接下载此图的HTML文件,然后使用浏览器打开,能够高清看图
阅读全文
摘要:HTTPS与HTTP相比有什么区别? HTTPS保证安全的原理是什么? HTTPS是如何建立连接的? 巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP与HTTPS的区别 HTTP是超文本传输协议,传输的内容是明文(HTTP1.1及之前版本)。HTTPS在TCP与HTTP层之间
阅读全文
摘要:巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP1.0与HTTP1.1 var code = "c651fde0-a4d6-4478-aba0-6d4a84ed03d4" HTTP1.1在HTTP1.0上的改进: 使用长连接的方式改善了HTTP1.0中短连接造成的性能开销支持
阅读全文
摘要:前置知识 先来看看HashMap中的成员属性 解释: size当前的容器中Entry的数量,也就是当前K-V的数量loadFactory装载因子,用来衡量HashMap满的程度,loadFactory的默认值是0.75threshold临界值,当实际KV数量超过threshold时,就会触发扩容机制
阅读全文
摘要:前置知识 ArrayList的底层实现是一个Object[],而LinkedList的底层实现是一个链表 ArrayList与LinkedList相对比: ArrayList在随机访问时可以做到O(1),但是LinkedList的随机访问就是遍历链表,所以时间复杂度是O(N)ArrayList在插入
阅读全文
摘要:大致流程 关于SpringBoot的启动流程,大致是这样的 加载启动类 启动类是使用了@SpringBootApplication注解标注的类,该注解包含了@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的功能。
阅读全文
摘要:SpringBoot的自动配置是:当项目中使用了一个第三方依赖,如何将第三方依赖中的Bean加载到Spring的IOC容器中,我们就可以做到无需额外的配置,直接使用第三方jar中的Bean。 SpringBoot的理念是“约定大于配置”,只要按照SpringBoot约定的规则来提供第三方的jar,S
阅读全文
摘要:基于SpringBoot来设置发送邮件的服务。 导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
阅读全文
摘要:介绍 模板引擎,与JSP、JSTL类似。 好处是:直接写在HTML文件中,服务器可以解析,浏览器也可以解析,实现了动静分离,并未破坏html结构,即使无网络、不通过后端渲染也能在浏览器成功打开,大大方便界面的测试和修改。 而且JSP页面要先转换为class字节码,然后交给JVM执行,当应用中页面多了
阅读全文
摘要:之前在学习SpringMVC、SpringSecurity时,会用到Filter,需要对Filter进行参数配置,而Filter本质上也是一个Servlet,然后对Servlet设置初始化参数已经忘记了,所以打算重新回顾并整理Servlet这一部分的内容(虽然在目前的开发中已经不会用原生的Servl
阅读全文
摘要:Lambda表达式 使用 当一个接口中只含有一个抽象方法时,这个接口就叫做函数式接口 一般使用@FunctionalInterface注解来标识这个接口是一个函数式接口。 但不论有没有标识这个注解,只要接口中只有一个抽象方法,那么这个接口就是函数式接口 当一个方法的参数是一个函数式接口类型时,我们就
阅读全文
摘要:今天在做作业,在一个测试功能需要输入数据,于是想起了Scanner,运行之后发现控制台无法输入。 然后打开我心爱的浏览器,开始搜索,网上很多关于“IDEA中Test模块无法使用Scanner”的解决方法,基本上都是修改IDEA的VM options参数。 在VM Options的配置文件中添加以下的
阅读全文
摘要:这个分页插件是在Mybatis的环境中使用的,所以项目需要导入Mybatis依赖 更加详细的用法看官方文档:PageHelper官网 在Mybatis中使用 前提条件 引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifa
阅读全文
摘要:利用limit关键字能够实现对数据库表记录的范围操作。 limit关键字可以用在select、update、delete中 但一般常用来分页查询。 select 中limit 语法格式 limit index[, pageSize] 当limit后面是一个参数时,表示取前几条记录。 例如,取工资最高
阅读全文
摘要:前言 2023年04月04日 今天在复习Spring AOP的内容,在看到JDK动态代理时,积攒多年的疑问又发生了。 半年前在学习设计模式时的JDK动态代理时,没有学明白,似懂非懂,迷迷糊糊就混过去了,今天复习AOP,打算彻底把JDK动态代理弄懂。 JDK动态代理的流程 JDK动态代理是基本流程:
阅读全文