- 浏览: 85153 次
- 性别:
- 来自: 杭州
最新评论
文章列表
今天需要搭一台机器的环境,原以为还是和以前一样,拷贝一些文件就可以,但是后来才发现远远不是这么简单。
1.首先,我拿到的是root用户,但是用root用户进行操作,肯定不太好,这样以后空kill的时候,所有的用户进程都会 ...
今天遇到一个问题,我们的一个小系统保存数据的时候按照星期几来保存的,一共有14张表,1天两张。表的命名是前缀加0加星期。例如**_0_1 ,**_0_2这样。星期一的数据保存在**_0_1 和**_1_1 里面。4月11号的数据就应该保存在**_0_7 和**_1_7 这两张表里,但是我发现晚上晚上11点过后的数据就被保存到**_0_2和**_1_2里了。
原来也出现过类似的情况,是因为开始分表的时候我们取机器的时间来分表,但是后来保存数据库的时候又取了数据库时间来设置了分表字段,这样就导致了我们的分表不正确。
但是这次我仔细查看了我们的分表字段,发现是正确的,只是保存的表不对。
开始,我怀疑是 ...
很多时候,我们需要dump出java内存,对程序的运行情况进行分析,这样,我们才能知道问题出在哪里。
我只用过jstat.
Using the gcutil option
This example attaches to lvmid 21891 and takes 7 samples at 250 millisecond intervals and displays the output as specified
by the -gcutil option.
jstat -gcutil 21891 250 7
S0 S ...
1) 如果对象是immutable,则是线程安全的,例如:String,可以放心使用。
2) 如果对象是线程安全的,则放心使用
3) 有条件线程安全,对于Vector和Hashtable一般情况下是线程安全的,但是对于某些特殊情况,需要通过额外的synchronized保证线程安全。
4) 使用synchronized关键字;
对于上例中可以改写jsp代码,在sdf上进行同步,而不需要每次创建一个新的对象来保证线程安全,代码如下:
1. <%
2. synchronized(C1.sdf){
3. Java.util.Date date = C1.sdf.parse( ...
我对linux里面常用的命令进行了总结,如下。
1.ll -h 查看一个文件夹下所有文件,文件大小按照human的样式显示。
2.ll -hlSr 将文件按照大小进行排序
3. du可以查看文件及文件夹的大小。
4.grep -c 出现次数
-v 不出现
正则表达式 | 或者
5.awk -F 设置分隔符,通过管道连接,很好用
例如 grep "method=" **.log |awk -F "method=" '{print $2}'|awk -F "," '{print $1}' |sort ...
最近有个东东里面用了md5,我把它大概看了一下。
MD5即Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法,在1991年由MIT Laboratory for Computer Science(IT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L. Rivest教授开发出来,经由MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。它的作用是让大容量信息在用数字签名软件签私人密匙前被"压缩"成一种保密的格式(将一个任意长度的"字节串& ...
我自己理解的JNI是这样的,为了让java程序能够调用c++程序,从而加快程序的执行效率。
http://www.iteye.com/topic/295776
这篇博客介绍的很好,我就不转了。
一些java基础,但是很实用的东东。
1.Comparator,对list的记录进行比较
Collections.sort(data, new Comparator<Object>() {
public int compare(Object o1, Object o2) {
Object[] os1 = (Object[])o1;
Object[] os2 = (Object[])o2;
AtomicLong a1 = (AtomicLong)os1[1];
AtomicLong a2 = (AtomicLong)os2[1];
ret ...
最近在看一本关于代码风格的书,《代码整洁之道》,觉得挺有意思。
以前我写代码的时候,从来没有考虑过代码整洁的问题,只想着实现功能就好了。
可是看了那本书过后,我才发现,原来实现功能只是编写代码的一部分。为了能够使我们的代码可持续发展,我们应该有好的代码风格。
下面是摘抄自里面的一些话。
1.工厂类 用传入的参数决定返回类型,但是所有类型集成自一个基类
2.不要把boolean值作为函数参数,如果实际是这样,最好写两个方
3.时序性耦合
4.ENUM类型列举错误码,这样每次添加都要重新修改类,可以将其设置为异常,继承自一个基类,这样每次就只需要添加新的异常类型
5.适当的拆分函数
6.定义变量 ...
案例1:
我的ORACLE表里没有long字段,可是保存时报错:
ORA-01461 :仅可以为插入LONG列的LONG值赋值
本来我这张表里只有一个VARCHAR2(4000)的字段,一直没有这种错误发生,后来我把另一个字段长度调整为VARCHAR2(4000),这错误就开始发生了。
你的数据库字符集可能是UTF-8的,对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长。这种情况下oracle会把data_length长度超过4000 ...
- 2009-07-21 19:18
- 浏览 23827
- 评论(0)
1、查看数据库字符集
数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,
表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会 ...
- 2009-07-21 19:14
- 浏览 2865
- 评论(0)
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。
一、简介
线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:
ThreadPoolExecutor(int corePoolSize, int maximumP ...
- 2009-07-15 19:32
- 浏览 968
- 评论(0)
[/b][b]输入模式命令
进入输入输出的方法
<a> 在光标后输入文本
<A> 在当前行末尾输入文本
<i> 在光标前输入文本
<I> 在当前行开始输入文本
<o> 在当前行后输入新一行
<O> 在当前行前输入新一行
光标移动命令
<b> 移动到当前单词的开始
<e> 移动到当前单词的结尾
<w> 向后移动一个单词
<h> 向前移动一个字符 ...
- 2009-07-15 19:31
- 浏览 972
- 评论(0)
Quartz建议总是放一个自己的quartz.properties文件在classpath下,运行时可覆盖quartz.jar中的quartz.properties的配置,因为根据自己实际的应用,需要对quartz配置作些调整。
一般默认设置为:
org.quartz.scheduler.instanceName = DefaultQuartzScheduler
or ...
- 2009-07-15 19:26
- 浏览 15942
- 评论(0)
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。
一、简介
线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,
long keepAliveTime, TimeUnit unit,
BlockingQueue workQueue,
Re ...
- 2009-07-14 16:59
- 浏览 707
- 评论(0)