自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 并发编程JUC系列及部分问题

红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色,红黑树的本质是对二叉查找树 BST 的一种平衡策略,我们可以理解为是一种平衡二叉查找树,查找效率高,会自动平衡,防止极端不平衡从而影响查找效率的情况发生,红黑树每个节点要么是红色,要么是黑色,但根节点永远是黑色的。包含 3 个参数,V 表示要更新的变量,E 表示预期的值,N 表示新值。线程 1 从内存的V位置取出 A ,线程 2 也从内存中取出 A,并将 V 位置的数据首先修改为 B,接着又将 V 位置的数据修改为 A,线程 1 在进行。

2022-11-14 17:02:09 423 3

原创 SpringSecurity的使用

SpringSecurity的使用,运行原理及源码的查看,还有在不同场景的应用

2022-11-01 16:26:27 1776

原创 java常用锁及常见问题

老王去银行取钱,余额有 200 元,老王取 100 元,但因为程序的问题,启动了两个线程,线程一和线程二进行比对扣款,线程一获取原本有 200 元,扣除 100 元,余额等于 100 元,此时阿里给老王转账 100 元,于是启动了线程三抢先在线程二之前执行了转账操作,把 100 元又变成了 200 元,而此时线程二对比自己事先拿到的 200 元和此时经过改动的 200 元值一样,就进行了减法操作,把余额又变成了 100 元。答:CAS 是标准的乐观锁的实现,会产生 ABA 的问题(详见正文)。

2022-10-24 14:15:26 346

转载 泛型由入门到精通一篇通

顾名思义,类型“参数化”就是将类型由原来的具体类型,变成参数化的“类型”,有点类似于方法中的变量参数,不过此时是类型定义成参数形式(你可以理解为类型形参),然后在使用时传入具体的类型(也就是类型实参)。大家可以看到:List,HashMap的源码,在声明集合时或者定义方法时,使用采用尖括号内加占位符的形式 ,这里的占位符就是我们上面说的泛型标记符,泛型标记符号E,K,V,T等用来表示任意类型(E,K,V,T也就是“泛型形参”,在实例化集合对象时需要明确的具体的类型(也就是“泛型的实际参数”))。

2022-10-19 11:21:45 196

原创 Mybatis源码分析图

这是前几天自己写的一张Mybatis源码分析图解希望对大家有所帮助。

2022-10-18 19:14:58 181

原创 Git的基础概念以及使用

分支的合并以及删除: 最终需要哪个分支就切换到哪个分支 , 点击合并(git merge)选择要合并进来的分支 , 有冲突要先解决冲突 , 然后再次提交一下代码.  在TortoiseGit的switch/checkout可以进行查看以及删除相应的分支.它通常将现有路径的当前内容作为一个整体添加,但是通过一些选项,它也可以用于添加内容,只对所应用的工作树文件进行一些更改,或删除工作树中不存在的路径了。将存储库克隆到新创建的目录中,为克隆的存储库中的每个分支创建远程跟踪分支(使用。如果没有给出路径 -

2022-10-13 20:04:35 206

原创 Java类加载器

● 根类加载器(Bootstrap)--C++写的,看不到源码;● 扩展类加载器(Extension)--加载位置:jre\lib\ext中;● 系统(应用)类加载器(System\App) --加载位置:classpath中;● 自定义加载器(必须继承ClassLoader)。

2022-10-06 15:45:32 79

原创 Java IO知识概述

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。

2022-10-06 15:42:56 56

原创 数据结构与算法知识梳理

⼆叉树转树:①若结点x是其双亲y的结点,则把x的右孩⼦,右孩⼦的右孩⼦,,,,都与y连在⼀起;图(Graph)是由顶点的有穷⾮空集合和顶点之间的边的集合组成,通常为G(V,E)其中G表⽰⼀个图,V是图G中顶点的集合,E是图中边的集合。在记录的存储位置和它的关键字之间建⽴⼀个确定的对应关系F,使得每个关键字key对应⼀个存储位置F(key),存储在⼀块连续的存储空间。⽆向完全图:在⽆向图中,如果任意两个顶点之间都存在边,则称改图为⽆向图,含有n个顶点的⽆向图有n*(n-1)/2条边。④反复执⾏直⾄序列有序。

2022-10-06 15:35:02 616

原创 java多线程——生产者与消费者模型

2.让两个产品来回切换(目的是放大第一个步骤的问题)加锁,防止脏数据的出现。1.让生产者线程和消费者线程 共同操作同一个手机对象(资源)1.一个生产者一个消费者的情况。2.多个生产者和消费者。2.多个生产者和消费者。

2022-09-18 10:49:48 498

原创 JAVA字符串比较

java字符串如何进行比较?我们可以根据内容和引用来比较Java中的String。它用于身份验证(通过 equals() 方法)、排序(通过 compareTo() 方法)、引用匹配(通过 == 运算符)等。

2022-09-18 10:42:12 6122 1

原创 Java异常处理

● final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,被其修饰的类不可继承。● finally:异常处理语句结构的一部分,表示总是执行。● finalize:Object 类的一个方法,所以Java对象都有这个方法,当某Java对象没有更多的引用指向的时候,会被垃圾回收器回收,该对象被回收之前,由垃圾回收器来负责调用此方法,通常在该方法中进行回收前的准备工作。

2022-09-17 13:39:06 80

原创 4种Java幂运算实现代码

主要分为递归和循环两种,如果结果超过long最大值的话只有选择BigDecimal方式能求出正确结果。的风险,循环更慢但更安全(时间单位为纳秒)时间单位递归速度更快,但是可能会有。

2022-09-17 13:36:29 3569

原创 java包装类和String类(StringBuffer和StringBuilder)

Java为纯面向对象语言(万物皆对象),而8种基本数据类型不能创建对象,破坏了Java为纯面向对象语言的特征,所以Java又给这8种基本数据类型分别匹配了对应的类,这种叫做包装里/封装类。String是一个不可变的类, 即一旦一个String对象被创建, 包含在这个对象中的字符序列是不可改变的, 直至该对象被销毁。如果想存储基本数据类型,就可以把基本数据类型转换为对应的包装类对象。如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。集合(类似数组的容器),但是集合只能存引用数据类型,

2022-09-17 13:28:13 69

原创 常见的Spring问题

Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。

2022-09-13 22:13:49 303

原创 JVM及常见问题

为每一个线程预先在 Eden 区分配一块内存,JVM 在给线程中的对象分配内存时,首先在 TLAB 分配,当对象大于 TLAB 中的剩余内存或 TLAB 的内存已用尽时,再采用上述的 CAS 进行内存分配。引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。Java自带的加载器加载的类,在虚拟机的生命周期中是不会被卸载的,只有用户自定义的加载器加载的类才可以被卸载。不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。

2022-09-13 12:03:03 373

原创 java —— 集合

集合是Java API所提供的一系列类,可以用于动态存放多个对象 (集合只能存对象)集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。(集合中不能放基本数据类型,但可以放基本数据类型的包装类)集合类全部支持泛型,是一种数据安全的用法。

2022-09-11 14:37:28 110

原创 java 异常

异常是指程序在运行过程中发生的,由于外部问题导致的程序运行异常事件,异常的发生往往会中断程序的运行。在 Java 这种面向对象的编程语言中,万物都是对象,异常本身也是一个对象,程序发生异常就会产生一个异常对象。

2022-09-11 14:34:06 94

原创 什么是面向对象

​ 类加载到方法区时,JVM会扫描该类的所有属性 ​ 并把静态属性加载到静态区中,静态属性属于类属性, ​ 该类所有的对象都共享该属性 ​ 静态属性直到项目结束时才会被回收。接口是特殊的抽象类,但是本质还是抽象类,抽象类是不可以new对象的,接口也是不能new对象,new出来的匿名类内部类的对象。应用场景:当一个方法必须在父类中出现,但是这个方法又不好实现,就把该方法变成抽象方法,交给非抽象的子类去实现。4.接口解决了类的单继承问题?成员变量:类里,方法的外面的变量,并且系统会赋默认值,作用在整个类中。

2022-09-07 10:54:51 59

原创 Java中的一些常用类

Object 是类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。因此,以下两个类表示的含义是一样的。等价于Object类提供无参构造方法 ,之所以提供这样的无参构造,是因为在子类对象实例化时都会默认调用父类中的无参构造方法,这样在定义类时即使没有明确定义父类为Object,读者也不会感觉代码的强制性要求。

2022-09-05 21:38:33 95 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除