`
文章列表

泛型基础

泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。   在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。   常见泛型的写法如下: Set<T>:表示 ...

Fiddler抓包

最近需要采集一些数据,需要抓包分析数据,所以用到了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.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);  ...
Global site tag (gtag.js) - Google Analytics