- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 系统安全——软件健壮性
废话系统安全最近一年,飞机失事的事情发生了好多起。于是乎,飞机是否是一种安全的出行工具的讨论又再一次燃起了战火。我无意对该话题展开讨论,只是可以举个例子说明一下。如果A城市一年出了10次抢劫事件,B城市一年出了1次杀人事件。那么可能会有很多人觉得B城市相对更不安全。正是因为飞机失事一般会带来非常严重的后果,所以飞机的设计比其他的交通工具要优秀的多。这里,我们参考一下传统
2015-02-05 23:50:29
2410
原创 hashcode和equals 简单的方法也可能引发问题
在java的基类:Object类中,其中有2个方法是Java开发者非常熟悉的,一个是hashcode,另一个是equals。不过,这2个非常简单且常常被覆盖的方法,也经常会对java初学者甚至是有一定经验的开发者造成疑惑。在介绍equals的几种常见错误之前,首先看看hashcode方法。不过,在介绍hashcode之前呢,首先来看看算法及数据结构里面的hash。hash算
2015-01-23 14:59:15
683
原创 Java中的浮点数比较 == equals 和 compare
前几天有位同学问我一个问题,为什么float和double不能直接用==比较?例如:System.out.println(0.1d == 0.1f);结果会是flase当时我只是简单的回答,因为精度丢失,比较结果是不对的。那么,到底为什么不对呢? 此文略作整理记录。类型升级(type promotion)首先,来看看java中的几种原生的数值类型进行==或!=比
2015-01-17 16:39:33
26886
1
原创 Java 的三种循环:foreach,Iterator 和 classic for loop
不得不说,java语言在提供了这三种循环方式带来灵活性的同时,同时也将一些“混乱”引入了进来。这里的“混乱”并不是真正意义上的混乱,而是由于没有统一的风格而带来使用习惯的问题——想象一下,如果同一个项目中这三种都有人用,阅读起来真是五味杂陈啊。有人要问了,那么,这三种到底哪种好呢?在回答这个问题之前,能告诉我“好”的定义是什么吗?我所认为的好,无非2点——1、代码简洁;2、
2015-01-17 15:19:41
5472
原创 Java如何获取方法参数中的名称
在有些场景下,我们有可能想在程序中获取一个方法的参数的名称。但是,对于Java这样的“编译”型语言来说,并没有直接的API可以调用。其实很容易理解,当Java源代码被编译成字节码后,方法的签名可能不会被保存下来,也就无从获取方法的参数名称了。虽然官方没有提供直接的解决方案,但是民间偏方还是有的。 思路就是:字节码解析,通过解析class文件,获取方法签名
2015-01-08 19:52:48
1522
mysql的常用命令
[list][*]备份pw库 mysqldump -u root -p -h 127.0.0.1 --database pw>pw.sql[*]还原pw库 mysql -u root -p -h 127.0.0.1 pw
2010-05-10 16:48:02
102
原创 mysql的innodb引擎的count(*)陷阱
今天同学们在群里讨论oracle的count(*)与count(1)的问题,正好提到mysql的情况。我突然想到自己遇到的问题:在myisam引擎执行count(*)速度非常快,而且执行速度与记录条数无关,而innodb却不是这样,记录越多,速度越慢。 于是做了一个实验,在一个有8000W条记录的innodb表执行了一下 select count(*) from table ...
2010-01-28 20:37:12
659
RPM命令大全
RPM 大全RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。 一、 安装RPM包 RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括 软件包的名称(foo),版本号(1.0),发行号(1), 和 硬件平台(i386)。安装一个软件包只需简单的键入以下命令: $ rpm ...
2008-05-26 17:56:20
100
oracle基本SQL语句
1、取得用户自己的表[quote]select * from tab[/quote]2、查看表信息[quote]select * from user_tab_cols where TABLE_NAME='VC_DEF'[/quote]
2008-04-14 14:21:46
105
可以在某些场合替代onload事件的domReady事件
load事件可以安全的执行JS,因为该事件是在页面完全加载完后才开始执行(包括页面内的图片、flash等所有元素),不会因为JS需要对某个DOM操作,而页面还没有加载该节点而引起错误。但是这种安全是需要付出代价的:如果某些图片(或者一些别的东西)加载特别慢,那么load事件会等到很久之后才会触发。 针对这个问题,一些JS框架提供了一些补充方法。如:jquery的$(docum...
2008-04-09 19:03:15
151
linux常用命令
要执行的文件在那里,用which命令[root@test /root]# which vialias vi='vim'/usr/bin/vim[root@test /root]#即可看到vi命令在/usr/bin/vim路径使用ldd命令确认这个程序执行需要哪些动态链接库[root@test /root]# ldd /usr/bin/vimlibncurses....
2008-03-28 12:48:25
92
大批量数据的删除操作
考虑使用 “DELETE FIRST NumRows”当必须删除大量的行而TRUNCATE 语句又不适用时,考虑使用 “FIRST NumRows” 子句从一个表中批量删除行。“FIRST NumRows”句法使你能够将“DELETE FROM TableName WHERE ...” 语句变成一系列“DELETE FIRST 10000 FROM TableName WHERE ...”...
2007-12-27 13:25:08
413
Mysql的内存表(Memory engine)的问题
由于项目需要大量并发insert/select/update,所以考虑采用内存数据库或者内存表解决这个问题。首先考虑到的是mysql的内存表。查阅了大量资料,未发现内存表有什么不满足我们需求的情况。于是进行压力测试。模拟量大量的并发请求,在压力上升到一定程度的时候,发现了锁等待。这个情况连续出现了两次。于是询问DBA,他们的意见是mysql的内存表(memory engine)因为...
2007-12-27 12:34:19
906
Too many open files
今天做压力测试的时候发现的问题。tomcat打开了1024个最大连接,但是还没有到1024个并发请求的时候tomcat挂掉了。看错误日志,发现了大量的异常:Too many open files原来是linux下面的描述符开的不够,一查只开了1024个,增加到6W多个就解决问题咯。...
2007-12-27 11:40:31
93
请慎用java的File#renameTo(File)方法
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。昨天老板同学又遇到这个问题,File#renameTo(File)方法在...
2007-12-19 10:12:42
894
mysql使用存储过程中关于编码的问题
mysql 的存储过程出来时间还不久,如果俺没有记错的话,应该是从5.0开始支持存储过程。跟oracle相比,mysql的存储过程功能还不够前者强大,使用也相对麻烦,另外,资料也是相当的少啊。我使用的是5.0版本,在这个版本下面,mysql的存储过程不能设置字符集。这样就会出现一个问题:假如mysql数据库指定的默认编码是latin1,而这个字段的编码是gbk(假如字段没有指定编码,那么它...
2007-12-16 18:47:15
516
如何对mysql中的字符进行编码转换
算来我也是mysql的忠实用户了,从mysql 3 的时候就开始用mysql,直到现在开始使用5.1版本,看到mysql一点一点的变化,感觉mysql功能越来越强大,真是是我们这种用不起oracle用户的福音啊!如果没有记错的话,mysql4.0升级到4.1以后,就增加了字符集这个概念。从mysql4.0及以下的版本,迁移到mysql4.1及其以上的版本就会出现中文字符出现乱码的问题。由于...
2007-12-16 18:37:33
254
请慎用new Integer()、new Long()……
java 5 引入了自动装箱和自动拆箱的概念。使得开发者不需要注意基本类型如:int long等基本类型和对应的对象类型:Integer Long等之间的转换问题。但是也稍微带来了一点点需要注意的东西。在java 5 中,要特别注意这些对象之间使用==的问题。[code] int value = 100; Integer a = value; Integer b = ...
2007-12-10 15:27:20
933
tomcat配置的一点注意事项
版本: tomcat5.5 ,别的版本是不是这样我没有验证。因为我想修改tomcat的默认目录,所以做了如下修改:[code] [/code]结果发现没有达到预期目的。tomcat是成功启动了,但是应用没有起来。检查了半天,最后修改成如下这样就OK了:[code] [/code]好像没有区别吧?!注意:Context 这个标签...
2007-12-07 17:55:50
97
关于数据库中的boolean字段,在sqlmap中的映射问题
最近遇到一个问题非常有意思。大概是我在数据库的某张表里面建了一个boolean字段,比如名称叫做:is_hot 那么在sqlmap的result里面,情况可能会是这样:[code][/code]我习惯了hibernate的方式,对应的类里面有这么一个属性:[code]private boolean isHot;public void setHot(boolean isH...
2007-12-07 10:01:14
445
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人