
java
文章平均质量分 76
李孟聊人工智能
独立开发,Substack和Medium顶级编辑
展开
-
Spring 新版本修复远程命令执行漏洞(CVE-2022-22965),墨菲安全开源工具可应急排查
漏洞简述 3月31日,spring 官方通报了 Spring 相关框架存在远程代码执行漏洞,并在 5.3.18 和 5.2.20.RELEASE 中修复了该漏洞。 漏洞评级:严重 影响组件:org.springframework:spring-beans 影响版本:< 5.3.18 和 < 5.2.20.RELEASE 的Spring框架均存在该漏洞,建议用户尽快进行排查处置。 缺陷分析 CVE-2010-1622中曾出现由于参数自动绑定...转载 2022-04-01 13:00:11 · 1110 阅读 · 0 评论 -
Java性能概述
文章目录一.简介二.介入前提条件三.体现系统性能四.响应时间五.吞吐量六.计算机资源分配使用率七.负载承受能力八.性能测试攻略8.1 简介8.2 微基准性能测试九.分析十.兜底策略一.简介一款线上产品如果没有经过性能测试,那它就好比是一颗定时炸弹,你不知道它什么时候会出现问题,你也不清楚它能承受的极限在哪儿。有些性能问题是时间累积慢慢产生的,到了一定时间自然就爆炸了;而更多的性能问题是由访问量的波动导致的,例如,活动或者公司产品用户量上升;当然也有可能是一款产品上线后就半死不活,一直没有大访问量,所以原创 2021-05-30 21:38:16 · 1691 阅读 · 0 评论 -
Java内存模型(解决可见性和有序性问题)
文章目录一.简介二.内存模型三.Happens-Before 规则3.1 规则3.2 final一.简介JMM是一个规范,感兴趣可以查看JSR113标准,描述了JVM平台上多线程程序的语义,具体包括一个线程对共享变量的写入何时能被其他线程“看到”。二.内存模型当指令在CPU上运行的时候,会先将运算需要的数据从内存中复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。(现代CPU其实是有多级缓存的,但原创 2020-10-24 18:04:00 · 2363 阅读 · 3 评论 -
IDEA 插件开发实战
一. 简介IntelliJ IDEA是一款开发工具,提供很多插件功能,比如阿里规范插件(Alibaba Java Coding Guidelines),但是随着日常业务展开,很多工作重复性编码,浪费很多时间,需要自定义抽象出来一些插件,自动化的方式解决问题,这也是工程师文化的体现。二.原理2.1 背景IntelliJ平台是开源的,基于Apache许可协议,提供很多丰富的工具,提供组件驱动,基于跨平台JVM,可以在创建菜单栏、列表、弹出菜单、对话框等等。可以适用于多种语言,提供相关解析器和PSI模型,原创 2020-10-17 11:35:14 · 7874 阅读 · 8 评论 -
并发编程Bug源头
一.简介编写正确的并发程序是一件困难的事情,往往调试过程中发生很多不确定的事情,这时需要对理论知识的一个认知,能够准确的追踪问题。二.硬件背景CPU,内存,I/O设备不断迭代,这三者速度存在差异,CPU和内存的速度差异可以形象的描述:CPU速度最快,内存次之,I/O设备更次之。为了合理利用CPU的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序都做出了贡献,主要体现为:CPU增加缓存,以均衡与内存速度差异;操作系统增加了进程、线程,以分时复用CPU,进而均衡CPU与I/O设备的原创 2020-10-12 03:40:36 · 1249 阅读 · 5 评论 -
GitChat-消费架构实战
当今应用多是类微服务架构,每个服务解耦,只处理一种逻辑,服务之间的调用为了实现异步和解耦,通过提交事件后再由服务分发消费的形式完成。这使得事件的分发消费算法需要处理大量不同种类的事件,这些事件在紧急程度、预计执行时间、是否可放弃等方面具有不同的要求,而且事件抵达的高峰与低谷之间的差距非常大,处于难以预测的状态,基于类似情况,业界有些通用的消费架构,在此文中分析下。简介发展事件模型原理实现-事件服务模型实现-分组消费架构订阅:GitChat...原创 2020-09-25 13:33:57 · 487 阅读 · 0 评论 -
位运算的优化与应用
一.简介随着JDK的发展以及JIT的不断优化,语法糖越来越丰富了,程序用了太多了看似高级的用法,易读性提高很多,那么效率呢?很多时候计算可以转换位运算,提高性能和节约空间,很多组件都用到了,比如HashMap、BitSet、ProtocolBuf等等,本文验证一些位运算的用法。二.基础2.1 位运算符Java整型数据类型有:byte、char、short、int、long。一个字节占8位。...原创 2020-04-14 20:01:48 · 1370 阅读 · 0 评论 -
业务实战中用到树结构
一.简介最近业务中个场景,行业分级,用到原创 2020-03-20 20:19:14 · 688 阅读 · 0 评论 -
rpc系列-动态代理
一.简介在不修改原业务的基础上,基于原业务方法,进行重新的扩展,实现新的业务。 二.结构 参考《疯狂Java讲义》 三.示例public class MyPerson implements PersonInterface { @Override public void doSomeThing() { System.ou...原创 2018-09-28 15:54:07 · 1664 阅读 · 0 评论 -
rpc系列-反射
一.简介:Java程序中引用变量的类型,分为编译类型和运行类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。编译时根本无法预知该对象和类可能属于那些类,程序只依靠运行时信息来发现该对象和类的真实信息,这就用到反射。 二.示例public interface TestInterface {}public class Person imp...原创 2018-09-28 15:27:05 · 1560 阅读 · 0 评论 -
rpc系列-线程
一.多线程基础1.进程 它是内存中的一段独立的空间,可以负责当前应用程序的运行,当前这个进程负责调度当前程序中的所有运行细节,不同进程彼此之间不会相互影响。 2.线程在一个进程中,每个独立的功能都需要独立的去运行,这时又需要把当前这个进程划分成多个运行区域,每个独立的小区域(小单元)称为一个线程。 进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。一个进...原创 2018-09-28 14:50:52 · 2173 阅读 · 0 评论 -
javaee中数据库异常
java.sql.SQLException: ORA-00928: 缺失 SELECT 关键字at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping. at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError. at oracle...原创 2016-10-03 00:53:59 · 1244 阅读 · 0 评论 -
javase中bug
java.lang.ArrayIndexOutOfBoundsException:非法索引访问异常 java.lang.IncompatibleClassChangeError.从字面上理解应该是不兼容的类改变引起的错误解决方案:可能是jar包引起,可能是类名定义有误...原创 2016-10-03 00:52:45 · 687 阅读 · 0 评论 -
java相关问题梳理02
承接java相关问题梳理01 内容网址:http://blog.youkuaiyun.com/qq_19968255/article/details/52725505原创 2016-10-02 22:23:43 · 599 阅读 · 0 评论 -
java相关问题梳理02
承接java相关问题梳理01 网址: http://blog.sina.com.cn/s/blog_a7a5bfd90102whkt.html 9.基于struts2 防止表单重复提交方案一:使用struts2中的token拦截器或者tokenSession 第一步:在表单中加入<s:token />(当然啦!要首先导入struts2的标签库 &...原创 2016-10-02 22:40:13 · 1044 阅读 · 0 评论