Java
文章平均质量分 80
姜秀丽
人一生中大部分时间都在工作,如果你的工作恰巧又是自己喜欢的,那么你的大部分时间就都在做喜欢的事情,何其乐哉!
展开
-
一图说明静态代理与动态代理
原创 2020-07-08 17:35:02 · 236 阅读 · 0 评论 -
排查maven中可以从远程下载下来jar包,但是却报错Failure to find was cached in the local repository, resolution will not
一、问题maven打包的过程中报错如下:Failure to find cfca:backport-util-concurrent:pom:3.1 in http://maven.company.com/repository/maven-public was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates原创 2020-07-02 19:32:42 · 6027 阅读 · 0 评论 -
Java中的引用的使用场景
Java中的引用,一共分为以下四种。一、强引用默认的对象是强引用。对象还在被引用,就不会被回收。即使内存已经不够了,也不会被回收。二、软引用:SoftReference当内存吃紧的时候,才会被回收。可以用在缓存的场景,内存足够时进行缓存,内存都不够了,就不用缓存了。三、弱引用WeakReference不管内存是否不够用。GC的时候,就会被回收。ThreadLocal就是使用的弱引用来实现的。四、虚引用:PhantomReference必须与ReferenceQueue一起使用。当要原创 2020-06-23 11:02:47 · 225 阅读 · 0 评论 -
fastjson的漏洞解决—2020年5月28日
一、前言fastjson真是不让人省心,2020年5月28日又报了漏洞。fastjson的作用:将javabean序列化为json格式的字符串。将json格式的字符串,反序列化为javabean。二、fastjson使用过程添加maven依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <v原创 2020-06-08 14:35:42 · 12080 阅读 · 1 评论 -
Java中四种引用类型的概念及应用场景
前言reference类型的数据中存储的数值代表的是另外一块内存的起始地址,我们称这块内存代表着一个引用。引用分为以下四种,从强到弱为,强引用、软引用、弱引用、虚引用。除了我们常见的强引用外,引入这么多种引用类型的目的是,对一些非必需的对象引用的扩展,来解决一些特殊情况下问题。强引用类似Object obj = new Object( )这类的引用,只要强引用存在,垃圾收集器永远不会回收...原创 2020-04-08 16:50:22 · 1018 阅读 · 0 评论 -
ThreadLocal之实战与源码分析
重新认识ThreadLocal一、解决问题当我们想在多线程中访问对象中的共享变量的时候,我们可以想到的办法:volatilesynchronized试想,我们想要在多线程中,每个线程维护一个变量的自己的值,互不影响,该如何操作呢?这个时候,我们就可以使用上ThreadLocal了,我们可以把我们需要访问的对象中的变量定义为ThreadLocal的。二、测试代码Talk is c...原创 2019-11-22 17:02:39 · 149 阅读 · 0 评论 -
父类不是spring-boot-starter-parent的spring-boot项目打包,可能遇到的问题
遇到问题一、使用如下命令打包:mvn clean install -DskipTests=true二、生成target目录,目录中内容如下:三、运行以上的jar包:java -jar spirng-cloud-consumer-nacos-0.0.1-SNAPSHOT.jar四、报错:spirng-cloud-consumer-nacos-0.0.1-SNAPSHOT.jar中...原创 2019-11-28 14:55:25 · 997 阅读 · 0 评论 -
SpringBoot热部署(一):spring-boot-devtools
文章目录spring-boot-devtools第一步:添加包依赖第二步:开启自动编译第三步:开启运行时自动编译第四步:验证效果知识点spring-boot-devtoolsspring-boot-devtools可以使SpringBoot程序在类路径发生变化时,通过自动重启,重新加载类,来达到热部署的效果。接下来我们实践下如何在IDEA中使其自动生效。第一步:添加包依赖在你的pom文件中...原创 2019-08-01 18:37:47 · 835 阅读 · 0 评论 -
本地搭建start.spring.io
文章目录一、安装Jdk二、安装Maven三、下载代码四、编译代码五、运行代码六、IDEA中使用https://start.spring.io 此网址为IDEA中生成SpringBoot项目脚手架的默认地址,因为网络的原因,某些情况下无法正常访问。于是决定自己本地搭建一个这个项目,解决创立SpringBoot项目时的窘境。项目start.spring.io源码的Git地址:https://git...原创 2019-07-04 15:36:29 · 13583 阅读 · 32 评论 -
第4章,Java编发编程基础
线程是操作系统调度的最小单元,多线程能够同时执行。从启动一个线程到线程间不同的通信方式。在一个进程里可以创建多个线程,这些线程都拥有自己的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。Java程序天生就是多线程程序,因为执行main方法的是一个名称为main的线程。使用多线程的原因主要有以下几种1、更多的处理器核心:一个线程在一个时刻只能运行在同一个处理器核心上。2、更快的响...原创 2020-03-13 23:07:14 · 204 阅读 · 1 评论 -
第3章,Java内存模型之volatile与final和synchronize的内存语义
并发编程模型的两个关键问题:1、线程之间如何通信。2、线程之间如何同步。命令式编程中,线程之间的通信机制有两种:1、共享内存。2、消息传递。Java的并发采用的是JMM:Java内存模型,描述主内存与本地内存(线程持有的变量)之间的关系。常见的内存处理器模型比JMM要弱。JMM屏蔽了不同处理器内存模型的差异,他在不同的处理器平台之上为Java程序员呈现了一个一致的内存模型。JM...原创 2020-03-13 23:06:00 · 191 阅读 · 0 评论 -
第2章,Java并发进制的底层原理
深入理解Java并发之synchronized实现原理 - CSDN博客Java代码在编译后会变成Java字节码,字节码被类加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。Java中使用的并发机制依赖于JVM的实现与cpu的指令。可见性,原子性,有序性。volatile原理volatile是轻量级的syn...原创 2020-03-13 23:04:51 · 116 阅读 · 0 评论 -
第1章,并发编程的挑战,分析线上的线程运行情况
vmstat:中的cs字段,可以查看上下文切换的次数。vmstat 1:表示查询一秒内上下文切换多少次。jstack pid:其中pid为java进程id,或者说是tomcat的进程idjstack 2822 > 2717.dumpgrep java.lang.Thread.State 2717.dump | awk ‘{print $2$3$4$5}’ | sort | uniq ...原创 2020-03-13 23:01:43 · 112 阅读 · 0 评论 -
报错解决:but found 2 mbeanServerExporter,endpointMBeanExporter
报错Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.jmx.export.MBeanExporter] is defined: expected single matching bean but...原创 2020-03-05 12:18:55 · 587 阅读 · 0 评论 -
瞬间让你弄懂Lambda表达式
一、为什么会有Lambda表达式目前各种语言中都出现了函数编程的概念,这个留给大家去了解下。自从JDK1.8之后,Java中支持了Lambda表达式,给函数式编程了一个实现的机会。用了Lambda表达式后,你的代码会比你想象起来的简洁的多。二、实战Talk is cheap,Show me code!我们定义一个接口,里面只能有一个方法,是默认方法,在接口上我们添加注解@Functio...原创 2019-11-04 15:35:06 · 177 阅读 · 0 评论 -
Guava中包括哪些功能
Guava中文详细教程Guava是一种基于开源的Java库,其中包含谷歌正在由他们使用的很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合、缓存、支持原语、并发性、常见注解、字符串处理、I/O验证的实用方法。...原创 2019-09-18 14:10:02 · 1244 阅读 · 0 评论 -
JUnit—Java单元测试的基本概念与规范
JUnit是XUnit中的一种,XUnit包括PythonUnit、CPPUnit以及JUnit。XUnit是测试驱动开发的一套框架。 JUnit是Java单元测试,它的地址是junit官网,可以从官网了解与下载。测试方法必须使用@Test进行修饰。测试方法必须使用public void进行修饰,不能带任何的参数。新建一个源代码目录来存放我们的测试代码。测试类的包应该和被测试类保持一原创 2015-04-08 11:58:00 · 191 阅读 · 0 评论