- 博客(30)
- 资源 (6)
- 收藏
- 关注
原创 Java程序员最常用的Linux命令
大家都知道,Linux系统提供了非常多非常多的命令或工具,这些命令都各有所长,都是系统需要的。但我们精力有限,要掌握全部的命令不太现实,所以只需要掌握其中部分常用的命令即可。这里,我就从一个Java程序员的角度,总结出我常用的一些Linxu命令,供大家参考….本博文已迁移至简书,请单击《Java程序员最常用的Linux命令》浏览!
2017-05-08 22:16:21
5810
原创 Linux查看实时网卡流量的几种方式
在工作中,我们经常需要查看服务器的实时网卡流量。通常,我们会通过这几种方式查看Linux服务器的实时网卡流量。本文介绍了查看网卡实时流量的方式,同时也提供一个非常方便的脚本,简单易用!
2017-05-05 17:24:27
3890
原创 Nginx+lua 调用.so文件
最近在和智能硬件部门一起,做一个室内定位的服务,该服务根据手机端传过来的beacon设备列表,根据一定的算法计算出具体的商场,并将商场ID和beason设备列表作为参数,调用.so文件中的计算方法,得出位置数据(坐标:x、y、z),返回给手机端。因为服务对QPS要求比较高,并且都是纯查询操作,于是决定使用Nginx+lua+Redis的架构(该架构在公司内部已成主流,比较成熟)。下面我将对lua调用
2017-05-03 17:29:01
2937
原创 当CPU飙高时,它在做什么
在开发过程中,有时候我们发现JVM占用的CPU居高不下,跟我们的预期不符,这时,CPU在做什么呢?是什么线程让CPU如此忙碌呢?我们通过如下几步,可以查看CPU在执行什么线程。1.查找jvm进程ID: jps -lv 或者 ps aux | grep java2.根据pid,查找占用cpu较高的线程:ps -mp pid -o THREAD,tid,time 如图所示:找到占用cpu最高的tid
2017-04-22 20:23:24
1157
原创 分布式数据库和多活数据库的区别
分布式数据库分布式数据库每个节点上存的数据与其它节点都不同,业务的全部数据是分布式数据库各个节点数据的和。多活数据库每个节点都是一套完整的业务数据,各个节点之间是相互备份的关系。
2017-01-11 09:41:09
5410
原创 分布式与集群的区别
分布式:一个业务拆分成多个子业务,每个子业务部署到不同的机器上,这些机器共同完成某一项功能。集群:同一个业务,部署到不同的机器上。分布式系统以电商系统的提交订单场景为例,用户提交订单到交易系统后,交易系统分别调用商品、会员、支付等系统,完成订单的创建,所以交易、商品、会员、支付等这些系统就构成了一个分布式系统,这个分布式系统来完成用户的下单流程。 (交易、商品、会员、支付等系统,可以是一台机器
2017-01-06 23:07:31
683
原创 Kafka Producer 工作流程
Kafka Producer 工作流程Kafka Producer 发送消息的两种方式:同步发送、异步发送。同步发送的流程图异步发送流程图发送流程说明(以异步发送为例):客户端创建Producer对象:创建该对象时,同时会创建EventHandler、ProducerPool对象。其中ProducerPool中保存对象SyncProducer对象,其初始个数由broker.size确定,该对
2016-02-18 22:14:57
6214
2
原创 MySQL主从服务器配置
主服务器(master)配置,主服务器配置很简单,只需要修改my.cnf配置文件中的两个地方。修改my.cnf中的server_id属性,主服务器配置为1,即server-id=1。修改my.cnf中的log-bin属性,例如可以设置为log-bin=/home/china/mysql/mysql-bin从服务器(slave)配置。修改my.cnf中的server_id属性
2013-03-05 18:06:19
2137
原创 Spring Junit4 测试Web应用程序
1、环境搭建很简单,只需要将这这两个jar包(org.springframework.test-3.0.3.RELEASE.jar和junit-4.8.1.jar),和Spring的公用包以及其它的Jar包一起加入到项目中即可。2、使用时,编写的测试类,需要继承类AbstractJUnit4SpringContextTests,同时需要指定Spring配置文件的路径,请看示例代码:
2013-02-22 17:27:41
8737
原创 Java虚拟机内存结构
当Java虚拟机运行一个程序时,它需要内存空间来存储许多东西,如字节码,创建的对象,传递给方法的参数,方法中定义的临时变量,方法的返回值等。Java虚拟机通通把这些数据放到“运行时数据区”中以便于管理。如图虚线范围内所示,Java虚拟机一般包括这几块存储区域:方法区,堆区,Java栈,PC寄存器和本地方法栈。这几块存储区分别存储不太能够的数据信息,各司其职,共同组成了虚拟机的“运行
2012-05-26 16:10:31
1593
1
原创 Java 数据结构----Java队列Queue
队列是一种简单的数据结构,与栈的典型特点后入先出(LIFO)相对应,它的典型特点是先入先出(FIFO)。队列至少应包括两个基本的方法,就是入队列和出队列,另外,其基本方法如下:add(E e) 在队列的队尾添加对象remove() 从队首删除一个对象,出队列peek() 查看队列的队首元素简单队列示例:public class Queue {
2012-05-17 16:58:26
3349
原创 Java 数据结构----栈的实现
栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法:pop() 出栈操作,弹出栈顶元素。push(E e) 入栈操作peek() 查看栈顶元素isEmpty() 栈是否为空另外,实现一个栈,还应该考虑到几个问题:栈的初始大小以及栈满以后如何新增栈空间对栈进行更新时需要进行同步简单示例,使用数组实现栈,代码如下:public cla
2012-05-16 16:08:34
1292
原创 Java 数据结构----冒泡排序 选择排序
冒泡排序是所有排序算法中最基本的,最简单的,因此也是面试和笔试过程中最被经常问的// 冒泡排序 public static void bubbleSort(int[] num) { if (num.length <= 1) { return; } for (int i = 0; i < num.length; i++) { boolean isChange = false
2012-05-15 17:19:40
988
原创 英文环境下 Struts2 日期格式转换的问题
在使用Struts2进行开发的过程中,我们经常会使用Struts2自带的类型转换器,这些类型转换器也实在简化了我们的开发,但是,有时它们也会出现一些问题。例如,startTime" name="startTime" readonly onfocus="WdatePicker()
2011-07-14 10:50:56
3973
原创 公共参数解决方式
在我们的项目开发中,经常会定义一些常量来表示同一事物的不同类型或者不同状态,以便于我们页面显示和数据存储。 例如,我们在定义性别时,通常用“0”和“1”来表示“男”和“女”,“0”和“1”我们称之为代码(code),存储到数据库中; “男”和“女”我们称之为码值(value),显示到页面上给用户看。当我们的项目不太大时,这样定义没有太大问题, 但是,如果项目比较大时,这种代码就会非常多,不利于开发和维护,也不利于页面显示。今天我就分享一下我在项目 开发中使用的解决方
2011-05-31 11:54:00
1829
原创 CXF 动态客户端--复杂对象
大家都知道,CXF提供了两种创建客户端的方式:一种是使用cxf提供的wsdl2java命令生成客户端,另一种就是动态创建客户端。关于第一种方式,就是直接将远程提供的类信息在本地生成,原理很简单。关键是动态调用并且方法参数为复杂对象时,这种方式是通过动态加载(加载到内存,并且只在当前线程中有效)需要使用到的远程的类信息,来完成客户端的创建以及远程方法的调用,使用方式如下: 1、 首先创建动态客户端工厂: 1: JaxWsDynamicClientFactory dynamicClient
2010-12-27 14:52:00
7748
1
原创 Ibatis缓存
当前,Hibernate和Ibatis是比较流行的持久层框架,二者有像是之处,又有很多不同的地方。熟悉Hibernate的程序员,刚开始接触Ibatis时很难理解它的缓存机制。Ibatis是一个半自动的持久层框架,它没有Hibernate那么智能。其缓存机制就能说明这一点。如果你使用可读写缓存,对数据库进行更新后,缓存并没有同时被更新,如果你需要在更新了数据库的同时,保证下次查询的时候,从缓存中读取的数据也是最新的,你就需要刷新缓存(flashOnExecute="methodName")。通过
2010-12-17 21:57:00
3769
原创 struts2 浏览器post提交值Action不能获得的问题
今天一同事遇到了这个问题,而且struts2的拦截器配置没有任何问题。 页面使用这种方式传值: 其中,提交到的Action中有一个person对象,包含有id和name两个属性,其中id属性为long型,而name属性为string类型(Act
2010-12-15 20:46:00
4332
原创 DWR 的运行原理
使用DWR已经好长一段时间了,可是今天才知道它的工作原理,下面与大家分享,如果有什么不对之处,欢迎指出,大家一起讨论... 使用DWR时,页面需要导入engine.js文件,另外还需要导入DWR自动生成的文件(根据用户在dwr.xml中配置信息生成),如:logAjax.js,这个文件是在服务器端是找不到的,不过可以在浏览器的缓存中可以找到。如果页面引入如下:
2009-12-30 20:32:00
4656
原创 解决URL中参数乱码问题
Get提交方式,传递参数乱码例如:想使用重定向URL,response.sendRedirect(req.getContextPath()+"/index.jsp?info=请您先登录");这样,在index.jsp中显示info内容时,往往会出现乱码,这是由于tomcat默认采用ISO-8859-1对URL进行编码,而浏览器默认不采用任何编码;另外还有除了字母,数字,以及一些标点
2009-12-28 21:56:00
1444
原创 xloadtree 生成树形菜单
xloadtree是一个使用Ajax技术动态加载树形菜单的工具,其js文件可以到 http://webfx.eae.net/dhtml/xloadtree/xloadtree.html 下载需要其中的三个js文件:xloadtree.js xmlextras.js xtree.js 以及 xtree.css images图片文件夹使用步骤如下:1、在Servlet或
2009-12-28 21:54:00
1576
1
原创 使用xloadtree创建树形菜单
xloadtree是一个使用Ajax技术动态加载树形菜单的工具,其js文件可以到 http://webfx.eae.net/dhtml/xloadtree/xloadtree.html 下载需要其中的三个js文件:xloadtree.js xmlextras.js xtree.js 以及 xtree.css images图片文件夹使用步骤如下:1、在Ser
2009-12-24 13:00:00
3471
原创 JDBC编程需要注意的几点
1、建立ResultSet集时,最好不要采用支持回滚的方式,因为如果要支持回滚,ResultSet对象从数据库中读取的数据不能被及时删除,就会一直保存在内存中,如果数据量大的时候,就有可能造成内存溢出…而如果ResultSet对象不支持回滚,它每次从数据库中提取一定数量(这个数量可以调用setFetchSize()方法设置)的数据,这些数据被它访问过的数据就会被清除出内存,因此不论数据量有多大都不
2009-11-23 21:50:00
779
原创 super 和 this 关键字的用法小结
super 和 this 关键字的用法小结 : super 可以用来调用父类中被隐藏的方法。super 可以用来引用父类的属性super 可以放在构造器中来调用父类的构造器 this 关键字是为了解决变量的命名冲突和不确定性问题引入的:this用在构造函数中表示该构造函数创建的对象this用在方法中表示调用该方法的当前对象(静态方法中不能有t
2008-11-07 21:09:00
867
原创 单例模式
单例模式的三个特点: 1 单例类必须只有一个实例 2 单例类必须自己创建自己的实例 3 单例类必须向其它所有类提供这一实例 单例类的一个重要的特点是:构造子是私有的,从而避免外部类利用其进行创建该类的实例,同时该类也不能被继承。(如果一个类的构造子是私有的,则这个类将不能被继承)。 饿汉式单例类: 单例类被加载时
2008-09-07 19:47:00
543
原创 struts2.0 中 sitemesh 的用法
SiteMesh项目简介 OS(OpenSymphony)的SiteMesh是一个用来在JSP中实现页面布局和装饰(layout and decoration)的框架组件,能够帮助网站开发人员较容易实现页面中动态内容和静态装饰外观的分离。下载地址: http://www.opensymphony.com/sitemesh/ 里面包含有详细的例子和文档 Site
2008-04-02 19:38:00
1428
Spring2.5+Hibernate3.2+struts2.1.6 用户登录
2009-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人