
Java
文章平均质量分 64
了解一下java,学习笔记,用于自己学习和复习
L1AK
这个作者很懒,什么都没留下…
展开
-
Mybatis 联查操作
https://www.cnblogs.com/cainame/p/10422566.html原创 2022-06-27 00:58:41 · 86 阅读 · 0 评论 -
Spring Security
开坑原创 2022-06-27 00:56:02 · 75 阅读 · 0 评论 -
Spring MVC
简单使用定义Dto定义Dao调用原创 2022-06-27 00:55:11 · 83 阅读 · 0 评论 -
List扩容机制
ensureCapacityInternal()确定添加元素后,总元素量要大于Capacity如果总元素量大于容量,就要执行扩容grow(),不需要扩容直接返回添加第一个元素默认容量为10,此后每次扩容,需要执行size + size >> 1 ,即为原来的1.5倍扩容的时候需要使用arr = Array.CopyOf(arr, minCapacity) , 创建一个新的数组,并且拷贝原来数组的元素到新的数组中,然后返回新的数组,将add新元素添加到数组后面......原创 2022-06-27 00:41:33 · 3390 阅读 · 0 评论 -
建造者模式
JDK 最新版本中 HTTP/2 Client API,下面这个创建 HttpRequest 的过程,就是典型的构建器模式(Builder),通常会被实现成fluent 风格的 API,也有人叫它方法链。HttpRequest request = HttpRequest.newBuilder(new URI(uri)) .header(headerAlice, valueAlice) .headers(headerBob,原创 2021-10-09 20:50:35 · 133 阅读 · 0 评论 -
JUC(java.util.concurrent)
文章目录0. 前言1. Lock接口1.1 复习synchronized1.2 Lock接口1.3 Lock方法1.4 synchronized与lock的异同2. 线程间通信2.1 synchronized案例2.2 Lock案例3. 线程间定制化通信4. 集合的线程安全4.0 List集合线程不安全4.1 Vector4.2 Collections4.3 CopyOnWriteArrayList4.4 CopyOnWriteArraySet4.5 ConcurrentHashMap5. 多线程锁5.1原创 2021-08-26 01:51:56 · 260 阅读 · 0 评论 -
JVM-垃圾回收GC
文章目录一、垃圾回收概述1. 什么是垃圾?2. 为什么需要GC3. 早起的垃圾回收4. Java垃圾回收机制二、垃圾回收相关算法1. 垃圾标记阶段: 引用计数算法2. 标记阶段: 可达分析算法2.1 GC Roots3. 对象的finalization机制3.1 具体过程4. MAT与JProfiler的GC Roots溯源4.1 MAT4.2 JProfiler5. 清除阶段:标记-清除算法(mark-Sweep)6. 清除阶段:复制算法7. 清除阶段:标价-压缩算法8. 小结9. 分代收集算法10. 增原创 2021-08-15 03:16:09 · 1488 阅读 · 0 评论 -
JVM-执行引擎
1. 执行引擎概述执行引擎是Java虚拟机核心的组成部分之一“虚拟机”是一个相对于“物理机”的概念,这两种集群都有代码执行的能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操纵系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM原创 2021-08-13 16:45:01 · 325 阅读 · 0 评论 -
JVM-方法区
1. 栈,堆,方法区的交互关系运行时数据区概览从线程共享的角度看方法区、堆、栈、程序计数器方法区、堆、栈之间的关系2. 方法区的理解方法区与Java堆一样,是各个线程共享的内存区域。方法区在JVM启动的时候被创建,并且它的实际的物理内存空间和Java堆区一样都可以是不连续的。方法区的大小,跟堆空间一样,可以选择固定大小或者可扩展。方法区的大小决定了系统可以保持多少个类,如果系统定义了太多的类,导致方法区溢出,虚拟机同样会抛出内存溢出溢出错误:java.lang.outofM原创 2021-08-12 18:29:08 · 182 阅读 · 0 评论 -
JVM--堆
1. 堆的概述(共享|垃圾回收)2. 堆的内存结构3. 堆空间大小的设置 -Xms -Xmx4. 新生代与老年代参数设置 NewRation SurvivorRatio5. 复制算法6. Minor GC | Major GC | Full GC7. 针对不同年龄阶段的对象分配原则8. TLAB(Thread Local Allocation Buffer)9. 堆空间参数总结10. 逃逸分析10.1 栈上分配10.2 同步替换 锁消除10.3 分离对象或标量替换...原创 2021-08-12 00:08:02 · 124 阅读 · 0 评论 -
Spring 事务操作
文章目录1. 搭建事务操作环境2. Spring 事务管理介绍2. Spring 注解声明式事务管理3. Spring 声明式事务管理参数配置4. Spring XML 声明式事务管理5. Spring 完全注解声明式事务管理1. 搭建事务操作环境事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败事务四大特性 (ACID)原子性一致性隔离性持久性7. 创建数据库表,添加记录8. 创建 service,搭建 dao,完成对象创建和注入关系原创 2021-08-11 15:07:36 · 181 阅读 · 0 评论 -
函数式接口
1.1函数式接口概述【理解】(这个有点无聊)概念有且仅有一个抽象方法的接口如何检测一个接口是不是函数式接口@FunctionalInterface放在接口定义的上方:如果接口是函数式接口,编译通过;如果不是,编译失败注意事项我们自己定义函数式接口的时候,@FunctionalInterface是可选的,就算我不写这个注解,只要保证满足函数式接口定义的条件,也照样是函数式接口。但是,建议加上该注解1.5Supplier接口练习之获取最大值【应用】案例需求定义一个类(SupplierT原创 2021-07-27 22:03:33 · 119 阅读 · 0 评论 -
Properties加载
Properties介绍是一个Map体系的集合类Properties可以保存到流中或从流中加载属性列表中的每个键及其对应的值都是一个字符串特有方法Object setProperty(String key, String value)设置集合的键和值,都是String类型,底层调用 Hashtable方法 putString getProperty(String key)使用此属性列表中指定的键搜索属性Set stringPropertyNames()从该属性列表中原创 2021-07-27 19:27:27 · 206 阅读 · 0 评论 -
Spring-AOP
一、AOP的介绍和使用AOP的三种织入方式AOP的主要名词概念Advice的种类SpringAOP怎么实现事务二、AOP的原理AOP的实现:JdkProxy和Cglib代理模式:接口+真实实现类+代理类原创 2021-07-27 09:51:52 · 102 阅读 · 0 评论 -
Spring IOC
一、IOC原理依赖注入的方式依赖倒置原则、IOC、DI和Spring IOC容器的关系二、Spring IOC的应用spring IOC支持的功能spring IOC容器的核心接口getBean方法的代码逻辑Spring Bean的作用域Spring Bean的生命周期...原创 2021-07-21 02:01:24 · 179 阅读 · 0 评论 -
本地方法栈
2.本地方法栈2.1 Native Interface本地接口2.2 本地方法栈2.3 Native 方法举例原创 2021-07-17 20:42:20 · 1698 阅读 · 0 评论 -
运行时数据区--Java栈
1.什么是Java virtual machine?1.1 栈的概述1.2 栈详细解释1.3 栈存放的东西1.4 栈内存溢出StackOverflowError -Xss参数1.5 Java虚拟机规范允许Java栈的大小是动态的或者是固定不变的1.6 如何设置栈内存的大小? -Xss size (即:-XX:ThreadStackSize)1.7 栈和堆的区别是什么?2. 局部变量表(LocalVariables)3. 操作数栈(operand stack)4. 动态链接(Dynamic原创 2021-07-17 19:56:53 · 862 阅读 · 2 评论 -
Stream API
1. Stream API的概述2. Stream的实例化3. Stream的中间操作:筛选与切片4. Stream的中间操作:映射5. Stream的中间操作:排序6. Stream的终止操作:匹配与查找7. Stream的终止操作:归约8. Stream的终止操作:收集......原创 2022-06-27 00:59:41 · 144 阅读 · 0 评论 -
Java8新特性优点
Java 8 (又称为jdk 1.8) 是Java 语言开发的一个主要版本。Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。优点:速度更快代码更少(增加了新的语法:Lambda 表达式)强大的Stream API便于并行最大化减少空指针异常:OptionalNashorn引擎,允许在JVM上运行JS应用...原创 2021-07-16 20:16:20 · 625 阅读 · 0 评论 -
程序计数器
1.程序计数器1.1 概述是线程私有的 、不会存在内存溢出它是唯一一个在java虚拟机规范中没有OOM的区域作用:是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令1.2 解释每个线程都有一个程序计数器,是线程私有的,就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引擎读取下一条指令,是一个非常小的内存空间,几乎可以忽略不记这块内存区域很小,它是当前线程所执行的字节码的行号指示器,字节码解释器通过改变这个原创 2021-07-15 00:31:17 · 591 阅读 · 0 评论 -
JVM概述
文章目录1.JVM是什么2.Java的跨平台及原理3.JVM的分类4.三大商业虚拟机1.JVM是什么JVM 是 java虚拟机,是用来执行java字节码(二进制的形式)的虚拟计算机JVM是运行在操作系统上的,与硬件没有任何关系2.Java的跨平台及原理跨平台:由Java编写的程序可以在不同的操作系统上运行,一次编写,多处运行原理:编译之后的字节码文件和平台没有关系,需要不同操作系统上安装上对应的Java虚拟机Java虚拟机不与包括Java在内的任何编程语言绑定,它只和class文件这原创 2021-07-14 01:01:55 · 168 阅读 · 0 评论 -
模块化,。
文章目录3.模块化3.1模块化概述【理解】3.2模块的基本使用【应用】3.3模块服务的基本使用【应用】3.模块化3.1模块化概述【理解】Java语言随着这些年的发展已经成为了一门影响深远的编程语言,无数平台,系统都采用Java语言编写。但是,伴随着发展,Java也越来越庞大,逐渐发展成为一门“臃肿” 的语言。而且,无论是运行一个大型的软件系统,还是运行一个小的程序,即使程序只需要使用Java的部分核心功能, JVM也要加载整个JRE环境。为了给Java“瘦身”,让Java实现轻量化,Java 9正式原创 2021-07-14 00:35:52 · 102 阅读 · 0 评论 -
反射。。。
2.反射2.1反射的概述【理解】是指在运行时去获取一个类的变量和方法信息。然后通过获取到的信息来创建对象,调用方法的一种机制。由于这种动态性,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期仍然可以扩展2.2获取Class类对象的三种方式【应用】2.2.1三种方式分类类名.class属性对象名.getClass()方法,这个是object的方法,所有java对象都可以调用Class.forName(全类名)方法2.2.2示例代码public class Reflec原创 2021-07-14 00:34:49 · 117 阅读 · 0 评论 -
io练习案例
文章目录3练习案例3.1集合到文件【应用】3.2文件到集合【应用】3.3点名器【应用】3.4集合到文件改进版【应用】3.5文件到集合改进版【应用】3练习案例3.1集合到文件【应用】案例需求把文本文件中的数据读取到集合中,并遍历集合。要求:文件中每一行数据是一个集合元素实现步骤创建字符缓冲输入流对象创建ArrayList集合对象调用字符缓冲输入流对象的方法读数据把读取到的字符串数据存储到集合中释放资源遍历集合代码实现public class TxtToArrayLis原创 2021-07-11 15:07:02 · 158 阅读 · 0 评论 -
IO流。。
3.IO流3.1 IO流概述和分类【理解】IO流介绍IO:输入/输出(Input/Output)流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载IO流的分类按照数据的流向输入流:读数据输出流:写数据按照数据类型来分字节流字节输入流字节输出流字符流字符输入流字符输出流IO流的使用场景如果操作的是纯文本文件,优先使原创 2021-07-11 14:59:42 · 101 阅读 · 0 评论 -
file类
1.File类1.1File类概述和构造方法【应用】File类介绍它是文件和目录路径名的抽象表示文件和目录是可以通过File封装成对象的对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的File类的构造方法方法名说明File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例File(String原创 2021-07-10 22:06:18 · 98 阅读 · 0 评论 -
Lambda表达式
1.Lambda表达式1.1体验Lambda表达式【理解】案例需求启动一个线程,在控制台输出一句话:多线程程序启动了实现方式一实现步骤定义一个类MyRunnable实现Runnable接口,重写run()方法创建MyRunnable类的对象创建Thread类的对象,把MyRunnable的对象作为构造参数传递启动线程实现方式二匿名内部类的方式改进实现方式三Lambda表达式的方式改进代码演示//方式一的线程类public class My原创 2021-07-10 10:12:07 · 131 阅读 · 0 评论 -
多线程-java
文章目录1.实现多线程1.1进程和线程【理解】1.2实现多线程方式一:继承Thread类【应用】1.3设置和获取线程名称【应用】1.4线程优先级【应用】1.5线程控制【应用】1.6线程的生命周期【理解】1.7实现多线程方式二:实现Runnable接口【应用】2.线程同步2.1卖票【应用】2.2卖票案例的问题【理解】2.3同步代码块解决数据安全问题【应用】2.4同步方法解决数据安全问题【应用】2.5线程安全的类【理解】2.6Lock锁【应用】1.实现多线程1.1进程和线程【理解】进程:是正在运行的程序原创 2021-07-09 22:09:54 · 382 阅读 · 2 评论 -
map集合
1.Map集合1.1Map集合概述和特点【理解】Map集合概述interface Map<K,V> K:键的类型;V:值的类型Map集合的特点键值对映射关系一个键对应一个值键不能重复,值可以重复元素存取无序Map集合的基本使用public class MapDemo01 { public static void main(String[] args) { //创建集合对象 Map<String,String>原创 2021-06-25 17:08:48 · 132 阅读 · 0 评论 -
Java-List集合
as原创 2021-06-25 14:51:12 · 153 阅读 · 1 评论 -
Collection集合
文章目录1.Collection集合1.1集合体系结构【记忆】1.2Collection集合概述和基本使用【应用】1.3Collection集合的常用方法【应用】1.4Collection集合的遍历【应用】1.5集合使用步骤图解【理解】1.Collection集合1.1集合体系结构【记忆】集合类的特点提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变集合类的体系图1.2Collection集合概述和基本使用【应用】Collection集合概述是单例集合的顶层接口,它表原创 2021-06-25 14:21:24 · 117 阅读 · 1 评论 -
Mybatis 若存在,则更新,不存在,则插入
如果指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行UPDATE<insert id="insertList" parameterType="java.util.List"> insert into gw_server_conf_detail ( SERVER_CONFIG_ID, CHANNEL_ID, NODE_NUM, SEND_ABILITY, CREATE_BY原创 2021-02-20 09:51:31 · 4225 阅读 · 0 评论 -
springboot自定义http反馈状态码
springboot自定义http反馈状态码@RequestMapping(value = "/user", method = RequestMethod.GET)public ResponseEntity<Map<String,Object>> getUser() throws IOException{ Map<String,Object> map = new HashMap<String,Object>(); map.put("name原创 2021-02-19 11:07:46 · 429 阅读 · 0 评论 -
springboot 拦截器 两次请求,获取token
https://blog.youkuaiyun.com/qq_30385099/article/details/105252609跨域请求,找不到token,拦截器一个url拦截两次问题原创 2021-02-19 09:51:59 · 545 阅读 · 0 评论 -
Jwt整合springboot
JWT认证原理、流程整合springboot实战应用,前后端分离认证的解决方案!https://www.bilibili.com/video/BV1i54y1m7cP?p=1原创 2021-02-02 14:09:43 · 236 阅读 · 0 评论 -
Java-collection
1.Collection集合1.1集合体系结构【记忆】集合类的特点 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变集合类的体系图 1.2Collection集合概述和基本使用【应用】Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现Collection集合基本使用public class Colle原创 2020-12-11 11:07:20 · 121 阅读 · 0 评论 -
Java-异常
3.异常3.1异常(记忆)异常的概述 异常就是程序出现了不正常的情况异常的体系结构3.2JVM默认处理异常的方式(理解)如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:把异常的名称,错误原因及异常出现的位置等信息输出在了控制台程序停止执行3.3try-catch方式处理异常(应用)定义格式try { 可能出现异常的代码;} catch(异常类名 变量名) { 异常的处理代码;}执行流程原创 2020-12-11 09:52:46 · 207 阅读 · 0 评论 -
Java MD5签名需要使用UTF-8格式,利用MD5加密后转成大写
Java MD5签名需要使用UTF-8格式,利用MD5加密后转成大写参考1.小写32位 String result = ""; String str = "123456"; MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update((str).getBytes("UTF-8")); byte b[] = md5.digest(); int i; StringBuffer buf = new StringBuff原创 2020-11-19 14:18:11 · 2815 阅读 · 0 评论 -
Filter
Filter:过滤器1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪、 * web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。 * 过滤器的作用: * 一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过、添加token.2. 快速入门: 1. 步骤: 1. 定义一个类,实现接口Filter 2. 复写方法 3. 配置拦截路径 1. web.xml 2. 注解 2. 代码: @WebFilter("/*"原创 2020-11-18 16:41:30 · 139 阅读 · 0 评论 -
Java-Cookie&Session
今日内容1. 会话技术 1. Cookie 2. Session2. JSP:入门学习会话技术1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止2. 功能:在一次会话的范围内的多次请求间,共享数据3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:SessionCookie:1. 概念:客户端会话技术,将数据保存到客户端2. 快速入门: * 使用步骤: 1. 创建Cookie对原创 2020-11-18 16:37:03 · 116 阅读 · 0 评论