![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 86
10_ADDTIPLY
这个作者很懒,什么都没留下…
展开
-
Mysql-InnoDB-MVCC
MVCC详解目录MVCC详解前言MVCC是啥?InnoDB中MVCC是怎么实现的?为什么不同的策略会有不同的效果?ReadView快照读和当前读前言2020.3.8网上看到了很多关于MVCC的解析,结合《MySQL技术内幕》终于对其有了一定的理解。这里只是简单的把自己的想法update一下,希望在面试的时候能流畅地说出自己的理解。关于细节没弄明白的日后再分析。MVCC是啥?MVCC,多版本并发控制,是InnoDB实现的一种一致性非锁定读的方法。其存在的意义在于可以不用对该行获取锁,直接通过读取该原创 2021-03-08 23:41:20 · 260 阅读 · 1 评论 -
容器之HashMap源码解析
HashMap源码解析关于HashMap的源码解析网上貌似不少了,因此不根据知识点进行汇总,而是根据可能问到的问题一步一步深入吧,这样也便于八股哈哈。目录HashMap源码解析版本的区别JDK1.7和JDK1.8中HashMap的区别为啥引入红黑树?与其他容器的区别HashMap和HashTable的异同和ConcurrentHashMap的异同源码细节简单讲讲插入过程为啥JDK1.8计算数组索引时是用按位与?为啥HashMap数组大小是2的n次幂?get方法是如何实现的?讲讲扩容?JDK1.7JDK1原创 2021-03-07 23:08:27 · 420 阅读 · 0 评论 -
容器之ArrayList源码解析
ArrayList源码解析目录ArrayList源码解析定义的常量初始化扩容流程`ensureCapacity`不同的初始化方法的扩容过程定义的常量/*** Default initial capacity.*/private static final int DEFAULT_CAPACITY = 10;/*** Shared empty array instance used for empty instances.*/private static final Object[] EM原创 2021-03-07 19:40:08 · 214 阅读 · 0 评论 -
初识SpringMVC的拦截器
SpringMVC的拦截器目录SpringMVC的拦截器拦截器的概述自定义拦截器其实拦截器和Servlet的Filter是类似的,基本上与Flilter的原理一致拦截器的概述SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链 中的拦截器会按着定义的顺序执行。拦截器和过滤器的功能比较类似,有区别过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。拦截器是Sprin原创 2021-02-18 23:11:20 · 73 阅读 · 0 评论 -
SpringMVC的响应方式
目录SpringMVC的响应方式视图解析器`ModelAndView`按照返回值进行分类StringvoidModelAndViewResponseBody响应Json对象静态资源@RequestBodySpringMVC的响应方式视图解析器使用对应的Handler适配器处理完一个handler之后,返回的是一个ModelAndView对象,该对象不直接保存视图,而是将视图逻辑路径交由ViewResolver解析,得到真正的视图路径。我们要做的是在配置文件中指定视图解析的规则 <!-- 视图原创 2021-02-18 22:46:37 · 192 阅读 · 0 评论 -
MyBatis中的多表查询以及延迟加载
目录IntroresultMap的使用场景resultMap的标签一对多关系AccountDao.xml一对一查询结果多对多关系UserDao.xml多对多查询结果延迟加载lazy loading本质实现lazy loading(以association为例)Intro业务中往往多个表之间会存在关联关系,比如用户和银行账户之间,通过在账户中加上用户id作为外键来实现两个表的关联。类似的情况有一对一、多对多、一对多、多对一等状况。显然,在实现账户的javabean类的时候,如果把用户的信息直接作为属性保存原创 2021-02-07 23:46:31 · 139 阅读 · 0 评论 -
MyBatis实现简易CURD操作
目录Config中新的标签propertiestypeAliases`UserDao`接口Mapper配置文件的配置updateinsertdelete模糊查询聚集函数对MyBatis的运行流程有一定的理解之后,我们可以来使用这个框架来实现基本的CURD操作。本篇文章使用的方式主要是XML的方式,注解的方式本质上与此相同,不再展示。Config中新的标签在Config中我们使用了如下标签,可以简化后续的配置properties <!-- 配置连接数据库的信息原创 2021-02-06 17:28:14 · 146 阅读 · 0 评论 -
自实现简易MyBatis(一)
目录前言一般的MyBatis配置方法实现MyBatis的简要分析XML/注解的解析配置类功能类`io.Resources``sqlSession``SqlSessionFactoryBuilder`类`SqlSessionFactory`和`SqlSession`接口以及实现类MapperProxy前言初学SSM框架,首先学习了MyBatis。MyBatis是一个用于持久层的框架,主要用于与简化与数据库的交互。我们可以直接通过注解或者XML进行配置。我们只需要写DAO的接口,并将实际的查询语句进行配置,原创 2021-02-05 14:34:40 · 718 阅读 · 0 评论 -
Java之JavaScript学习笔记
JavaScript基本语法基本上和Java没什么区别定义变量——变量类型 变量名 = 变量值;定义变量时只有一种数据类型var!var num = 1;var name = "bill";var 王者荣耀 = "倔强青铜";数据类型js不区分小数和整数,Number123 //整数123.1 //浮点数1.123e3 //科学计数法-99 //负数NaN //not a numberInfinity //无穷大字符串‘abc’ “abc”布尔值原创 2020-09-21 19:27:02 · 345 阅读 · 0 评论 -
Java之Java8新特性
目录Java8新特性Lambda表达式本质格式使用函数式接口Java内置核心函数式接口方法引用和构造器引用方法引用的使用情形格式构造器引用数组引用Stream API创建Stream中间操作筛选和分片映射排序终止操作匹配与查找归约收集Java8新特性Lambda表达式Lambda是一个匿名函数本质Java中Lambda表达式其实作为是函数式接口实现类的对象,其中函数式接口是只有一个抽象方法的接口(函数式接口)格式->:箭头操作符/Lambda操作符->左边:Lambda形参列表,原创 2020-09-14 21:48:33 · 144 阅读 · 0 评论 -
Java之IO流
IO流FILE类FILE类的一个对象代表一个文件或者一个文件目录路径分隔符路径中的每级目录之间用一个路径分隔符隔开路径分隔符和系统有关:windows和DOS系统默认使用’\’UNIX和URL使用’/’Java支持跨平台运行,因此路径分隔符要慎用为了解决这个隐患,File类提供了一个常量File.seperator构造器@Testpublic void test1(){ // 构造器1 File file = new File("Hello.txt");原创 2020-09-10 15:52:19 · 570 阅读 · 0 评论 -
Java集合框架之Map
目录MapMap的实现类结构面试题Map结构理解HashMap底层实现原理HashMap源码分析JDK7源码成员变量`put()`方法为什么容量大小只能是2的n次方对null的处理添加新结点扩容JDK8源码`put()`方法MapMap的实现类结构Map:双列数据,存储键值对的数据HashMap:作为Map的主要实现类,线程不安全,效率高;可存储null的key和valueLinkedHashMap:保证遍历map元素时可按照添加顺序实现遍历。原因:在原有的HashMap底层结构基础上,原创 2020-09-05 20:58:10 · 156 阅读 · 0 评论 -
Java集合框架之Collection
集合集合框架概述集合、数组都是对多个数据进行存储的结构,简称Java容器。此时的存储指的是内存层面的,不涉及到持久化的存储数组在存储多个数据方面的特点:一旦初始化,长度确定需要指明数组的元素类型,只能操作指定类型的数据:String[] arr;数组在存储多个数据方面的缺点:初始化后长度不可修改数组中提供的方法有限,对于添加、删除、插入数据等操作非常不便,效率不高获取数组中实际元素个数的需求,数组没有现成的属性或方法可用数组有序、可重复。对于无序、不可重复的需求不能满足。原创 2020-08-28 19:29:31 · 134 阅读 · 0 评论 -
JAVA常用类之比较器、System、BigInteger
JAVA常用类Java比较器Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题正常java对象只能进行==和!=的比较,如何实现比较对象的大小?使用两个接口中的任何一个Comparable和ComparatorComparable接口String、包装类实现了Comparable接口,重写了compareTo()方法,给出了比较两个对象大小的方法重写compareTo(obj)的规则:如果当前对象this大于形参对象obj则返回正整数,小于则返回负整数,相等返回0对原创 2020-08-14 10:19:51 · 123 阅读 · 0 评论 -
JAVA常用类——字符串
JAVA常用类——字符串String类字符串是常量,用双引号表示,值在创建之后不能更改String对象的字符内容存储在一个字符数组value[]中String实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小String在内部定义了final char[] value用于存储字符串数据String的不可变性String:代表不可变的字符序列体现当对字符串重新赋值时,需要重新指定内存区域赋值,原创 2020-08-13 16:22:35 · 288 阅读 · 0 评论 -
JAVA多线程学习笔记
JAVA多线程基本概念程序:为了完成特定任务,用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程:有它自身的生命周期作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程:是一个程序内部的一条执行路径作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(PC)JVM的内存区域中,一个进程共享方法区和堆,每个线程拥有自己的虚拟机栈和PC单核CPU和多核CPU的理解单核:假的多原创 2020-08-12 20:57:37 · 95 阅读 · 0 评论 -
JAVA基础DAY2
JAVA基础DAY2Scanner对象java.util.Scanner是Java5的新特征,我们通过Scanner类获取用户输入。基本语法:Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()来判断是否还有输入的数据。next():一定要读取到有效字符才可以结束对输入有效字符前的空白,next()方法自动去掉只有输入有原创 2020-08-11 16:58:56 · 125 阅读 · 0 评论 -
JAVA基础DAY01
JAVA基础Java三大版本Java的可移植性:JVMJavaSE :标准版(桌面程序,控制台开发…)JavaME :嵌入式开发(没人用了)JavaEE:企业级开发(web、服务器开发)JDK、JRE、JVMJDK:Java Development KitJRE:Java Runtime EnvironmentJVM:JAVA Virtual Machine开发环境(JDK)包含运行环境(JRE)包含虚拟机(JVM),跨平台的核心是JVMHello,world!在编写第一个原创 2020-08-10 22:03:20 · 127 阅读 · 0 评论