- 博客(14)
- 资源 (7)
- 收藏
- 关注
原创 阿里开源工具 TProfiler --在海量业务代码中精确定位性能代码
如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍),并准确定位系统瓶颈:我们应用里静态对象不是太多、有大量的业务线程在频繁创建一些生命周期很长的临时对象,代码里有问题。那么问题来了,如何在海量业务代码里边准确定位这些性能代码?本文将介绍如何使用阿里开源工具 TProfiler 来定位这些性能代码,成功解决掉了 GC 过于频繁的性能瓶颈,并最终...
2019-01-03 19:47:03 454
转载 hessian原理
一.Hessian原理与协议简析: http的协议约定了数据传输的方式,hessian也无法改变太多: 1) hessian中client与server的交互,基于http-post方式。 2) hessian将辅助信息,封装在http header中,比如“授权token”等,我们可以基于http-header来封装关于“安全校验”“meta数据”等。hessian...
2019-01-24 20:02:46 912
原创 初始化springContext(上下文对象)
<listener> <listener-class>com.common.util.SpringContext</listener-class> </listener> import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextList...
2019-01-24 16:57:17 852
原创 jvm与调优内容综合
下面的文章较为全面介绍了jvm和jvm/gc调优部分,个人认为比较全面,特此总结到一起方便以后复习及配合开发jvm系列(一):java类的加载机制https://blog.csdn.net/ityouknow/article/details/77989551jvm系列(二):JVM内存结构https://blog.csdn.net/ityouknow/article/details...
2019-01-24 00:42:08 120
原创 存储过程+游标取一行案例
create PROCEDURE phoneDeal()BEGIN DECLARE name1 varchar(32); -- 密码 DECLARE pwd1 varchar(64); -- id -- DECLARE id int(11); -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; DECL...
2019-01-23 19:31:53 292
原创 HTTP、TCP、UDP,Socket,HTTPS等
HTTP、TCP、UDP,Socket,HTTPS理解:https://blog.csdn.net/whb20081815/article/details/67640804 TCP是底层通讯协议,定义的是数据传输和连接方式的规范 HTTP是应用层协议,定义的是传输数据的内容的规范 HTTP协议中的数据是利用TCP协议传输的,所以支持HTTP也就一定支持TC...
2019-01-21 01:08:25 183
转载 HTTP各版本1.0/1.1/2.0区别
HTTP1.0 HTTP 1.1主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。节约带宽HTTP 1...
2019-01-21 00:49:17 654
原创 tcp长连接和短连接及三次握手四次挥手
当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的 示意图: 第一次握手:主机A发送位码为...
2019-01-21 00:43:26 563
原创 并发环境下的 查询-修改-持久化 解决方案
问题背景: 用户购物,扣费流程 多线程扣费操作部分(针对具体某一个客户) 1)先获取用户的余额 2)拿该用户扣除费用后的余额更新用户余额表。 3)更新扣费成功标志。 4)扣费完成。 同一个客户不同订单并发处理时,两个线程可能同时获取到的余额都是10000,而更新余额时后面的更新操作会覆盖前面的更新操作,即实际只扣除后一笔记录的费用,而前一笔记录的扣费标...
2019-01-15 20:18:42 372
转载 项目中使用new ClassPathXmlApplicationContext()获得spring上下文对象的问题
问题背景:在我们的web程序中,用spring来管理各个实例(bean), 有时在程序中为了使用已被实例化的bean, 通常会用到这样的代码:ApplicationContext appContext = new ClassPathXmlApplicationContext("classpath:META-INF/spring/applicationContext-com...
2019-01-15 17:55:12 1626
转载 mysql for update 使用说明
原文:https://blog.csdn.net/u013803262/article/details/75195981 笔者在阅读技术书籍的时候无意间发现 一条select语句后面跟了for update,一时间就来了兴趣。 几番搜索之后,明白这是一个上锁用的。 上的是一个排它锁,也就是说,其他的事务是可以读取的。但是不能写入或者更新。 我们举一个项目中常见的应用场景吧。 比如有一张...
2019-01-15 17:50:14 278
原创 java用户态和内核态
在<深入理解java虚拟机>这本书上多次看到用户态和内核态两个名词, 虽然大概能明白意思. 但对于两者具体的定义和区别还是比较, 特此查阅之后记录.内核态(Kernel Mode)与用户态(User Mode)内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序用户态: 只能受限的访问内存, 且不允许访问外...
2019-01-06 00:41:40 3006 1
原创 《深入理解Java虚拟机》--阅读笔记
相关文字笔记心得https://www.cnblogs.com/wtzbk/p/7985156.html内存布局及GC导图思维导图V1.0下载地址:《深入理解java虚拟机》思维导图思维导图V1.1下载地址(右键另存为):《深入理解java虚拟机》思维导图细分导图本篇文章是对周志明的《深入理解Java虚拟机》的读书笔记,思维导图使用Mindjet MindMan...
2019-01-06 00:35:49 143
原创 Eclipse编译器(ecj)与javac编译器
两者区别 Eclipse已经实现了自己的编译器,命名为 Eclipse编译器for Java (ECJ)。它不同于javac,Sun JDK附带的编译器。一个显着的区别是,Eclipse编译器允许您运行实际上没有正确编译的代码。如果错误的代码块从未运行,您的程序将运行良好。另一个不同之处在于Eclipse编译器允许在Eclipse中进行增量构建IDE,也就是所有的代码一旦你完成输入就编...
2019-01-01 01:33:31 2431
jsoup爬虫案例
2017-09-18
java开发文档1
2017-09-05
java开发文档3
2017-09-05
开发文档2啊 java的
2017-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人