
java
文章平均质量分 91
nanchengyu
这个作者很懒,什么都没留下…
展开
-
Java跨线程传递数据
Java跨线程传递数据应用场景解决思路代码分析JVM中工具阿里开源应用场景 对于单服务来说,比如一个普通的商城的服务,有一个接口返回商品的信息,针对不同的国家/地区可能有不同的搜索结果,需要根据入参识别所属国家,并将这个国家信息传递到下游接口使用,我们首先会想到用Java中提供的threadlocal类来存储线程私有的变量,在入口处识别国家信息放入threadlocal,在后续的使用中直接从threadlocal中获取即可。(本质上是通过线程持有的threadlocalMap原创 2021-05-23 16:10:45 · 1091 阅读 · 2 评论 -
提高编程水平的秘籍
提高编程水平的秘籍总览练习阶段(3-8周的认真coding)对初学者来说,学习知识最重要的是关注细节残酷的秘密何时进入下一阶段拐点(2-4周,保持好心态)在剩余的生命中,不断超越极限。web开发的两个拐点拐点后的结果拐点中学到的技能如何快速有效的通过拐点?怎么知道啥时候度过了拐点?原文总览 在编程学习曲线中,存在一个拐点,在拐点之后,你会发现一切都与之前不同,比起向其他人借力,自我驱动是更为有效的,通往拐点的学习曲线十分陡峭,但是一旦成功通过,会大大增强你的翻译 2021-01-23 18:29:41 · 225 阅读 · 0 评论 -
Mockito&PowerMockito的原理与使用
Mockito&PowerMockito的原理与使用单元测试简介Java web项目单元测试JUnitSpring-TestMockito简单对象Mock对于复杂对象Mock(对象内部存在对其他bean的依赖)PowerMockitomock静态方法单元测试的编写提示Mock原理mockito的原理PowerMockito原理总结参考文献单元测试简介 写单元测试应该是每个初级程序员都很厌烦还不能跳过的一个大坑,理想的状态下,项目的单元测试应该至少覆盖原创 2021-01-10 16:52:26 · 3508 阅读 · 0 评论 -
优雅的在Java程序中打印日志
优雅的在Java程序中打印日志问题来源第一部分:常用的日志框架Log4j & Log4j 2Logback第二部分:SLF4J第三部分:日志滚动及其原理日志滚动配置日志滚动原理问题来源问题来源:来源于一次agent机器的磁盘空间报警,追查的过程中发现是日志的锅(业务使用的过程中不规范,我们本身没有兜底的日志策略,错误日志打印的太多,撑死了磁盘)兜底策略——限制日志大小上限,采用滚动写日志的方法解决这个问题第一部分:常用的日志框架Log4j & Log4j 2这两个项目都是apac原创 2020-09-07 22:59:56 · 1055 阅读 · 0 评论 -
Java 线程状态blocked 和 waiting 的区别
Java 线程状态blocked 和 waiting 的区别BLOCKED状态WAINTING状态TIME_WAINTING状态BLOCKED状态线程处于BLOCKED状态的场景。当前线程在等待一个monitor lock,比如等待执行synchronized代码块或者使用synchronized标记的方法。在synchronized块中循环调用Object类型的wait方法下面展示一些...原创 2020-03-16 11:47:18 · 1143 阅读 · 0 评论 -
IDEA生成Java doc
在tools中选择 generate Javadoc,然后如下配置,即可生成 UTF-8 -charset UTF-8 -windowtitle "test"原创 2020-03-16 11:36:47 · 107 阅读 · 0 评论 -
Java 动态代理详解
在Java中,可以采用如下的方式进行动态代理 先定义一个接口A 再定义一个它的实现 继续定义一个代理类,主要注意其实现InvocationHandler 在main中可以这样进行实现: 执行结果如下:所以问题来了:为什么可以将这个这个ProxyA的实例给绑定a进行强制转换呢?它究竟是个啥? 其实是动态生成了一个...原创 2019-10-08 09:58:18 · 166 阅读 · 0 评论 -
Java try/catch的实现原理与性能
首先,try/catch怎么写呢?如下图所示: 那么try catch到底在JVM底层是如何实现的呢? 首先明确一个概念,在Java中如果不发生异常的话,try/catch其实不会造成任何性能损失。这是如何做到的呢首先,在Java文件编译成为字节码之后,其实正常流程与异常处理部分是分开来的,如下图所示: ...原创 2019-05-06 13:56:40 · 5261 阅读 · 0 评论 -
JVM 编译
Java宣称自己是write once, run everywhere.那这是如何做到的呢?大部分人都会回答说是通过编译成为class文件然后运行JVM上,那么是所有的情况下都这样吗?自然有例外,其实总的来说,编译在JVM代表三个不同的操作。前端编译,指的是.java文件变为.class的过程 JIT编译,指的是将热点字节码编译为机器码的过程(方法级) AOT编译,指的是直接将Java...原创 2019-05-06 13:52:33 · 364 阅读 · 0 评论 -
Java 协程
协程是啥? 我们都知道,线程是CPU调度的基本单位,但是到底设置多少个线程是很难决定的,并且如果一个线程陷入了IO等待的话,会降低整个系统的吞吐量。在Java中,每个线程对应JVM以及操作系统的一个轻量级线程。因为stack的容量是有限的,所以不可能一直生成很多个线程。 协程的本质上其实还是和上面的方法一样,只不过他的核心点在于调度那块由他来负责解决,遇到阻塞操作,...原创 2019-04-29 17:15:33 · 1376 阅读 · 0 评论 -
[中间件][ES]es的简单思考
原创 2019-01-29 16:24:11 · 2453 阅读 · 0 评论 -
[Java][并发]ThreadLocal分析
原创 2019-01-20 19:40:48 · 124 阅读 · 0 评论 -
MQ的简单思考
原创 2019-01-13 20:57:18 · 160 阅读 · 0 评论 -
SSH框架搭建与理解
SSH框架的搭建与理解第一次接触SSH框架是在大三下学期的WEB程序课程设计,当时小组被分配进行学院科研管理系统的开发,组长技术宅带领我们一群小菜鸟搭建了SSH框架,当时觉得很高大上,十分精妙,作为副组长那时候对于SSH框架了解也只是皮毛,这学期考完试,决定自己尝试搭建一个SSH小项目,加深对于框架的理解。首先,先介绍以下SSH分别是什么:Struts2:该框架用于处理业务逻辑,也就是原创 2017-01-09 17:37:32 · 490 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一转载 2016-10-01 21:22:47 · 217 阅读 · 0 评论 -
java设计模式笔记
创建型模式:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型模式:适配器模式、装饰器模式、代理模式、外观模式、 桥接模式、组合模式、享元模式 行为型模式:策略模式、模版方法模式、观察者模式、迭代子模式、责任链模式、 命令模式、备忘录模式、状态模式、访问者模式、中介者模式、转载 2016-10-14 10:37:11 · 216 阅读 · 0 评论