- 博客(66)
- 资源 (6)
- 收藏
- 关注
原创 JAVA synchronized关键字解析
一、作用synchronized可以保证方法或者代码块在运行时,同一时刻只有一个线程可以进入到临界区,同时它还可以保证共享变量的内存可见性普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象同步代码块,锁是括号里面的对象二、实现原理2.1 实现方式Java中每一个对象都可以作为锁(todo),这是synchronized实现同步的基础。当...
2018-03-25 21:52:55 263 1
转载 Java 占用CPU使用率很高的分析
前几天在测试服务器上发现Java进程的CPU使用率暴高,为了分析解决该问题,把过程记录如下: 1. 先找到Java的进程号 Linux下: 用top命令查看所有进程,可以明显看到Java的,因为CPU占用率很高被排在前面。比如, clip_image002Windows下: 打开任务管理器,然后点击 “查看” 菜单,然后点击 “选择列”,把pid勾上,然后就可以在任务管理器里面看到所有进程
2016-08-15 19:53:19 5832
转载 分布式和集群的区别
简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 例如: 如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。 采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Red
2016-01-09 16:02:42 783
转载 生产环境下JAVA进程高CPU占用故障排查
转自:http://blog.chinaunix.net/uid-10449864-id-3463151.html问题描述:生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。问题分析:1,程序属于CPU密集型,和开发沟通过,排除此类情况。2,程序代码有问题,出现死循环,可能性极大。
2015-04-24 10:47:02 832
原创 linux下安装jdk
作为linux菜鸟(其实连菜鸟都算不上...)在上边安装mysql和jdk还是略蛋疼,搞了一天终于装好并且把项目部署上去了。在这里记录一下安装jdk一、下载jdk: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 64位系统则选择Linux
2015-04-02 16:32:47 4800
转载 在Ubuntu中安装MySQL
在Ubuntu中安装MySQLUbuntu实用工具系列文章,将介绍基于Linux ubuntu的各种工具软件的配置和使用。有些工具大家早已耳熟能详,有些工具经常用到但确依然陌生。我将记录我在使用操作系统时,安装及配置工具上面的一些方法,把使用心得记录下来也便于自己的以后查找和回忆。关于作者:张丹(Conan), 程序员Java,R,PHP,Javascriptwei
2015-04-01 17:02:50 653
转载 java继承和组合的优缺点
http://www.cnblogs.com/nuaalfm/archive/2010/04/23/1718453.html
2015-03-05 15:23:23 4460
转载 Maven提高篇系列之六——编写自己的Plugin(本系列完)
在本系列的上一篇文章中,我们讲到了如何处理依赖冲突,在本文中,我们将讲到如何编写自己的Plugin。 Maven就其本身来说只是提供一个执行环境,它并不知道需要在项目上完成什么操作,真正操作项目的是插件(plugin),比如编译Java有Compiler插件,打包有Jar插件等。所以要让Maven完成各种各样的任务,我们需要配置不同的插件,甚至自己编写插件。 你可能
2015-02-05 19:16:07 1126
转载 Maven提高篇系列之五——处理依赖冲突
在本系列的上一篇文章中,我们讲到了如何使用Profile,在本文中,我们将讲到如何处理Maven的依赖冲突。 不知道你在使用Maven时是否遇到过诸如"NoSuchMethodError"或"ClassNotFoundException"之类的问题,甚至发生这些问题的Java类你没都没有听说过。要搞清楚这里面的缘由,我们得学习Maven对依赖冲突的处理机制。 Mav
2015-02-05 19:11:10 1251
转载 Maven提高篇系列之四——使用Profile
在本系列的上一篇文章中,我们讲到了如何将项目部署到Repository中,在本文中,我们将讲到如何使用Profile。 在开发项目时,设想有以下场景:你的Maven项目存放在一个远程代码库中(比如github),该项目需要访问数据库,你有两台电脑,一台是Linux,一台是Mac OS X,你希望在两台电脑上都能做项目开发。但是,安装Linux的电脑上安装的是MySQ
2015-02-05 19:08:04 1452
转载 Maven提高篇系列之三——部署到自己创建的Repository(Nexus)
在本系列的上一篇文章中,我们讲到如何将Plugin配置到某个Phase中,在本文中,我们将讲到如何将项目部署到自己创建的Repository中。 平时我们自己做的项目都是直接使用Maven提供的Central Repository,但是对于公司来说直接使用公共的Maven Central Repository就不见得是件好事了,比如我们需要考虑安全问题。此时你可以创建一个公司专属的
2015-02-05 19:06:24 879
转载 Maven提高篇系列之二——配置Plugin到某个Phase(以Selenium集成测试为例)
在本系列的上一篇文章中,我们讲到了多模块和继承之间的区别,在本篇文章中,我们将讲到如何将Plugin配置到某个Phase中。 持续交付要“自动化所有东西”,对于集成测试也是一样。集成测试和单元测试相比需要更多的环境准备工作,包括测试数据的准备和启动服务器等。在本篇中我们设想以下一种场景: 你开发了一个web应用,集成测试使用了Selenium,你希望通过一个
2015-02-05 18:23:12 1190
转载 Maven提高篇系列之一——多模块 vs 继承
这是一个关于Maven的提高系列,其中包含以下文章: 多模块 vs 继承配置Plugin到某个Phase(以Selenium集成测试为例)部署到自己的Repository(Nexus)处理依赖冲突编写自己的Plugin 通常来说,在Maven的多模块工程中,都存在一个pom类型的工程作为根模块,该工程只
2015-02-05 18:18:39 1448
转载 Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
在本系列先前的文章中,我们主要讲解了JDBC对本地事务的处理,本篇文章将讲到一个分布式事务的例子。 请通过以下方式下载github源代码:git clone https://github.com/davenkin/jta-atomikos-hibernate-activemq.git 本地事务和分布式事务的区别在于:本地事务只用于处理单一数据源事务(比如单个数据
2015-02-03 11:21:02 6061
转载 Java事务处理全解析(七)—— 像Spring一样使用Transactional注解(Annotation)
在本系列的上一篇文章中,我们讲到了使用动态代理的方式完成事务处理,这种方式将service层的所有public方法都加入到事务中,这显然不是我们需要的,需要代理的只是那些需要操作数据库的方法。在本篇中,我们将讲到如何使用Java注解(Annotation)来标记需要事务处理的方法。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clo
2015-02-03 11:10:23 9458 3
转载 Java事务处理全解析(六)—— 使用动态代理(Dynamic Proxy)完成事务
在本系列的上一篇文章中,我们讲到了使用Template模式进行事务管理,这固然是一种很好的方法,但是不那么完美的地方在于我们依然需要在service层中编写和事务处理相关的代码,即我们需要在service层中声明一个TransactionTemplate。在本篇文章中,我们将使用Java提供的动态代理(Dynamic Proxy)功能来完成事务处理,你将看到无论是在service层还是DAO层
2015-02-03 11:05:20 9673 2
转载 Java事务处理全解析(五)—— Template模式
在本系列的上一篇文章中,我们讲到了使用TransactionManger和ConnectionHolder完成线程安全的事务管理,在本篇中,我们将在此基础上引入Template模式进行事务管理。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clone https://github.com/davenkin/java_transact
2015-02-03 10:55:55 6867
转载 Java事务处理全解析(四)—— 成功的案例(自己实现一个线程安全的TransactionManager)
在本系列的上一篇文章中我们讲到,要实现在同一个事务中使用相同的Connection对象,我们可以通过传递Connection对象的方式达到共享的目的,但是这种做法是丑陋的。在本篇文章中,我们将引入另外一种机制(ConnectionHolder)来完成事务管理。 这是一个关于Java事务处理的系列文章,请通过以下方式下载github源代码:git clone https://
2015-02-03 10:52:12 11608 6
转载 Java事务处理全解析(三)—— 丑陋的案例
在本系列的上一篇文章中,我们看到了一个典型的事务处理失败的案例,其主要原因在于,service层和各个DAO所使用的Connection是不一样的,而JDBC中事务处理的作用对象正是Connection对象,所以不同DAO中的操作不在同一个事务里面,从而导致事务失败。从中我们得出了教训:要避免这种失败,我们可以使所有操作共享一个Connection对象,这样应该就没有问题了。 请通
2015-02-03 10:44:54 8556 2
原创 Java事务处理全解析(二)—— 失败的案例
在本系列的上一篇文章中,我们讲到了Java事务处理的基本问题,并且讲到了Service层和DAO层,在本篇文章中,我们将以BankService为例学习一个事务处理失败的案例。 请通过以下方式下载github源代码:git clone https://github.com/davenkin/java_transaction_workshop.git Bank
2015-02-03 10:37:32 13845 2
原创 java事务处理全解析
最近学习java事务,看到一位前辈的系列博客不错,转载过来作为记录转载地址:http://www.davenkin.me/post/2013-02-16/40048284001 (一)Java事务处理的基本问题 (二)失败的案例 (三)丑陋的案例 (四)成功的案例(自己实现一个线程安全的TransactionManager) (五
2015-02-03 10:26:15 65127 6
原创 xshell连接远程电脑上的虚拟机上的linux
最近学习linux,但是不想在自己电脑上安装虚拟机,就在另一台电脑上装了虚拟机,于是就遇到怎么通过xshell连接远程主机上的虚拟机上的linux的问题。整个过程如下1、首先要确保安装的虚拟机和你的本机处于同一个网段,我的两台电脑都在同一个网段,所以只要设置虚拟机和所在主机处于同一个网段就ok了,方法为在vmware-->虚拟机-->设置-->网络适配器-->选择桥接模式。然后重启li
2015-01-23 17:09:01 16509 1
转载 java Iterator和ListIterator的区别和用法
我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器)。使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。 但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterat
2014-12-24 10:54:27 1523
转载 jsessionid所引起的问题 和解决
转自:http://blog.csdn.net/seakingwy/article/details/1933687jsessionid所引起的问题在Spring MVC当使用RedirectView或者"redirect:"前缀来做重定向时,Spring MVC最后会调用:response.sendRedirect(response.encodeRedirectURL(url)
2014-12-17 11:58:16 2830 1
转载 JVM基础:深入学习JVM堆与JVM栈
最近学习JVM,看到一篇博文讲解的很不错,拿来与大家分享.转自(http://developer.51cto.com/art/201009/227812_all.htm)JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放、放在哪儿,另外JVM堆中存的是对象。JVM栈中存的是基本数据类型和JVM堆中对象的引用。JVM基础概念:
2014-12-12 17:47:16 1052
转载 memcached各种应用分析
这里收集了经常被问到的关于memcached的问题 * memcached是怎么工作的? * memcached最大的优势是什么? * memcached和MySQL的query cache相比,有什么优缺点? * memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点? * memcached的cache机制是怎样的?
2014-08-28 11:38:44 789
原创 一次群聊天记录的整理(当后台的某个程序忽然死了时,怎么解决,没有日志输出)
电风扇:今天面试一家电子商务公司,一个面试官提的问题:当后台的某个程序忽然死了时,怎么解决,没有日志输出。电风扇:想了半天没出来洗衣机:重启锅:0.0电风扇: 有人,有好的建议吗电风扇: 不可能重启,这是电子商务网站锅: 做好数据备份再重启吧电风扇: 购物的电风扇: 而且只是其中的某个线程死了电风扇: 可能是别人写得某些程序造成的。电风扇: 我想了很久没想出
2014-07-26 16:54:41 2161
转载 java实现在线支付
国内电子商务系统实现的基本流程如下: 客户在系统内下订单 -> 系统根据订单生成支付宝接口url -> 客户通过url使用支付宝(网上银行)付款 -> 支付宝将客户的付款完成信息发送给电子商务系统 -> 系统收到支付宝信息后确定客户订单已经付款 -> 进行发货等后续流程。在开始下面的内容之前,你要先有一个支付宝账户,如果要集成支付宝接口,你还必须申请开通服务(关于如何开通,可以直接到支
2014-03-20 17:13:01 1272
转载 java容器的线程安全
同步容器类同步容器类包括Vector和Hashtable(二者是早期JDK的一部分),还包括JDK1.2中添加的一些相似的类。同步容器类实现线程安全的方式是:将状态封闭起来,并对每个公有方法进行同步,使得每次只有一个线程能访问容器状态。这里解释一下所谓“状态”指的就是成员变量,“封装起来”即将它们设不private,但是通过公有的方法外界仍然可以访问修改类的私有成员,所以要用synchro
2013-10-11 13:38:55 9023
转载 java多线程面试题
0.Java 中多线程同步是什么? 在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。 1.解释实现多线程的几种方法? 一 Java 线程可以实现 Runnable 接口或者继承 Thread 类来实现,当你打算多重继承时,优先选择实现 Runnabl
2013-09-24 14:03:15 1018
转载 笔试面试总结
作者:寒小阳时间:2013年9月。出处:http://blog.csdn.net/han_xiaoyang/article/details/11400719。声明:版权所有,转载请注明出处,谢谢。 前面从宏观的角度,根据师兄师姐口口相传的经验和自己的面试经历,写了点面试应该注意的点。这里针对,互联网公司,总结总结面试注意的点,里面的一部分内容出自一些优秀的
2013-09-24 10:33:39 1412
转载 java正则表达式
Java正则表达式http://blog.csdn.net/allwefantasy/article/details/3136570(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇。作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就
2013-09-03 14:25:05 1273
转载 struts2和servlet共存的几种方法
项目要求struts2和servlet能够共存,就是struts的请求发给struts处理,servlet的请求发给servlet处理。目前web.xml文件应该是类似于如下的配置: filter> filter-name>struts2filter-name> filter-class>org.apache.struts2.dispatcher.ng.filter.Strut
2013-08-29 10:32:16 14957 5
天猫世界杯抢红包脚本
2014-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人