java
文章平均质量分 92
司马老峰
这个作者很懒,什么都没留下…
展开
-
线程池技术分享
java 线程池---源码分析原创 2022-10-13 23:20:37 · 218 阅读 · 1 评论 -
ThreadLocal技术分享
threadLocal原理分享原创 2022-10-06 16:31:52 · 396 阅读 · 0 评论 -
Spring Security学习(三)授权管理器
在第一篇的授权部分,有分析到授权主要由AbstractSecurityInterceptor及其子类完成具体到实际代码中其实是 // 用户通过了认证,基于当前用户信息,和目标对象的安全属性配置,进行相应的权限检查 this.accessDecisionManager.decide(authenticated, object, attributes);AccessDecisi...原创 2020-03-29 14:25:59 · 941 阅读 · 0 评论 -
Spring Security学习(二)认证管理器
前文分析到 UsernamePasswordAuthenticationFilter的时候,可以发现最终过滤器还是把用户登陆信息交给了认证管理器进行认证,如下面代码所示:this.getAuthenticationManager().authenticate(authRequest);本文继续分析认证过程AuthenticationManagerAuthenticationManager...原创 2020-03-07 13:16:10 · 832 阅读 · 0 评论 -
Spring Security学习(一)认证与授权
Spring SecuritySpring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。简单来说springsecurity主要对用户进行认证以及授权。认证是指验证用户是否为当前系统中的用户, 授权是指验证用户是否有权限执行某个操作。故此本文着重从认证以及授权两个方向对springsecurity进行分析。核心组件Security...原创 2020-03-07 13:15:42 · 1505 阅读 · 0 评论 -
java ArrayList 源码分析(1.8)
简介ArrayList 跟HashMap一样是很常用的集合类。特点ArrayList 的底层使用的依然是数组,但是与 Java 中常规的数组不同的是,它的容量能动态增长。在添加大量元素前,java通过调用ensureCapacity操作来增加 ArrayList 实例的容量。内部变量// 默认容量为10private static final int DEFAULT_CAPACITY ...原创 2019-02-17 16:19:20 · 361 阅读 · 0 评论 -
spring boot集成Spring Security
集成Spring Security原创 2019-02-28 19:51:51 · 167 阅读 · 0 评论 -
Spring Boot集成Actuator
Actuator 介绍actuator 是 spring boot 提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等使用 Actuator要想使用 Actuator 只需要在pom.xml依赖中加入Actuator 依赖即可,代码如下: <dependency> <groupId>org.springframewor...原创 2019-02-25 20:07:48 · 491 阅读 · 0 评论 -
记一次解决线上 CPU 飙升问题经历
记录一次解决线上cpu飙升的经历原创 2019-09-05 08:55:06 · 728 阅读 · 2 评论 -
面试还怕被问排序算法吗?
插入排序插入排序是最简单的排序算法之一。插入排序由N-1趟排序组成。对于从p=1到p=N-1趟,插入排序保证从位置0到位置p上的元素为已排序状态。代码示例:public static void insertionSort(int[] array) { int j; for (int p = 1; p < array.length; p++) { int temp = arr...原创 2019-09-21 14:58:30 · 145 阅读 · 0 评论 -
Tomcat 源码分析(六)
connector(连接器)以及请求处理过程介绍原创 2019-01-15 21:46:52 · 239 阅读 · 0 评论 -
Tomcat 源码分析(一)
准备工作原创 2018-12-02 15:34:50 · 1041 阅读 · 0 评论 -
java HashMap 源码分析(1.8)
概述HashMap是Java中使用频率最高的用于存储键值对的数据类型。特点HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要满足线...原创 2018-09-18 21:55:34 · 159 阅读 · 0 评论 -
java 注解
概述java 的 Annotation(注解)是代码里面的一种特殊标记,这些标记不会影响程序的原有逻辑,只有配套的注解处理工具经过读取,处理,才能够让这些注解产生作用。Annotation 相当于修饰符,可以修饰类、方法,成员变量等。基本 Annotation@Override 表示当前的方法定义将覆盖超类中的方法。@Deprecated使用了注解为它的元素编译器将发出警告,因为注解@...原创 2018-10-09 19:04:27 · 258 阅读 · 0 评论 -
JVM 学习
JVM(Java Virtual Machine)Java程序的一大特性就是跨平台特性。Java虚拟机(JVM)是实现这一特性的关键。因为字节码文件(.class)可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将.class文件解释成为特定的机器码进行运行。从而可以达到一次编译到处运行的效果。这一特性就好比各个厂商的浏览器各不相同,但是html都能在...原创 2018-10-28 16:10:53 · 200 阅读 · 0 评论 -
Java垃圾回收
文章目录垃圾回收的意义什么才是垃圾引用垃圾回收算法标记清除算法复制算法标记整理算法分代收集算法垃圾收集器Serial收集器垃圾回收的意义在C、C++ 中,对象所占的内存在程序结束运行之前一直被占用,除非被显式地释放。但是在Java中,java虚拟机具有自动内存管理机制,不需要为每一个new出来的对象显式地编写配对的delete/free内存的代码,由虚拟机区清理内存垃圾,不容易出现内存泄漏或者...原创 2018-10-29 19:28:02 · 115 阅读 · 0 评论 -
java 动态代理
文章目录代理应用场景开闭原则静态代理代码示例动态代理代码示例代理通过不直接访问被代理对象的方式,而访问被代理对象的方法,这样的模式称为代理。应用场景在不修改源码的情况下,增强一些方法,在方法执行前后做任何你想做的事情;在使用RPC框架的时候,可以通过动态代理的方式来进行逻辑搭建,实现松耦合;SpringAOP 便是采用的动态代理的机制来完成的。开闭原则所谓开闭原则就是:对修改关...原创 2018-10-31 19:53:48 · 155 阅读 · 0 评论 -
java 并发之 synchronized 实现原理
在 java 开发中 synchronized 是使用的最多的工具。表现形式在 java 中每个对象都可以作为锁:对于普通同步方法,锁是当前实例对象;对于静态同步方法,锁是当前类的 Class 对象;对于同步方法快,锁是 Synchronized 括号里配置的对象。当一个线程试图访问同步代码块时,它首先必须得到锁。实现原理JVM 基于进入和退出 Monitor 对象来实现方法同...原创 2018-11-24 19:15:01 · 201 阅读 · 0 评论 -
java 并发之 volatile 实现原理
volatile 属于轻量级的 synchronized, 它保证了共享变量的“可见性”。Java语言规范对volatile的定义如下:Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。一个变量如果用volatile修饰了,那么 Java 可以确保所有线程看到这个变量的值是一致的,如果某个线程对使用了 volatile 修...原创 2018-11-24 19:15:28 · 137 阅读 · 0 评论 -
java 并发之线程
现代的操作系统都是每运行一个程序就会为其创建一个进程(Process),进程具有独立性,动态性和并发性的特点。,在操作系统中可以支持多个进程并发地执行,比如一边编程,一边听歌…多线程则是对多进程的扩展,线程被称作轻量级进程(Light Weight Process),一个进程可以拥有多个线程,这些线程拥有独立的程序计数器,堆栈和局部变量等等,可以并发执行。因此,线程是现代操作系统调度的最小单元。...原创 2018-11-24 19:15:52 · 119 阅读 · 0 评论 -
java 并发之 Lock
Lock 与 Synchronized 一样用于控制多个线程访问共享资源。Synchronized 关键字隐式地获取锁和释放锁,同时也将锁的获取释放流程固定化了。Lock 则不同,它支持用户去手动地获取和释放锁。基本方法Lock 是一个接口,定义了锁的获取与释放的基本操作:void lock():使用得最多的一个方法,就是用来获取锁。如果锁已被其他线程获取,则进行等待,在锁获得后从该方法返...原创 2018-11-24 19:16:20 · 113 阅读 · 0 评论 -
java 的几个关键字(一)
static 关键字static 关键字可以用来修饰变量和方法,定义静态代码块,也可以用来修饰内部类:变量和方法: 被 static 修饰的成员属于类,不属于单个这个类new出来的某个对象(即不能通过this调用),被类中所有对象共享,可以通过类名调用。调用格式:类名.静态变量名 类名.静态方法名()静态代码块: 一个对象被创建的顺序为:静态代码块—>非静态代码块—>...原创 2018-09-16 21:41:01 · 380 阅读 · 0 评论