`
面朝大海春暖花开
  • 浏览: 85153 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
今天需要搭一台机器的环境,原以为还是和以前一样,拷贝一些文件就可以,但是后来才发现远远不是这么简单。 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 ...
1、查看数据库字符集 数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。      客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,      表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表      会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会 ...
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。 一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:                    ThreadPoolExecutor(int corePoolSize, int maximumP ...
[/b][b]输入模式命令      进入输入输出的方法        <a> 在光标后输入文本     <A> 在当前行末尾输入文本     <i> 在光标前输入文本     <I> 在当前行开始输入文本     <o> 在当前行后输入新一行     <O> 在当前行前输入新一行     光标移动命令     <b> 移动到当前单词的开始     <e> 移动到当前单词的结尾     <w> 向后移动一个单词     <h> 向前移动一个字符   ...
Quartz建议总是放一个自己的quartz.properties文件在classpath下,运行时可覆盖quartz.jar中的quartz.properties的配置,因为根据自己实际的应用,需要对quartz配置作些调整。 一般默认设置为: org.quartz.scheduler.instanceName = DefaultQuartzScheduler or ...
在多线程大师Doug Lea的贡献下,在JDK1.5中加入了许多对并发特性的支持,例如:线程池。 一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为:                    ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,                 long keepAliveTime, TimeUnit unit,                 BlockingQueue workQueue,                 Re ...
Global site tag (gtag.js) - Google Analytics