自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spring 基础

1. 基础知识1.1 主要特征核心技术:DI,AOP,事件(events),资源,i18n,验证,数据绑定,类型转换,SpEL测试:模拟对象,TestContext 框架,Spring MVC 测试,WebTestClient数据访问:事务,DAO,JDBC,ORM,编组 XMLWeb 支持:SpringMVC 和 Spring WebFlux Web 框架集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存语言:Kotlin,Groovy,动态语言1.2 主要模块Sp

2020-07-11 16:12:11 87

原创 MySQL 基础知识

1. MySQL 基本架构三大范式:1NF: 属性不可分2NF:属性完全依赖于主键3NF:属性不依赖于其它非主属性连接器:身份验证和权限相关查询缓存:MySQL 8.0 的时候已近弃用,因为这个功能不太实用分析器:如果缓存中没有的话,SQL 语句会经过分析器来分析改语句是用来干嘛的,检查语法是否正确优化器:按照 MySQL 认为的最优的方案去执行执行器:执行语句,从存储 引擎返回数据存储引擎:主要负责数据的存储和读取,可替换2. 事务2.1 事务的特性 ACID原子性:保

2020-07-07 19:02:27 84

原创 JDK 常用工具

jps 查看所有进程类似于 linux 的 ps,查看所有 Java 进程的启动类、传入参数、Java 虚拟机参数等信息jps 显示虚拟机执行的主类名和其的唯一 IDjps -q 只输出 IDjps -l 输出主类的全名,如果进程执行的是 jar 包就输出 jar 包的路径jps -v 输出虚拟机进程启动时的 JVM 参数jps -m 输出传递给 Java 进程 main() 函数的参数jstat 监视虚拟机各种运行状态信息用于监视虚拟机各种运行状态信息,可以显示本地或远程(支持 RM

2020-07-04 10:49:56 227

原创 Java 线程池

1. 线程1.1 线程的几种状态:NEW:初始状态、线程被构建,但是还没有 start()RUNNABLE:运行状态,RUNING 和 READY 都是运行状态,start() 之后变成 READY 线程获取 CPU 的 timeslice 之后就处于 RUNNINGBLOCK:阻塞状态,线程阻塞于锁WAITING:等待状态,需要等待其它线程做出一些动作TIME_WAITING:超时等待,到达指定的时间自行返回TERMINATE:线程终止,已经执行完毕了1.2 sleep 和 wait

2020-07-01 22:01:33 84

原创 Java 并发之 AQS

1. AQSAQS(AbstractQueuedSynchronizer) 是一个用来构建锁和同步器的框架,内部定义了很多锁的相关方法,使用 AQS 能简单高效的构造出大量的同步器,常见的 ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore、SychronousQueue 等都是基于 AQS 的。1.1 AQS 原理AQS 内部维护了一个 volatile int state 来表示同步状态,通过内置的 FIFO 队列来完成获取资

2020-06-30 21:39:41 115

原创 JVM 常用参数

1. 内存堆内存-Xms:最小堆内存,也可以使用 -XX:InitialHeapSize=2048m-Xmx:对大堆内存,也可以使用 -XX:MaxHeapSize=2048meg:-Xms2G -Xmx5G新生代-Xmn:新生代的最大值,也可以使用 -XX:MaxNewSize=512m-XX:NewSize=256m:新生代的最小内存-XX:NewRatio=1:新生代与老年代的比值,1 就是 1:1,默认是 1:2-XX:SurvivorRatio=6:Eden 区和 Surv

2020-06-29 15:33:08 141

原创 Java 面试 JVM GC

1. 堆内存Java 堆是垃圾收集器管理的主要区域,所以也叫做 GC 堆 Garbage Collected Heap。堆的空间结构可以分为 Eden、From Survivor、To Survivor、Old Memory 等大部分的对象都会在 Eden 区域分配,特别大的对象会直接进入老年代在一次垃圾回收后,如果对象还活着,则会进入 s0 或者 s1,并且对象的年龄还会 +1当年龄加到一定程度,默认 15 或者某个年龄大小超过 Survivor 区的一半,去这两个中的更小值,会晋升为老年代。-

2020-06-27 18:26:46 104

原创 Java 面试 JVM 基础:运行时内存、类加载机制

1. JVM 运行时内存1.1 线程私有① 线程计数器可以看作是当前线程所执行的字节码的行号指示器字节码解释器通过这个计数器的值来获取下一条需要执行的指令是唯一一个不会出现 OOM 的内存区域随着线程创建而创建、随着线程销毁而销毁② 虚拟机栈是由一个个栈帧组成:每个栈帧里面都有局部变量表、操作数栈、动态链接、方法出口信息生命周期和线程一样局部变量表:存放了各种编译期可知的数据类型(基本数据类型)和对象引用可能会出现两种错误:SOF 和 OOMSOF:若虚拟机栈内存不允许动态扩

2020-06-26 16:12:34 150

原创 Java 集合 - ArrayList

1. ArrayList底层实现:数组,Object[] elementData查询效率高,增删效率低,线程不安全,使用评率高使用评率高是因为我们平常的开发场景当中,大部分都是查询多,增删少如果频繁的增删,最好使用 LinkedList,如果需要线程安全可以使用 Vector,或者 Collections.sychronizedList() 方法默认的大小是 10使用内存是连续的,会大幅降低读取内存的性能开销扩容机制当元素满的时候,会重新定义一个长度为 n + n >> 2

2020-06-23 20:41:03 55

原创 Java 面试常客 HashMap

1. JDK7 到 8 的改变1.1 JDK 1.7使用的底层数据结构是 Entry 数组 + 链表的形式

2020-06-22 20:56:52 233

原创 Java并发 sychronized 关键字

主要资料参考于 JavaGuide https://github.com/Snailclimb/JavaGuide#java,再加上自己的理解JDK 1.6 之后对锁的实现进行了大量的优化,比如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等。1. synchronized 主要的使用方法修饰实例方法:给当前对象加锁,也就是 this修饰静态方法:给当前的类加锁,也就是给这个类的 class 对象加锁,基本上相当于这个 class 的全局锁了修饰代码块:指定加锁对象,对给定对象加.

2020-06-21 14:53:20 100

算法 第四版 中文

算法第四版,高清完整扫描版,目录已经补充完整 Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne 中文版,配合官网食用 https://algs4.cs.princeton.edu/home/

2019-01-20

jdk1.7.0_80 linux 系统版本 64 位

主要是因为 dubbo使用2.5的 spring,有不能用 jdk1.8 以上的,真的烦

2019-01-20

vb6.0精简版

很小 适合初学者 短时间 简单程序 VB6.0精简版

2011-12-30

空空如也

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

TA关注的人

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