- 浏览: 316812 次
最新评论
-
lyjilu:
作者文笔不错,公司也不错
项目经理叫你改Bug,后来就发生了…… -
chrislee1982:
我只能说那个开发的,能力是有的,情商有点让人着急
项目经理叫你改Bug,后来就发生了…… -
movingboy:
这个做法不奇怪吧?生产急用就先临时解决,回头再想办法优化
项目经理叫你改Bug,后来就发生了…… -
tcrct:
已经在项目中大部份都用到了。
Java程序员一定知道的优秀第三方库 -
xianlc:
整理的很全
Java程序员一定知道的优秀第三方库
文章列表
在调试spring应用时,动辄几十秒,甚至有的应用上分钟的启动速度,会让整个调试速度慢下来了。等待时间让人抓狂。不知道大家是如何加速spring应用调试速度的,在此分享下我的一次加速过程。欢迎补充指正。
环境
配置:
thinkpad t410
内存:4G内存
CPU:Intel P8700 双核2.53GHZ
系统:WIN XP
开发工具:Intellij IDEA 12.0.4
Maven + spring3.2.3 + hibernate4.2.2+Spring data jpa 1.3.1
当线程被创建并启动之后,它既不是一启动就进入执行状态,也不是一直处于执行状态,在其生命周期中,要经过"新建(New)"、"就绪(Runnable)"、"运行(Running')"、"阻塞(Blocked)"和"死亡(Dead)"五种状态。线程在创建之后,不可能一直霸占着CPU独立运行,需要在多个线程之间切换,所以大部分时间处于运行、阻塞之间切换。
一、新建和就绪状态
(1)、当用new关键字创建一个线程的时候,该线程就处于新建状态;
(2)、调用start()方法之后,线程就进 ...
1. DAS (Direct-attached Storage)
直连式存储,顾名思义这是一种通过总线适配器直接将硬盘等存储介质连接到主机上的存储方式,在存储设备和主机之间没有任何网络设备的参与,此概念主要用于区别NAS和SAN等网络存储。可以说DAS是 ...
1.概述
注解可以定义到方法上,类上,一个注解相当与一个类,就相当于实例了一个对象,加上了注解,就相当于加了一个标志。
常用的注解:
@Override:表示重新父类的方法,
这个也可以判断是否覆盖的父类方法,在方法前面加上此语句,如果提示的错误,那么你不是覆盖的父类的方法,要是提示的没有错误,那么就是覆盖的父类的方法。
@SuppressWarnings("deprecation"):取消编译器的警告(例如你使用的方法过时了)
@Deprecated:在方法的最上边也上此语句,表示此方法过时,了,或者使用在类上 ...
所谓对象序列化就是将对象的状态转换成字节流,以后可以通过这些值再生成相同状态的对象。这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新"装配"。像RMI、Socket、JMS、EJB它们中的一种,彼此为什么能够传递Java对象,当然都是对象序列化机制的功劳。
Java对象序列化机制一般来讲有两种用途:
Java的JavaBeans: Bean的状态信息通常是在设计时配置的,Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息,这需要将对象的状态 ...
重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while 循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法, ...
没有人会否认Oracle是全球最有影响的数据库产品之一;不过好的东西似乎总不是那么好用(初看起来如此),甚至有些无情--总会给layman们一个个无情的错误号。下面是我个人的总结,条条有用,希望能给初学者一点启示。
关于“ ...
队列以一种先进先出的方式管理数据。如果你试图向一个已经满了的阻塞队列中添加一个元素,或是从一个空的阻塞队列中移除一个元素,将导致线程阻塞。在多线程进行合作时,阻塞队列是很有用的工具。工作者线程可以定期的把中间结果存到阻塞队列中。而其他工作者线程把中间结果取出并在将来修改它们。队列会自动平衡负载。如果第一个线程集运行的比第二个慢,则第二个线程集在等待结果时就会阻塞。如果第一个线程集运行的快,那么它将等待第二个线程集赶上来。
下面的程序展示了如何使用阻塞队列来控制线程集。程序在一个目录及它的所有子目录下搜索所有文件,打印出包含指定关键字的文件列表。
java.util.concurre ...
shell编程中,当使用if语句时,总是涉及到条件的判断。下面来讨论下条件判断的各种情况。
1. 条件为语句
例如:当目录下有sam开头的文件时,输出hi,it's here.
一直以为grep只能进行单个文件的筛选,今天才发现,它可以进行多个文件的筛选。这个功能真是太强大了。还是记录一下吧。
假设我要找一个start_kernel函数,但我不知道此函数在哪个文件里,于是可以用如下命令:
grep -wrI "start_kernel" ./*
以下是一些其它的用法,也记录一下,算是巩固吧
grep命令主要参数:
-c:只输出匹配行的计数。
-I:不处理二进制文件
-i:不区分大小写(只适用于单字符)。
-r:递归处理目录下的所有文件。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n ...
1、求和
cat data|awk '{sum+=$1} END {print "Sum = ", sum}'
2、求平均
cat data|awk '{sum+=$1} END {print "Average = ", sum/NR}'
3、求最大值
cat data|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'
4、求最小值(min的初始值设置一个超大数即可)
awk 'BEGIN {min = 1999999} {i ...
一.代码优化
内存会溢出肯定和代码逃不了关系,99.99%学java的人都知道垃圾回收器是 java的一大优点并据此来嘲笑C++.显然这个特性为代码编写者省了不少事,但这个特性却带来了不少隐患.举个例子在游戏当中经常有不同场景的切换,如从游戏逻辑退到主菜单逻辑,对游戏逻辑对象的态度很多人会选择忘记等待垃圾回收器来收尸.乍看之下似乎并无不妥垃圾回收器会来善后.实际上垃圾回收器并非实时的,它不像C++的Delete语句马上释放不用的内存.当从游戏逻辑切换到主菜单逻辑这时两个对象同时存在很可能这时内存就不够用了.读到这里很多人会发现实际上垃圾回收器在j2me上并不怎么好用,从一个角度上来讲在j ...
1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志
2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志
3.扩展,因为脚本采用mtime(最后修改 ...
以前一直没在意,一直以为volatile修饰了就高枕无忧了,但其实不然,最简单的一个场景:
public class Counter {
public volatile static int count = 0;
public static void inc() {
//这里延迟1毫秒,使得结果明显
try {
Thread.sleep(1);
} catch (InterruptedException e) {
}
count++;
}
public static void main(String[] args) {
...
1 Javascript数组转换为CSV格式
首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件。则我们可以使用如下的小技巧,代码如下:
var fruits = ['apple', 'peaches', 'oranges', 'mangoes']; var str = fruits.valueOf();
输出:apple,peaches,oranges,mangoes
其中,valueOf()方法会将Javascript数组转变为逗号隔开的字符串。要注意的是,如果想不使用逗号分割,比如用|号分割,则请 ...