自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhouchao001的博客

机遇总是留给有准备的人!!!

  • 博客(60)
  • 收藏
  • 关注

原创 jvm指令计数器的作用

由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。  如果线程正在执行的是一个Java方法,这个计数器记录的是

2016-08-03 15:30:52 1802

原创 断言assert 的作用

1、断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况;2、以下是使用断言的几个原则:      (1)使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。      (2)使用断言对函数的参数进行确认。      (3)在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假

2016-08-02 18:00:32 13000

原创 深入理解Java:SimpleDateFormat安全的时间格式化

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一

2016-07-06 14:32:36 2049

原创 UML 活动图

内容路线•活动图概述活动图概述•活动图和交互图是UML中对系统动态方面建模的两种主要形式•交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流•活动图是一种表述过程基理、业务过程以及工作流的技术。它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模•UML 2.0而言,去除了“活动图是状态图的一种

2015-12-22 11:54:03 544

转载 PowerDesigner(四)-业务处理模型

业务处理模型  业务处理模型(Business Process Model,BPM)以业务需求作为出发点,用图形的方式描述系统的任务和业务流程,注重的是处理过程中数据流程。业务处理模型是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型,并使用流程 图表示从一个或多个起点到终点间的处理过程,流程,消息和协作协议。使用于应用系统的系统分析阶段,完成系统需求分析和逻辑设计。BPM与Po

2015-12-22 10:57:37 622

转载 Oracle定义varchar2()类型存储汉字的长度问题

varchar2最大是4000字节,那么就看你的oracle字符集:(select userenv('language') from dual;)如果字符集是16位编码的,ZHS16GBK,那么每个字符16位,2字节,所以可以容纳2000字符。如果是32位编码的字符集,那么只能存储 1000个字符。例如:varchar(50) 表示该字段类型为varchar2类型,长度为5

2015-12-16 14:29:17 695

原创 SSH高性能并发的注意事项(个人总结)

1、  应该尽量减小service事务代码块的大小,在事务中对记录进行修改时,会对相应表加锁,如:A事务对table1 和table2表的记录进行修改,那么B事务再对table1 和table2表的记录进行修改时会等A事务commit以后才能获得table1和table2的锁,这样事务太长并发量大的时候系统就会变慢2、  事务里对表的更新操作应该按一定顺序,如果顺序不同则可能会出现数据库表死锁

2015-12-13 17:41:38 4204

原创 (四)避免对象的内存泄露

内存对象的泄漏,会导致一些不再使用的对象无法及时释放,这样一方面占用了宝贵的内存空间,很容易导致后续需要分配内存的时候,空闲空间不足而出现OOM。显然,这还使得每级Generation的内存区域可用空间变小,GC就会更容易被触发,容易出现内存抖动,从而引起性能问题(如图15所示)。 图15最新的LeakCanary开源控件,可以很好的帮助我们发现内存泄露的情况,更多关于LeakCana

2015-12-13 17:41:32 1623 1

原创 (三)如何避免OOM总结

前面介绍了一些基础的内存管理机制以及OOM的基础知识,那么在实践操作当中,有哪些指导性的规则可以参考呢?归纳下来,可以从四个方面着手,首先是减小对象的内存占用,其次是内存对象的重复利用,然后是避免对象的内存泄露,最后是内存使用策略优化。减小对象的内存占用避免OOM的第一步就是要尽量减少新分配出来的对象占用内存的大小,尽量使用更加轻量的对象。1)使用更加轻量的数据结构例如,我们可以考

2015-12-13 17:41:26 1042

原创 (二)OOM(Out Of Memory)

前面我们提到过使用getMemoryClass()的方法可以得到Dalvik Heap的阈值。简要地获取某个应用的内存占用情况可以参考下面的示例(更多内存查看的知识,可以参考Google官方教程: Investigating Your RAM Usage)1)查看内存使用情况通过命令行查看内存详细占用情况,如图3所示。 图3  命令行查看内存详细占用情况通过Android St

2015-12-13 17:41:21 417

原创 (一)Android的内存管理机制

Google在Android的官网上有这样一篇文章,初步介绍了Android是如何管理应用的进程与内存分配:http://developer.android.com/training/articles/memory.html。 Android系统的Dalvik虚拟机扮演了常规的内存垃圾自动回收的角色,Android系统没有为内存提供交换区,它使用 paging与 memory-mapping(mm

2015-12-13 17:41:15 2783

原创 java webservice 用户验证 (服务端 + 客户端)

说明:在网上找了一堆 handler验证的东东,试验了一下,没成功。现在换了一种方式:在 tomcat的配置文件中添加用户角色和用户信息             然后在 webservice的项目配置文件中增加对应的角色。从而达到 用户验证的目的。开发环境: MyEclipse 10, Tomcat 7参考:http://www.fengfly.com/plus/view-2100

2015-12-13 17:41:10 3818

原创 MySql+Memcached架构的问题

1.  MySql+Memcached架构的问题 Memcached采用客户端-服务器的架构,客户端和服务器端的通讯使用自定义的协议标准,只要满足协议格式要求,客户端Library可以用任何语言实现。Memcached服务器使用基于Slab的内存管理方式,有利于减少内存碎片和频繁分配销毁内存所带来的开销。各个Slab按需动态分配一个page的内存(和4Kpage的概念不同,这里默认pa

2015-12-13 17:41:03 578

原创 java web开发 高并发处理

java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(主

2015-12-13 17:40:58 327

原创 assert断言的陷阱

assert关键字用法简单,但是使用assert往往会让你陷入越来越深的陷阱中。应避免使用。笔者经过研究,总结了以下原因: 1、assert关键字需要在运行时候显式开启才能生效,否则你的断言就没有任何意义。而现在主流的Java IDE工具默认都没有开启-ea断言检查功能。这就意味着你如果使用IDE工具编码,调试运行时候会有一定的麻烦。并且,对于Java Web应用,程序代码都是部署在容器里

2015-12-13 17:40:52 675

原创 spring beans源码解读

spring Ioc容器的实现,从根源上是beanfactory,但真正可以作为一个可以独立使用的ioc容器还是DefaultListableBeanFactory,因此可以这么说,DefaultListableBeanFactory 是整个spring ioc的始祖,研究透它的前生今世对我们理解spring ioc的概念有着重要的作用。1. DefaultListableBeanFact

2015-12-13 17:40:47 423

原创 MongoDB知识整理

阅读目录为什么我们要使用MongoDB?MongoDB要注意的问题MongoDB结构介绍常用命令MongoDB增删改命令索引查询管理参考资料:回到顶部为什么我们要使用MongoDB?特点:高性能、易部署、易使用,存储数据非常方便。主要功能特性有:面向集合存储,易存储对象类型的数据。模式自由。支持动态查询。支持完全索引

2015-12-13 17:40:41 438

原创 Nginx常用功能详解

NGiNX 是个非常优秀的HTTP 服务器软件,可以通过设置有实现许多功能,如目录保护、IP访问限制、防盗链、下载限速及设置多域名等等 一、NGINX目录保护及访问限制Nginx保护目录的配置如下,目录密码保护文件是 /usr/local/nginx/htpasswdlocation ~ /admin {#admin为要保护的目录名称,location 的意思就是保护从网页根目

2015-12-13 17:40:35 506

原创 搭建Nginx+Java环境

一、简介:Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱。虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多。二、下载安装:下载nginxhttp://nginx.org/en/download.html下载解压后放到C:\nginx-1.0.4(官网这样要求的,不知道放其它盘有没有问题

2015-12-13 17:40:30 1653

原创 Nginx反向代理和负载均衡部署指南

1.        安装1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;2)         解压后复制到部署目录。 2.        启动和停止NginxNginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。1)  

2015-12-13 17:40:24 318

原创 Nginx负载均衡配置

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。 测试环境 由于没有

2015-12-13 17:40:18 259

原创 Mysql主从数据库配置

环境:主服务器:centos 5.2 mysql 5.1.35 源码 IP:192.168.1.22从服务器:centos 5.2 mysql 5.1.35 源码 IP:192.168.1.33配置:一、主服务器1.1、创建一个复制用户,具有replication slave 权限。mysql>grant replication slave on *.* to ‘repl’

2015-12-13 17:40:12 353

原创 JAVA环境变量配置的作用

环境变量: 一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。为什么jdk要配置环境变量呢?1、配置JAVA_HOME=D:\Program Files\Ja

2015-12-13 17:40:06 3156

原创 Apache防DDOS模块mod_evasive安装和配置方法详解

一、mod_evasive 介绍mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块。对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块。虽然并不能完全防御DDOS攻击,但在一定条件下,还是起到缓服Apache(httpd)服务器的压力。如配合iptables、硬件防火墙等防火墙设备配合使用,可能有更好的效果。mod_evasive 的官方地址: htt

2015-12-13 17:40:01 624

原创 实战在Centos5.3下mod_dosevasive对抗DDos攻击

转截请写明出处,谢谢!      最近老同事的电子商务网站经常性的对手ab,无奈我花些时间google,发现有不少朋友用mod_dosevasive来对抗ddos攻击(当然是小范围的,如果没有带宽和硬件的保障效果会更好).居体的安装可以参看 关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明 上面写的够详细了。下面是我的安装过程

2015-12-13 17:39:56 378

原创 Linux、Shell常用命令

Shell既是一种命令语言,又是一种程序设计语言。 Linux常用命令:1、进入指定目录命令     cd2、查看当前目录     pwd3、返回上层目录结构   cd ..4、返回主目录    cd   ~5、创建目录    mkdir 6、创建文件  touch 7、文件拷贝 cp8、文件移动  mv9、文件删除  rm10、查找文件  find

2015-12-13 17:39:50 201

原创 修改 EditText 中的光标位置

Android 的 EditText 控件默认获取焦点的时候, 插入光标是在第一个位置的,如果EditText中设置了文本, 这个时候光标是在文本的最前面, 而不是文本的最后. 为了方便用户使用, 需要把光标移动到文本最后, 但是EditText 没有提供 setCursor 函数.  经查看其文档 发现 setSelection 函数可以完成该功能. 如下: EditText et = ..

2015-12-13 17:39:44 217

原创 单例模式

单例模式写法有很多种,没有十全十美的。只要根据自己的情况定义合适的单例模式即可。下面我把所有单例模式写法汇总一遍:1、最简单的单例,在确定程序没有多线程的情况下可以考虑这样写。既性能高又简单。 package com.zc;/** * * @ClassName: Singleton1 * @Description: TODO(最简单的单例模式) * @author

2015-12-13 17:39:39 203

原创 正则表达式

元字符描述\将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。^匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。$

2015-12-13 17:39:33 419

原创 使用maven的好处

最近,和朋友聊天,发现朋友公司用上了Maven。于是就了解了下。我了解一门技术,一般不是先学习它怎么用。而是想了解它的好处。因为我觉得只有知道它的好处,才能促进我去学习和理解。好了,不闲说了。下面我简单的总结下我认为使用maven的好处:1、解决了包的问题。maven将包的依赖关系定义在了pom.xml中,所有jar包放在.m2里。这样的话,我们首先不会出现包冲突的问题,其次,解决了我们去

2015-12-13 17:39:27 1220

原创 Mongodb联合查询

在关系型数据库中,通过连接运算符可以实现多个表联合查询。而非关系型数据库的特点是表之间属于弱关联,Mongodb作为Nosql代表,其本身特性不建议对多Collection关联处理,不过对于有些需要对多表关联处理的需求,Mongodb也可以实现。主要分为两种方式:简单手工关联和DBRef方式关联1.简单手工关联下图表示帖子和用户两个Collection的ER图:首先将authors集合中的用户对象

2015-12-13 17:39:22 674

原创 使用LruCache为GridView加载大量sdcard的图片

最近做android开发的时候遇到读取sdcard下面图片展示,在网上找了很多相关资料,最终得于解决。在这里首先感谢下互联网的朋友们。接下来我把我实现的代码贴出来和大家分享下。由于代码里面的注释写的很清楚。我就不再一一描述了。package com.zhuyesoft.sgzs.ui;import android.annotation.SuppressLint;import and

2015-12-13 17:39:17 234

原创 Tomcat6 Tomcat7对比测试

本文首先简述了Tomcat7的新特性和增强功能。然后对比tomcat6做了性能测试,测试结果表明,tomcat7的在性能上没有明显的提升,而主要贡献在于Servlet 3.0,内存检测泄露和增强的安全特性。1 Tomcat7的特性目前tomcat7已经发布到第34个版本(tomcat7.0.34),而tomcat6现在的版本是6.0.36,所以就bug修改来说,应该算是比较稳定了。T

2015-12-13 17:39:11 276

原创 UML用例图

用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。  【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。  用例图所包含的元素如下:  1. 参与者(Actor)  表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。   2. 用例(Use Case)   用例就是外部可见的系统功能

2015-12-13 17:39:06 232

原创 UML类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)         1. 泛化(Generalization)        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的

2015-12-13 17:39:00 204

原创 JAVA设计原则

JAVA的设计原则分为6种,下面是个人对这6种设计模式的理解1、单一职责原则      一个类尽量有较少的动作(方法),把一些能通用的方法提取出来,新增接口和实现。例如现在我们有一个类是猫,那么这个类有吃的方法,也有抓老鼠的方法。如果以后,我们的需求对猫吃的这个方法做调整,也就更改了猫这个类,那么就有可能影响到猫抓老鼠这个方法。(没想到比较贴切的例子,不好意思)2、里氏替换原则  

2015-12-13 17:38:54 209

原创 主键和唯一索引的区别

主键和唯一索引的区别 键是一种约束,唯一索引是一种索引,两者在本质上是不同的。主键创建后一定包含一个唯一性索引,唯一性索引并不一定就是主键。唯一性索引列允许空值,而主键列不允许为空值。主键列在创建时,已经默认为空值 + 唯一索引了。主键可以被其他表引用为外键,而唯一索引不能。一个表最多只能创建一个主键,但可以创建多个唯一索引。主键更适合那些不容易更改的唯一标识,如自动递增列、身份证号等。在

2015-12-13 17:38:49 258

原创 设计模式的六大原则

一、单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成

2015-12-13 17:38:43 276

原创 用debug监视程序 Cannot perform nested evaluations

今天程序遇到一个问题,debug错误信息是“ Cannot perform nested evaluations”。到网上查了许久,很多人的解决方案   1、您在window的divferences的里面有个设置debug的地方设置下,恢复下默认值试试。   2、是线程冲突引发的,你监视的那个对象目前正在被另外一个线程使用。可是我这边都没解决。           http://www

2015-12-13 17:38:36 2773 1

原创 浅谈print2flash的在线预览转换应用

print2flash是一种在线预览转换工具,可以将doc、docx、xls、pdf、ppt等格式的文档转换成flash文件进行预览,因为之前使用的flash2paper只支持32为操作系统,不支持64为win7,所以才考虑用print2flash。在使用过程中遇到了很多问题,下面我将遇到的问题总结一下。1、安装以后,进行pdf转换出现系统错误,code 1155 没有应用程序与当前的操作

2015-12-13 17:38:30 3289

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除