学习
文章平均质量分 52
嗑瓜子儿溜茶水儿
这个作者很懒,什么都没留下…
展开
-
HashMap源码阅读;HashMap的put()方法;
当仔细研究HashMap的put方法后,实际对HashMap的原理已经有了基本认知。描述HashMap的原理可以从数据结构的角度展开来说,这是因为HashMap作为容器存储数据,那么数据存储一定离不开数据结构。首先,java8的HashMap需要的数据结构有三种(数组、链表和红黑树)。数组,是哈希表来作为链表的索引。哈希表会在元素个数大于扩容阈值时引发扩容,扩容是以2次幂的规模来处理,哈希表只有在第一次put元素时才会创建,所以HashMap是懒加载的。链表,是真正保存数据的位置。原创 2024-01-25 16:16:02 · 911 阅读 · 1 评论 -
使用 docker 部署 MySQL 会导致数据丢失吗
docker 部署 MySQL服务,只有 MySQL 容器被删除的情况下,数据会丢失。可以通过 docker 外挂宿主机的文件夹,来存储 MySQL 的数据。并且当重新运行一个 MySQL 镜像时,也要外挂同一个文件夹,确保容器能读取到先前删除的容器内的数据。原创 2023-02-28 23:53:54 · 4248 阅读 · 2 评论 -
学习:Spring事务扫盲
spring事务的传播方式spring事务的隔离级别原创 2022-11-17 22:44:18 · 433 阅读 · 0 评论 -
设计模式;一句话归纳面向对象设计原则;
保存一个比较好的设计模式总结的网站。一句话归纳设计模式原创 2022-03-15 14:59:40 · 153 阅读 · 0 评论 -
学习:强、软、弱、虚引用简单理解
强引用:使用最多的引用,被强引用的对象,即使内存溢出(OOM)也不会被GC回收。Object o = new Object();软引用:被软引用的对象会在内存不足的情况下被GC回收,即使该对象依然被引用。因此软引用适合应用在缓存方向。SoftReference<Object> s = new SoftReference(o);弱引用:被弱引用的对象,GC时会直接回收掉。即只要发生GC就会回收被弱引用的对象。JDK8 线程中维护的 ThreadLocalMap 的 key 使用了弱引用原创 2021-06-01 10:20:09 · 193 阅读 · 0 评论 -
笔记:JQuery遍历页面内所有的input并赋值
直接上// 将所有 input 的值初始化为 0// 方法一: $("input").each(function () { $(this).val(0) })// 方法二: var inputs = $("input") for(let i=0; i < inputs.length; i++){ $(inputs[i]).val(0) // 数组中每一个元素表示当前标签得用选择器再次选原创 2021-01-26 10:17:24 · 2817 阅读 · 0 评论 -
学习:CAS算法的理解和ABA问题的解决
学习了CAS算法的原理,以及ABA问题的解决。记录个人理解。CAS 算法:全称 Compare And Swap ,比较交换算法。举个例子说明算法的思路:有一个变量 int a = 0;在多线程条件下,每个线程使变量 a 进行自增操作有一个线程 线程1线程1 对 a 的操作如下: 1. 获取 a 当前的值,并保存为 a1 2. 计算 a1 + 1 的结果 3. 检查 a 当前的值,并与 a1 进行比较如果比较结果相同,则将计算后的值赋给 a,完成自增;如果比较结果不相同,则将重复原创 2021-01-04 17:13:05 · 236 阅读 · 0 评论 -
解决:Vue 方法的同步问题
记录一个坑,Vue 在业务驱动学习,不免踩了很多坑,不过这个问题其实并不是仅出现在Vue中,属于 Ajax 的同步/异步问题。虽然我不是前端开发,但也避免不了写 Ajax ,长时间使用Ajax 一直都忽略了一个致命问题,那就是同步问题。大家知道Ajax出现就是为了实现异步请求服务器防止页面卡顿,然而并不是所有的业务都要基于异步执行,或者说有些逻辑必须要同步执行,即执行完某一个后台请求后才能继续执行代码。忽视的问题,就是脚下的坑。。。问题描述现在有这样的一个业务,希望在进入页面和页面结束时记录时间戳,首原创 2020-12-11 10:36:29 · 3989 阅读 · 0 评论 -
时间复杂度如何计算
计算一些简单的算法时间复杂度。今天算是简单了解了时间复杂度的计算方法。简单概念算法的时间复杂度:是指算法的时间度量,记作 : T(n) = O(n)其中, n 为问题的规模。 f(n) 是表示问题规模的某个函数。 T(n) 是算法的时间复杂度。算法的时间复杂度建立在数据规模与执行次数的函数关系上。所以完整的分析过程是:1. 分析数据规模与操作次数之间的函数关系2. 按 大O阶 方法推导算法的时间复杂度大O阶 方法计算的时间复杂度推导 大O阶 的方法: 1.用常数 1原创 2020-12-01 17:17:46 · 6414 阅读 · 0 评论 -
解决:SVN解决冲突
Intelij idea 使用SVN,提交代码前先更新代码,此时如果有冲突,就会提示你解决冲突。产生冲突的情况: A 和 B 两名程序员,分别更新了同一版本 version 1 的代码。同时修改了一个文件。 A提交代码后,服务器中的代码是 version A 即 A 修改后的代码, B随后提交代码,由于服务器中的代码已经不是 B 一开始更新的 version 1,原创 2020-11-11 22:13:33 · 159 阅读 · 0 评论 -
学习:锁升级过程理解
理解锁升级过程四种锁状态: 无锁态,偏向锁,轻量级锁,重量级锁使用 synchronized 给对象加锁的过程会发生上方四种状态的迭代。锁升级:新建一个对象,他是无锁态,当A线程访问此对象发现他是无锁状态那么将此对象升级为偏向锁,并且在 markword 中使用 54bit 来保存当前线程的信息,在后三位标记为 001 。A线程下次可以直接访问这把锁。当B线程与A线程同时访问这个锁,那么撤销偏向锁标记,然后A线程与...原创 2020-11-07 16:05:40 · 192 阅读 · 0 评论 -
学习:JVM扫盲
HotSpot: 一种虚拟机,是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。TLAB: Thread Local Allocation Buffer,每个线程在Java堆中预先分配一的小块内存,即线程本地分配缓存区。是仅供当前线程存放对象的内存块,其他线程不能在此区域存放对象。可解决多线程中,新建对象时的线程安全问题。通过 -XX:+/-UseTLAB 设置。分配时线程独占,读取、使用、回收时线程共享。被 HotSpot 采用。运行时内存区java虚拟机运行时的原创 2020-11-03 18:53:49 · 91 阅读 · 0 评论 -
学习:从源码角度分析 ArrayList 和 add(E e)
尝试分析ArrayList源码。首先看一下他的 类图 的结构可序列化、可克隆、可迭代、可随机访问。可随机访问这个接口,就是说for循环遍历集合会优于迭代器遍历。间接继承了collection 和 list 接口,一般常用 list 接口的方法。常用 list 通过多态引用 ArrayList 对象。上图就是说 ArrayList 中有上方直接或间接父类、接口中的功能的集合体来看 ArrayList 中的部分参数,源码: //默认的初始容量 private static final原创 2020-10-29 22:21:17 · 130 阅读 · 0 评论 -
学习:JsonP跨域的实例,Jsonp原生和JQuery方法,JAVA后端ssm/springB/C
要了解同源策略,导致跨域,如何解决。直接写前端的三种跨域方式,怕忘了自己的思路,记下来免得以后再去找。代码:<!DOCTYPE html><html> <head> <title>Title</title> <script crossorigin="anonymous" integrity="sha384-AQhQSZGQWTMJhb/TdS7NWpCmOM/8lIEsaevSU5oZtt8pQKoa+uJL4A2WnQ原创 2020-10-22 15:30:49 · 103 阅读 · 0 评论 -
学习:Mybatis中<forEach>标签的使用
遍历 对象数组 的方式描述:想要通过 Mybatis 动态 sql 实现,批量添加 数据进入数据库时,Dao接口参数设置为实体类型数组,Mapper 的对应方法使用 forEach 标签遍历此数组。代码:dao 接口的方法: /** * 批量插入 * @param goods 货物数组 * @return 影响行数 */ int bulkInsert(Good[] goods);接口中接受的参数是 对象类型的数组mapper 文件对应的 S原创 2020-10-21 13:57:26 · 188 阅读 · 0 评论 -
学习:Spring-core的序列化工具 SerializationUtils
序列化和反序列化工具,sping-core依赖中封装了此工具,通过两个方法可以将Object类型序列化成 byte[ ] 格式的数据。反之可以将 byte[] 类型的数据反序列化为Object类型。源码:public abstract class SerializationUtils { public SerializationUtils() { } public static byte[] serialize(Object object) { if (obj原创 2020-10-17 17:04:01 · 729 阅读 · 0 评论 -
学习:JDBC基本使用步骤忘了还好意思学JAVA吗?
整理一下JDBC原创 2020-10-17 16:56:13 · 201 阅读 · 4 评论 -
学习:简要总结 Spring bean 的生命周期
Spring Bean生命周期原创 2020-09-22 00:16:07 · 117 阅读 · 0 评论 -
学习:SSM框架搭建
记录一次搭建简单SSM框架的较详细过程。共本人学习记录交流使用,如有错误或建议恳请批评指正。整体思路:创建maven的webapp工程;为pom文件添加依赖,如:springmvc,spring-context,spring-mybatis 和 druid 等;编写webapp.xml,配置:dispatcherServlet,编码过滤器 和 spring容器监听器;在resources资源文件夹根目录下创建并编写spring_mvc_config.xml配置文件,配置:静态资源放行,视图解析原创 2020-10-12 23:10:15 · 102 阅读 · 2 评论 -
学习:HashMap遍历方式
消化吸收HashMap的四种遍历方式。keySet()方法 使用map.keySet()获得map集合中的所有key,保存在一个Set集合中。遍历这个Set集合同时通过map.get()方法获取到key对应的value Set<String> keys = map.keySet(); for( String key:keys){ System.out.println(key+"原创 2020-10-12 10:44:13 · 74 阅读 · 0 评论 -
学习:记录Spring-JDBC的简单使用
环境搭建:在SpringBoot中使用Spring-JDBC。首先搭好SpringBoot,1. pom.xml中的依赖<dependencies> <!--springBoot的web启动器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st原创 2020-10-04 23:33:44 · 81 阅读 · 0 评论 -
错误:无法通过request转发到外部链接实现跨域问题
想法:将数据保存在request中后,转发给另一个服务器中的项目,实现跨域问题。失败:转发是服务器内部的一次请求,如果希望跳转页面到外部链接,可以使用重定向。request.getRequestDispatcher("URL").forward 此处url会被拼接在项目地址后进行转发。无疑404。...原创 2020-09-15 22:42:12 · 672 阅读 · 0 评论