J2EE
文章平均质量分 62
心相印-Garrett
认真你就输了,一直认真你就赢了
展开
-
JVM-性能调优(2)
多数的Java应用不需要在服务器上进行GC优化,多数导致GC问题的Java应用,都不是因为我们参数设置错误,而是代码问题,在应用上线之前,先考虑将机器的JVM参数设置到最优(最适合)。原创 2016-11-04 14:43:16 · 389 阅读 · 0 评论 -
JVM-性能调优(1)
通常我们会发现CPU长期不足3%,系统吞吐量不够,针对8core×16G、64bit的Linux服务器来说,是严重的资源浪费。在CPU负载不足的同时,偶尔会有用户反映请求的时间过长,我们意识到必须对程序及JVM进行调优。原创 2016-11-04 14:25:26 · 305 阅读 · 0 评论 -
JVM-内存泄露及解决办法
系统崩溃前的一些现象每次垃圾回收的时间越来越长,由之前的10ms延长到50ms左右,FullGC的时间也有之前的0.5s延长到4、5s 。FullGC的次数越来越多,最频繁时隔不到1分钟就进行一次FullGC。年老代的内存越来越大并且每次FullGC后年老代没有内存被释放,之后系统会无法响应新的请求,逐渐到达OutOfMemoryError的临界值。原创 2016-11-04 14:00:39 · 2864 阅读 · 0 评论 -
Java并发编程实战笔记(6)- CyclicBarrier
CyclicBarrier一个同步辅助类,它允许一组线程相互等待,直到到达某个公共屏障点。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之后(但在释原创 2016-10-19 18:11:38 · 201 阅读 · 0 评论 -
Java并发编程实战笔记(5)- 线程协作
sleep()当线程调用这个方法时,会交出CPU时间,让其他线程去执行,但是这个方法并不会释放锁,运行下面的例子就可以了解这个原理:public class Test { private int i = 10; private Object object = new Object(); public static void main(原创 2016-10-19 18:08:17 · 211 阅读 · 0 评论 -
Java并发编程实战笔记(4)- 线程实现方式
通常我们比较清楚的也比较常见的线程实现方式都是一下两种:继承Thread类实现Runnable接口这两个都有一个缺点就是在执行完之后无法获取执行结果,如果非要获取执行结果,只有通过共享变量或者使用线程通信的方式,但是这样的话是比较麻烦的。jdk1.5之后,就提供了Callable和Future,通过他们可以在任务执行完成之后获取执行结果。Runnable和C原创 2016-10-19 18:03:21 · 308 阅读 · 0 评论 -
Java并发编程实战笔记(3)- 多线程并发编程模型
1、多线程多线程的优点资源利用率更好,例如在IO阻塞的时候,CPU可以去干一些其他的事情。程序设计更简单程序响应更快多线程的代价往往使设计更复杂,多线程之间的交互往往比较复杂,错误难以发现上下文切换的开销,线程与线程之间的切换往往需要代价,这个代价也不得不考虑势必增加资源消耗,线程之间的切换不仅要消耗CPU,而且还需要内存存储堆栈信息原创 2016-10-19 17:12:31 · 408 阅读 · 0 评论 -
Java并发编程实战笔记(2)- ConcurrentHashMap
1、HashMap、HashTable、ConcurrentHashMapHashMap是线程不安全的,并发条件下不能使用HashMap。HashTable是线程安全的,但是效率低下。HashTable使用synchronized来保证线程安全,一个线程在做put操作时,另外一个线程既不能put也不能get,因此竞争越激烈,效率越低。因此,多线程环境下推荐使用ConcurrentH原创 2016-10-19 17:10:28 · 418 阅读 · 0 评论 -
Java并发编程实战笔记(1)- 线程安全
1、什么是线程安全?线程安全是指多个线程同时访问同一个类时,如果不需要额外的同步,这个类的行为仍然是正确的。原子操作是线程安全的,锁就是要把复合操作变成原子操作。比较常见的复合操作有:1)、读 - 写 - 改2)、检查再修改public class Instance() { private Instance in = null; public原创 2016-10-19 17:07:22 · 397 阅读 · 0 评论 -
死锁以及避免死锁
死锁以及死锁避免策略原创 2016-10-19 17:03:52 · 617 阅读 · 0 评论 -
kafka编程基础—入门介绍(一)
关键能力我们认为,一个流处理平台具有三个关键能力:发布和订阅消息(流),在这方面,它类似于一个消息队列或企业消息系统;以容错(故障转移)的方式存储消息(流);在消息流发生时处理它们。有何优势构建实时的流数据管道,可靠地获取系统和应用程序之间的数据。构建实时流的应用程序,对数据流进行转换或反应。核心概念要了解kafka是如何做这些事情的,可以从下到上深入探讨kafka的能力...原创 2019-12-30 18:16:37 · 602 阅读 · 1 评论 -
kafka编程基础—消息中间件
消息中间件Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,比较狭义的理解,然而目前像kafka这样的消息中间件已经可以做更多的事情了。举例说明举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生...原创 2019-12-30 15:28:32 · 304 阅读 · 0 评论 -
tomcat配置https
tomcat配置启用SSL过程,主要包括:生成证书、导出证书文件、证书导入jdk、tomcat配置。原创 2016-10-24 15:25:13 · 1127 阅读 · 0 评论 -
MySQL- sql优化
本文主要总结了开发过程中遇到的sql优化问题,敬请参考。原创 2016-10-28 10:58:04 · 226 阅读 · 0 评论 -
MySQL-静态SQL 和动态SQL
所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的。原创 2016-10-28 10:37:42 · 2373 阅读 · 0 评论 -
MySQL-SQL绑定变量
绑定变量是为了减少解析的,只用生成一次执行计划,提高sql的执行效率。原创 2016-10-28 10:29:05 · 6198 阅读 · 3 评论 -
MySQL-临时表
当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询。原创 2016-10-28 10:19:20 · 757 阅读 · 0 评论 -
spring+mybatis事务配置
申明式事务配置步骤1、xml文件头部需要添加spring的相关支持:<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org原创 2016-10-19 17:01:32 · 21955 阅读 · 4 评论 -
@Autowired与@Resource的区别
@Autowired与@Resource都可以用来装配bean. 本文主要是讨论他们的区别。原创 2016-10-30 23:14:36 · 251 阅读 · 0 评论 -
Java web开发中的乱码问题
Java web开发中的乱码问题总结。一般的乱码问题包括:1)jsp页面中,中文显示乱码; 2)get请求中文参数传输到服务端乱码了; 3)post请求中文参数传输到服务端乱码了。原创 2016-10-24 17:25:34 · 404 阅读 · 0 评论