java日志系统--log4j配置解析过程,源码分析

Logger.getLogger(Test.class);从getLogger开始,就启动了log4j的整个工作流程,通过调用LogManager获取logger实例return LogManager.getLogger(clazz.getName());LogManager类里面有个静态块sta...

2018-01-17 15:49:13

阅读数 13969

评论数 0

ReentrantLock与Condition实现生产者消费者,模拟LockSupport.parkNanos延时

使用ReentrantLock与Condition实现生产者消费者 主要有Producer,Consumer,Pool 生产池 在测试多线程程序时,最后【多建线程】才能明显看出并发时,是否数据异常。建议10到30个线程 创建的线程数少,模拟的延时太高,多线程可能会依次执行,不能判断是否线程安全 P...

2019-05-10 16:56:31

阅读数 19

评论数 0

完全看懂CAS之JDK并发包JUC里cas使用volatile变量自旋的乐观锁模式解决多线程单变量同步问题与CAS缺点ABA资源消耗

当谈到cas解决多线程同步问题,看一个人有没有真正理解cas,不是听他说cas就是使用cpu机器指令比较前后值完成设置保证了原子性,这样基本就是百度百出来的,根本没有好好理解cas的真正过程 【cas要点】 cas方法中的同步变量【必须】是volatile类型 cas自旋(死循环),判断值前后变...

2019-05-09 19:55:00

阅读数 21

评论数 0

使用spring的异步模式@EnableAsync与@Async配合Future与AsyncResult实现异步调用服务并行,也可以并行sql查询加速系统

spring boot项目 服务类上注解@EnableAsync开启扫描方法上的@Async注解,当其他bean调用这个被@Async注解的方法时,spring会通过代理,在子线程里执行,达到异步调用与并行执行的目的 【注意】 不能在类内部 (bean内部,spring无法感知) 调用@Asyn...

2019-05-09 15:11:56

阅读数 28

评论数 0

java static静态块,普通块,静态属性,内部类,内部静态类,内部子类,构造块,辨析与实例初始化执行顺序

因为main所在的类会在jvm启动时,自动被加载,所以写在另一类做测试。 //Test.java public class Test { public static void main(String[] args) { new People(); new P...

2019-05-01 21:36:12

阅读数 56

评论数 0

@ExceptionHandler不管用 spring security oauth2 自定义异常拦截

由于spring security的认证filter,使得认证异常不能通过DispatcherServlet,所以@ExceptionHandler处理不到 需要自定义 资源服务 异常处理过程 resources.authenticationEntryPoint 与 resources...

2019-04-26 20:52:50

阅读数 72

评论数 0

springboot集成springsecurity 使用OAUTH2做权限管理

Spring Security OAuth2 主要配置,注意application.yml最后的配置resource filter顺序配置,不然会能获取token但是访问一直 没有权限 WebSecurityConfigurerAdapter 所在服务器的web配置 ...

2019-04-25 19:41:44

阅读数 62

评论数 0

springboot集成springsecurity简单权限管理与logout退出,@AuthenticationPrincipal

springsecurity主要是 认证 (密码登录) 与 授权 (角色权限管理) 下面一个简单项目例子,使用springsecurity MyUserDetailsService#loadUserByUsername 用户登录 SecurityConfig#configure 配置spring...

2019-04-24 18:53:22

阅读数 117

评论数 0

java函数式编程理解与接口Consumer,Predicate,Function使用,@FunctionalInterface注解

面向对象 (抽象数据,思考数据怎么做,编程时考虑数据怎么处理,比如打印一个什么数据) 函数式编程 (抽象行为,思考什么要做,考虑对这个数据做什么,比如对数据的操作就是打印) java函数式编程接口很多,Consumer,Predicate,Function等等,都是被@FunctionalInt...

2019-04-11 14:07:52

阅读数 17

评论数 0

java重写equals与hashCode,方便实体类如model,entity,pojo等安全存放于map,set中

java开发经常用到实体类作为orm层的数据交换对象,但是没有重写equals与hashCode会导致,在使用诸如set,map时的重复排序错误等等问题,所以equals与hashCode更有利于业务代码,方便使用map,set做去重,排序等等 注意,equals与hashCode中对于实体唯一性...

2019-04-01 13:50:13

阅读数 25

评论数 0

zookeeper理解与总结

zookeeper类似linux的文件系统,由根“/”开始的路径,叫做节点znode,znode下可以有子节点,每个节点可以有数据 节点znode的类型有:永久的,临时,永久且有序,临时且有序。 有序就是create创建节点时如果已经存在,就在后面的计数增加,类似windows的文件重名时的副本2...

2019-03-30 16:21:25

阅读数 20

评论数 0

使用Apache Curator包实现基于zookeeper的分布式锁与验证

Apache Curator包是对zookeeper的java API的包装,使我们更方便使用分布式锁,分布式锁是使用zookeeper的【临时】【有序】节点特效来完成的 Curator分布式锁过程: 1.先设置分布式锁在zookeeper中的路径/curator/lock 2.mutex.a...

2019-03-30 14:34:05

阅读数 31

评论数 0

使用zookeeper的java API操作zookeeper集群--maven项目

maven项目,纯java api 使用zookeeper集群 //pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:/...

2019-03-30 13:54:28

阅读数 37

评论数 0

简单粗暴快速高效vmware搭建Zookeeper集群,使用centos7 minimal镜像,链接克隆

简单粗暴快速高效vmware搭建Zookeeper集群,使用centos7 minimal镜像,链接克隆 安装vmware 下载 centos7 minimal镜像,Download CentOS 自己新建虚拟机安装,期间只设置时区与root密码,20g空间,单磁盘文件,1核cpu,1...

2019-03-30 12:04:46

阅读数 15

评论数 0

java对快速排序算法的理解和两种实现

快排过程:先找一个支点(pivot), 然后一趟排序把数组划分为,左小于<pivot的, pivot点, 右大于>pivot的三部分,然后对左右继续找支点,划分,递归,直到左右完成。看sort(), 就是这个意思 本代码有两种实现快排 partition1 实现过...

2019-03-27 20:37:07

阅读数 32

评论数 0

java使用treemap做词频统计wordcount(字母排序alphabet和词频排序descending freq.)

import java.util.*; public class Test { static List<Map.Entry<String, Integer>> getWordInDescendingFreqOrder(Map&am...

2019-03-27 14:23:00

阅读数 31

评论数 0

纯java实现FastCGI协议模拟nginx直接连接php-fpm通讯

java使用socket连接php-fpm,使用FastCGI协议直接通讯 FastCGI交互时序,从上到下,FCGI_BEGIN_REQUEST开始: FastCGI协议: 基于cgi,添加守护进程管理cgi程序,这样就不用像原始cgi那样,每个请求来fork新建cgi进程处理,处理完销毁进...

2019-03-22 20:32:22

阅读数 148

评论数 0

通过fastcgi协议直接访问php-fpm

通过使用软件直接访问php-fpm,可以方便测试php问题 //ubuntu sudo apt-get install libfcgi0ldbl sudo vim /etc/php/7.2/fpm/pool.d/www.conf pm.status_path = /status ; uncom...

2019-03-21 14:07:53

阅读数 39

评论数 0

java 单例模式标准模板

public class Something { private Something() {} private static class LazyHolder { static final Something INSTANCE = new Something();...

2019-03-18 23:48:33

阅读数 27

评论数 0

java核心基础--jdk源码分析学习--CopyOnWriteArrayList

java.util.concurrent.CopyOnWriteArrayList CopyOnWriteArrayList是线程安全的ArrayList, 使用ReentrantLock来保证add时的线程安全 public boolean add(E e) { final Re...

2019-03-06 09:51:13

阅读数 27

评论数 0

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