自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring源码分析(1)--Spring初始化(注册)

Note:spring源码版本5.0.2Release基于ClassPathXmlApplicationContext的BeanDefinition注册过程 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");学习Spring时我相信大部分人的第一个实例就是这样的...

2019-11-30 22:08:32 180

原创 Kafka学习笔记

kafka kafka是一款分布式消息发布和订阅系统,它由于具有高性能、高吞吐的特点而被广泛应用于大数据传输场景kafka的应用场景行为跟踪日志收集kafka的架构? 一个典型的kafka集群包含若干个Producer、若干个Broker、若干个Consumer Group以及一个Zookeeper集群。kafka通过zookeeper管理集群配置及服务...

2018-07-21 11:02:52 296

原创 Java实现深度克隆的简单方法

使用java的流,先将对象序列化,然后序列化回对象,其中的限制为克隆的对象必须实现Serializable接口 public Object deepCopy(Object source){ ObjectOutputStream os = null; ObjectInputStream ois = null; try{ ...

2018-05-12 19:04:41 3862

原创 jvm参数含义

-Xms:堆最小(初始)内存分配-Xmx:堆最大内存分配-XX:+/-UseTLAB :虚拟机是否使用TLAB(Thread Local Allocation Buffer 本地线程分配缓冲)-Xmn:堆内新生代的大小-Xss:栈大小-XX:PermSize:方法区内存大小-XX:MaxPermSize:方法区最大内存-XX:MaxDirectMemorySize:直接内存容量-...

2018-05-12 18:47:42 323

原创 Java高并发编程(9)

future模式首先,需要一个Future接口,用以获取值public interface Future<T> { T get();}然后,需要一个FutureTask接口,用以定义返回值的方法public interface FutureTask<T> { T call();}再然后,需要一个FutureSer...

2018-04-11 22:55:30 156

原创 Java高并发编程(8)

实现ReadWriteLock锁主要lock代码//读写锁public class ReadWriteLock { /** * 正在读的线程数 */ private int readerReading = 0; /** * 等待读的线程数 */ private int readerWaiting = 0;...

2018-04-10 22:02:37 196

原创 Java中 单例模式的一些方法总结

总的来说,应该有4中(说的不对请多见谅) - 1、饿汉式:可能会浪费资源/** * 饿汉式 */public class SignleVersion1 { private static SignleVersion1 signle = new SignleVersion1(); private SignleVersion1(){} public static...

2018-04-09 22:13:05 137

转载 happens-before 原则

原文地址 https://blog.csdn.net/a1211529911/article/details/51496732简介 Java使用新的JSR-133内存模型,JSR-133使用happens-before的概念来阐述操作之间的内存可见性。在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既...

2018-04-09 21:34:08 234

原创 Java高并发编程(7)

用synchronized、wait、notifyAll实现lock锁直接贴代码 lock接口public interface LockInterface { void lock() throws InterruptedException; void lock(long millis) throws InterruptedException, TimeoutExc...

2018-04-06 21:57:06 168

原创 Java高并发编程(6)

使用synchronized、wait、notify实现的生产者、消费者public class ProducterAndCustomerVersion1 { private final static Object LOCK = new Object(); private static boolean isProducted = false; private sta...

2018-04-06 21:52:12 144

原创 Java高并发编程(5)

sleep 和 wait 方法的区别sleep和wait方法都能使当前线程阻塞,但是它们还是有许多不同的sleep方法是Thread类的,而wait方法是Object的,它们的所属类不同sleep方法阻塞后不会释放持有锁,而wait方法在阻塞后会把持有的锁释放掉sleep方法直接使用Thread调用即可,但是wait方法需要有synchronized关键字配合才能使用,否则会报错...

2018-04-06 20:15:45 138

原创 Java高并发编程(4)

中断线程的一些方法线程启动完毕后,在运行可能需要终止,Java提供的终止方法只有一个stop,但是不建议使用此方法,因为它有以下三个问题:(1)stop方法是过时的;(2)stop方法会导致代码逻辑不完整;(3)stop方法会破坏原子逻辑因此需要些别的方法来打断线程,这里提供3个方法1、使用中断状态标志位,代码如下所示public class Threa...

2018-04-06 00:31:21 140

原创 Java高并发编程(3)

Thread 类的一些方法说明join():等待这个线程死亡。 使当前线程在该线程之后执行,join源码如下 可以看出来,join实际调用wait()方法interrupt():中断这个线程。 除非当前线程中断自身,这是始终允许的,所以调用此线程的checkAccess方法,这可能会导致抛出SecurityException 。 如果该线程阻塞的调用wait() , wait(lo...

2018-04-05 23:32:59 349

原创 Java高并发编程(2)

实现线程的2中方式继承Thread对象实现Runnable接口 其中,实现runnable接口中可以参考设计模式:策略模式用runnable实现线程时,启动时需要创建Thread对象并将实现runnable的接口当参数传入,实际上用的构造函数为 可以看到,在该方法中有这一步 它将传入的Runnable接口赋值给本地变量,接下来看Thread中的run方法 如果...

2018-04-05 18:09:56 131

原创 面试时遇到的一些问题

一、大概说下SpringMVC的流程Disptacher为核心处理器,基本所有操作都围绕它转1、用户发起请求,请求抵达DispatcherServlet,dispatcherServlet调用doService方法中的如图所示代码 2、代码执行到940行,调用getHandler方法获取HandlerExecutionChain,而它是由2部分组成,用户写的handler(即cont...

2018-03-28 22:54:52 177

原创 Java高并发编程(1)

线程的5中状态及相互转换-新建(new): 继承Thread或实现Runnable的类用new关键字创建对象 -**就绪(runnable):**Thread或Runnable实例调用start方法 -执行(running):此时线程处于执行状态 -阻塞(blocked):当执行中的线程遇到sleep、wait、锁 等方法是,线程便处于阻塞状态 -死亡(dead):线程执行完毕或遇到异...

2018-03-27 23:29:22 206

原创 JAVA web 文件下载时 文件头设置

response.setContentType(“text/html;charset=UTF-8”); response.setContentType(“application/octet-stream; charset=utf-8”); response.setHeader(“Content-Disposition”, “attachment; filename=\”” + new Strin

2017-08-28 15:27:59 1727

原创 SpringSecurity 登录页面无法获取CSRF令牌的解决方法

捡重要的说 配置说明:项目是基于maven+springMVC+springSecurity的,maven、web.xml和springmvc具体配置可以百度,具体说下springsecurity.xml的配置,<http pattern="/init" security="none"/><http pattern="/login" security="none"/><http auto-con

2017-03-21 10:46:30 2629

原创 CSRF ajax 的一些设置

spring security 4.x 之后默认开启csrf保护,因此 POST, PUT or DELETE 等基本请求都要求附带服务器端的令牌请求才会被服务器接受,因此,如果你的POST, PUT or DELETE 等请求如果没有携带服务器令牌,你将会得到一个403错误"Invalid CSRF Token 'null' was found on the request parameter '

2017-03-21 09:53:31 878

原创 用java实现计算String类型的四则运算——用栈和后缀表达式实现

用java实现计算String类型的四则运算——用栈和后缀表达式实现最近看数据结构,看到栈和后缀表达式的地方,于是自己动手用写了一段很简单的实现计算String类型的四则运算的例子。思路:给一个String类型的算术计算式,求这个String算数式的值。计算String串的值,涉及到一个主要问题:加减乘除及括号的优先级该怎么解决。于是后缀表达式就华丽丽的登场了,它涉及到的数据结构是栈,然后利用后缀

2015-11-18 23:15:26 2788 1

vagrant_2.2.7_x86_64.rar

vagrant安装包,官网下载太慢了,特此共享出来 vagrant安装包,官网下载太慢了,特此共享出来

2020-06-04

空空如也

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

TA关注的人

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