java
文章平均质量分 60
tpts
这个作者很懒,什么都没留下…
展开
-
MyBatis自动生成注释配置
Mybatis自动生成代码异常解决原创 2022-06-20 17:16:27 · 1020 阅读 · 1 评论 -
基础概念总结
1.用户态与内核态用户态和内核态:运行在用户态下的程序不能直接访问操作系统内核数据结构和程序,需要通过系统调用完成自己所需要的功能,这个时候就需要切换到内核态,有三种方式可以从用户态切换到内核态:系统调用 执行用户态程序时发生事先不可知的异常 外围设备的中断其中前两种可以认为是主动的,后两种是被动的。2.epoll和select的区别epoll和select都是实现IO多路复用的一种方式,不同之处在于,select只知道有IO事件发生了,但不知道是哪一个流,需要一个一个去轮询,epol原创 2022-02-14 14:49:39 · 512 阅读 · 0 评论 -
阿里arthas分享
arthas是阿里开源的Java诊断工具,可以对运行时的java进程进行分析,动态代理运行时的Java进程。artahs支持JDK6+,同时提供丰富的tab自动补全功能,进一步方便进行问题的定位和诊断。这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现! 是否有一原创 2020-12-04 08:43:34 · 349 阅读 · 0 评论 -
es分片内部原理
新增文档被索引倒排索引被写入磁盘后是不可改变的:它永远不会修改。不变性有重要的价值:不需要锁。如果你从来不更新索引,你就不需要担心多进程同时修改数据的问题。 一旦索引被读入内核的文件系统缓存,便会留在哪里,由于其不变性。只要文件系统缓存中还有足够的空间,那么大部分读请求会直接请求内存,而不会命中磁盘。这提供了很大的性能提升。 其它缓存(像filter缓存),在索引的生命周期内始终有效。它们不需要在每次数据改变时被重建,因为数据不会变化。 写入单个大的倒排索引允许数据被压缩,减少磁盘 I/...原创 2020-12-04 08:41:36 · 2122 阅读 · 0 评论 -
静态变量通过@Value获取配置文件的值
和普通的变量不一样,static修饰的静态变量直接用@Value注解是获取不到对应的配置文件中的值的,需要通过set函数来设置,且set函数无需用static修饰,先记录一下,原理暂时未知,猜想有可能是和static变量加载的顺序有关系。@Value("${rocketmq.env.default.tag}")public void setDefaultEnvTag(String defau...原创 2020-04-02 13:51:52 · 3882 阅读 · 0 评论 -
monitor(同步)
在阅读Java并发相关源码的时候,有很多地方都提到了monitor对象,比如在Object对象的notify()方法的注释中,就提到该方法是用于唤醒在等待当前对象monitor对象的线程,如果有多个等待线程,会选一个线程唤醒。但是一直没搞明白monitor对象是基于什么机制实现的。查资料的时候看到了维基百科的解释,是比较完整的,特此翻译记录。 本文翻译自维基百科,原文...翻译 2020-03-15 20:36:36 · 611 阅读 · 1 评论 -
SpringApplication类之run方法
StopWatch stopWatch = new StopWatch();stopWatch.start();ConfigurableApplicationContext context = null; Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList<>(); ...原创 2020-02-19 21:55:21 · 309 阅读 · 0 评论 -
Spring Boot启动代码分析
Spring Boot是工作中最常用的一个框架,可以通过一个简单的main函数作为入口,一直想研究下这个main函数背后都做了什么,趁着今天有时间,跟一下代码。...原创 2020-02-20 08:44:00 · 150 阅读 · 0 评论 -
feign原理探索
feign是一种http客户端,可以让你通过简单地注解的方式,调用其他的http服务。feign提供的注解是@FeignClient,一直很好奇feign是怎么生效的,今天跟着代码一块看一下。 要想使用feign的话,首先要在项目中打上@EnableFeignClients注解,从代码中可以看到,@EnableFeignClients通过@Import注解引入了Fei...原创 2020-02-17 15:20:16 · 177 阅读 · 0 评论 -
Java instrument
在Java se5中,提供了instrument功能,可以由此实现一个Java_agent,通过此agent来修改类的字节码,即改变一个类。 在Java SE6的新特性里边,可以通过Attach api来向目标JVM附着(Attach)代理工具程序,基于它,可以很方便的监控一个jvm,运行一个外加的代理程序。 ...原创 2019-02-15 14:54:38 · 255 阅读 · 0 评论 -
单元测试相关的框架
http://developer.51cto.com/art/201804/569997.htm单元测试,集成测试xunitspock https://blog.csdn.net/u012129558/article/details/78677357REST Assured https://www.jianshu.com/p/47e5af367db1mockito...原创 2018-08-27 00:21:36 · 98 阅读 · 0 评论 -
rxjava调研
rxjava适合异步的场景,可以很方便的处理数据流。不过在后端,大多数都是同步的代码,如果有异步的可以尝试使用rxJava来解决问题。原创 2018-08-26 23:12:57 · 143 阅读 · 0 评论 -
java异常
1、在Java中,如果调用e.getMessage()打印因此异常信息,则打印出的是异常的内容,如果调用e.printStackTrace()打印异常信息,则打印出的是异常的堆栈信息,包括异常的名字、信息以及出现异常的调用语句。原创 2015-10-20 07:58:36 · 150 阅读 · 0 评论