字符串的安全性. 如果密码是存储在 Java String 对象中的,则直到对它进行垃圾收集或进程终止之前,密码会一直驻留在内存中。即使进行了垃圾收集,它仍会存在于空闲内存堆中,直到重用该内存空间为止。密码 String 在内存中驻留得越久,遭到窃听的危险性就越大。更糟的是,如果实际内存减少,则操作系统会将这个密码 String 换页调度到磁盘的交换空间,因此容易遭受磁盘块窃听攻击。 您应该将密码存储在 char 数组中,并在使用后对其置零。(String 是不可变的,所以无法对其置零。) 智能序列化。 当为存储器或传输任何私有字段而序列化对象时,缺省情况下,这些对象都呈现在流中。因此,敏感数 ...
  • 10:20
  • 浏览 (40)
  • 评论 (0)
摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱码问题”。 掌握编码问题的关键是正确地理解相关概念,编码所涉及的技术其实是很简单的。因此,阅读本文时需要慢读多想,多思考。 引言 “字符与编码”是一个被经常讨论的话题。即使这样,时常出现的乱码仍然困扰着大家。虽然我们有很多的办法可以用来消除乱码,但我们并不一定理解这些办法的内在原理 ...
  • 10:01
  • 浏览 (48)
  • 评论 (0)
什么是流(stream)? 流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们。以下列出了这5种标准的流。 ------------------------------------------------ 名称 描 ...
  • 09:58
  • 浏览 (54)
  • 评论 (0)
'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。 回车和换行 今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一 ...
2008-01-24

linux awk用法小结

关键字: awk
awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 > ...
Use ant to send file to remote automatically 最近一直在做测试, 需要把自己的程序扔到远程服务器上执行. 于是, 在起初的阶段, 我每次都非常痛苦地打一堆字”scp -P xx file user@host:/some/dir”, 让人接近崩溃.. -,- 痛定思痛, 决定来自动化这个过程. 所以直接把目光投向了Ant, 一个强大的构建工具. Ant是伟大的,它提供了remote task, 支持通过ftp/scp/sshexec等任务来完成远程操作. 我下面将针对scp task. Scp task是Ant的一个optional task, 所 ...
2008-01-24

JAD批量反编译CLASS文

关键字: jad
 反编译别人的程序是不对的,但是有时候由于某种原因,不得不反编译别人的代码,那就需要一个工具了。小颖JAVA源代码反编译专家V1.4终极版是个很好的工具,但是只能对JDK1.4.2和之前的版本编译的程序反编译,而JDK5.0后的就无能为力了,但是可以下载JAD.EXE来逐个反编译 CLASS文件,不过如果碰到有几十个或几百个文件夹,并且目录很深的时候,就麻烦了,这个给出一个直接使用命令行反编译整个目录的方法:使用jad批量反编译 jad -o -r -sjava -d src bin/**/*.class src: 是反組後的目錄 bin:指 package 開頭 将bin里面所有的. ...
这篇文档是专门写给那些编程狂热者,在Ant里编程时要留意的重要Task。 不知为何,老外的各种脚本都写得格外漂亮。从Appfuse里学到很多,在编写SpringSide2.0的构件安装脚本时又被迫自学了不少,这里作下总结。 如果只说一样最重要的事情,就是ant-contrib的<if> 和 <for>节点,使Ant 拥有了完整的编程能力。 1. 变量 Ant里的变量有个诡异的特性----一旦被赋值就不会改变,这个特性有时候帮助很大,有时候让人很苦恼,一定要注意。另一样要注意的是,Ant里的变量和其他语言的变量一样,有可效范围。 1.由命令行赋值 ...
2008-01-24

Java Applet运行机制分析

关键字: applet
Applet运行之前,先调用Init()方法,然后调用start()方法,最后调用paint()方法。 stop()方法主要发生在Applet所在的网页被最小化时,当Applet所在的网页被最大化时,要调用start()方法和paint()方法。 paint()方法主要发生Applet所在网页由非活动状态变为活动状态时,如从另一个窗口转到Applet所在的网页的窗口时,将调用paint方法。再者,其它方法调用repaint()方法,也将间接调用paint()方法。 下面的代码是测试Applet的代码: AppletDemo.java文件: import java.awt.*; pu ...
 LinkedHashMap扩展HashMap,以插入顺序将关键字/值对添加进链接哈希映像中。象LinkedHashSet一样,LinkedHashMap内部也采用双重链接式列表。  (1) LinkedHashMap(): 构建一个空链接哈希映像  (2) LinkedHashMap(Map m): 构建一个链接哈希映像,并且添加映像m中所有映射  (3) LinkedHashMap(int initialCapacity): 构建一个拥有特定容量的空的链接哈希映像  (4) LinkedHashMap(int initialCapacity, float loadFactor): 构建一个 ...