- 博客(21)
- 收藏
- 关注
原创 【HotSpot 虚拟机对象探秘】
介绍完Java 虚拟机的运行时数据区域之后,我们大致明白了Java 虚拟机内存模型的概况,但是我们会有一个疑问,他们是如何创建,如何布局,如何 访问的呢?下面我们来深入探讨一下HotSpot 虚拟机在Java堆中对象分配,布局和访问的全过程。Java是一门面向对象的编程语言,在Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程
2022-06-12 11:08:55 128
原创 设计模式
23设计模式(大话西游)文章目录23设计模式(大话西游)前言一、工厂模式1.简单工厂模式实例2.工厂方法模式实例前言初次看到设计模式,似乎于我没有太大的关系,在平时工作开发中我很少用到,并且即使用到也浑然不知。但是最近初次接触到spring源码,看到源码是我苦不堪言,故学习一下设计模式,希望对自己有所帮助。一、工厂模式 工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式,在工厂模式中我们在创建对象时不会对客户端暴露创建逻辑,并且是通过
2021-01-25 16:41:23 83
原创 IOExcetion Bug
记录bug的一天在生产环境日志报错,但是不影响功能:这里报错的可能的原因是客户端异常关闭导致的,与代码无关解决办法:@ExceptionHandler(IOException.class)@ResponseStatus(HttpStatus.SERVICE_UNAVAILABLE) //(1)public Object exceptionHandler(IOException e...
2020-01-16 10:14:17 158
原创 浅谈CAS自旋原理
一.CAS 介绍CAS是Java并发包工具类底层使用的算法(在Unsafe类的提供的方法),他有效的避免了并发,像AtomicInteger、Semaphore、ReentrantLock底层都采用了CAS算法CAS 即compare and swap(比较与交换),它涉及到三个操作数:内存值、预期值(未更新前的工作内存值)、新值。当且仅当预期值和内存值相等时才将内存值修改为新值 。举例...
2019-12-17 11:33:42 1237
原创 线程的启动和结束
一.线程的状态 生命周期:创建 ->就绪->运行(阻塞)->终止 状态标识:NEW ,RUNNABLE ,RUNNING ,(BLOCKED,TIMED WAITING,WATING) ,TERMINATED WATING :调用wait,join,notyfy BLOCKED:synchroinzed ,lock TIMED WAITING :sleep(100),T...
2019-12-16 00:21:08 391
原创 springBoot 定时任务
1.定时任务的几种实现方式:1、Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。2、ScheduledExecutorService:也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,...
2019-12-14 15:30:34 90
原创 java浅拷贝 和 深拷贝
1.浅拷贝对于基本数据类型的成员对象,因为基础数据类型是值传递的,所以是直接将属性值赋值给新的对象。基础数据类型的拷贝,其中一个对象修改该值,不会影响另外一个。对于引用类型,比如数组或者类对象,因为引用类型是引用传递,所以浅拷贝只是把内存地址赋值给了成员变量,它们指向了同一内存空间。改变其中一个,会对另外一个也产生影响。 2.深拷贝对于基本数据类型的成员对象,因为基础数据类型是值传...
2019-12-14 12:52:39 243
原创 redis RedisAtomicLong生成自增主键
1.自增id 生成类RedisSequenceFactory 是一个简单封装类,用于使用redisTemplate生成自增ID值。//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.jiu.common.redi...
2019-12-10 15:05:01 2115
原创 token 验证注解拦截
springcloud 项目中,网关层客户端调用api时经常需要验证token的有效性且需要返回值,按照需求需要加上一个拦截器,选用spring aop.直接上代码 定义注解类 package com.jp.user.aop;import java.lang.annotation.*;/** * @Author: hj * @Description: * @Date:...
2019-12-10 14:56:18 203
原创 初识动态代理-Java小白进阶之路
认识动态代理是在一次面试过程中,面试官问到了spring AOP 的实现原理,我回答了动态代理,动态代理分为JDK动态代理和cglib动态代理,当面试官问我他们有什么区别,我回答了JDK通过对其接口的增强,而cglib通过对子类的增强,回答的比较模糊,而面试官接下来问的问题,他俩的底层是怎么实现的,我被问的哑口无言。1动态代理动态代理是一种常用的设计模式,其目的是为其他对象提供一个代理,来控制...
2019-12-09 21:54:12 117
原创 git 报错NullReferenceException
使用git push 操作报错:Push failedFailed with error: NullReferenceException encountered.NullReferenceException encountered.remote error: License limit exceeded输入如下命令解决问题:git config --global credential....
2019-12-09 11:44:28 554
原创 浅谈zookepper与eureka的区别
首先说点题外话db我们知道要遵循ACID原则:原子性,一致性,隔离性,持久性nosql 要遵循CAP原则:一致性,可用性,分区容错性。著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。服务注册当向注册中心...
2019-11-14 23:42:11 152
原创 JDK 1.8 HashMap 底层原理实现
#1.hashMap 的特定属性 //默认初始容量为16,0000 0001 右移4位 0001 0000为16,主干数组的初始容量为16,而且这个数组 //必须是2的倍数(后面说为什么是2的倍数) static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量为int的最大值除2 ...
2019-11-01 10:49:04 95
原创 代码小试
在实际的开发过程中,我们使用jpa ,实长会有关联查询表的需求,比如通过部门id 关联查询部门表获取部门name,jpa关联查询会比较麻烦,这里可以通过java代码去组装我们想要的数据.实现的方式有两种: 第一种方式可以将变动不大的部门存储到redis中,我们可以通过部门id直接查询缓存,这样不会很大的影响查询效率. 第二种方式可以将我要关联的部门表中的数据放到map 中 key 为部门i...
2019-09-03 09:54:21 114
转载 java 设计模式之策略模式
1.定义 :其思想是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。举列子:我们就以Java中的TreeSet为例,TreeSet仅仅知道它只是接收一个Comparator这种接口类型,但是具体是哪种实现类,TreeSet并不关心,实现类在真正的传入TreeSet之前,Tre...
2019-08-21 11:36:58 95
转载 springSecurity
第一次写博客,由于公司用到了springSecurity 用户认证框架,简单的学习了一下运行过程.流程图 当用户第一次请求时会经过一个过滤器链 第一次登录请求 被SecurityContextPersistenceFilter拦截 调用securityContextRepository 中的 loadContext()方法获取SecurityContext Htt...
2019-06-02 16:53:01 112
原创 操作日志spring aop
注解接口package com.bw.admin.common.annotation;import com.bw.admin.common.enums.LogsEnums;import java.lang.annotation.*;@Target({ElementType.PARAMETER, ElementType.METHOD})@Retention(RetentionPolicy....
2019-05-31 17:17:52 123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人