- 浏览: 8990 次
- 性别:
- 来自: 北京
最新评论
文章列表
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
常见泛型的写法如下:
Set<T>:表示 ...
最近需要采集一些数据,需要抓包分析数据,所以用到了Fiddler这个工具。
在网上找了一些教程,发现这个是最好的,比较实用,讲的还很细。
http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html
Fiddler在平时工作中,必不可少,因此需要熟练使用它。
关于时间复杂度(摘自百科)
- 博客分类:
- 算法
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。
一、时间复杂度 - 算法复杂度
算法复杂度分为 时间复杂度和 空间复杂度。其作用: 时间复杂度是度量 算法执行的时间长短;而 空间复杂度是度量算法所需 存储空间的大小。
二、时间复杂度 - 时间复杂度
1、时间频度
一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个 算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个 算法花费的时间与算法中语句的执行次数 成正比例,哪个算法中语句 ...
CountDownLatch是减计数方式,计数==0时释放所有等待的线程;CyclicBarrier是加计数方式,计数达到构造方法中参数指定的值时释放所有等待的线程。CountDownLatch当计数到0时,计数无法被重置;CyclicBarrier计数达到指定值时,计数置为0重新开始。CountDownLatch每次调用countDown()方法计数减一,调用await()方法只进行阻塞,对计数没任何影响;CyclicBarrier只有一个await()方法,调用await()方法计数加1,若加1后的值不等于构造方法的值,则线程阻塞。
JDK自带工具之JPS
- 博客分类:
- JVM
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。 jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path.$> jps32226 jar35083 jar34825 jar
比较常用的参数: -q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数 $> jps -q 32226 35083 34825 ...
Java自定义时间格式
- 博客分类:
- 常用工具包
一、Java获取系统时间并转换为想要的格式
需要引进 java.util.Calendar 和 java.text.SimpleDateFormat 这两个类,
Calendar currentDate = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss" );
String currentTime = sdf
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码(百度百科)。
Log4j的组成:Log4j由三个重要的组成构成:日志记录器(Loggers),输出端(Appenders)和日志格式化器(Layout)。1.日志记录器(Loggers):控制要输出哪些日志记录 ...
验证功能及其验证表达式介绍如下:
只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9] (.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9] (.[0-9]{1,3})?$”
只能输入非零的正整数:“^ ?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只 ...
表连接的三种形式:内连接、外连接、交叉连接连接的不同之处在于,使用join代替逗号,使用on代替where.这是它的标准语法结构.在使用连接的时候,最好为表名指定一个别名,在使用时通过别名引用列名可以明确的制定使用的是哪张表 ...
题目:在不使用第3个数的情况下,交换2个数的值
第一种方法
public class Test {
public static void main(String[] args) {
//利用加减法
int a = 10, b = 5;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a=" + a + "\nb=" + b); ...