JDK5.0新特性(实践)
文章平均质量分 94
qian_348840260
这个作者很懒,什么都没留下…
展开
-
线程池中的线程执行任务时遇到了异常,线程被销毁还是放回线程池重新利用呢?
原文点这里,我这做个备份。有的线程它死了,于是它变成一道面试题。有些线程它活着,但它躺在池中碌碌无为;有的线程它死了,于是它变成一道面试题。这次的文章,要从一次阿里的面试说起。我记得那天是周一,刚刚经历过周末过的放松,干劲十足的我正在键盘上疯狂的输出。这时,我的手机响了起来,拿起一看,是来自杭州的电话,心想这次是要给我推荐股票呢还是要让我贷款呢。我接起了电话,准备“调戏一番”。那边响起一个声音:"你好,请问是xxx吗?这边是杭州阿里巴巴,现在有时间进行电话面试吗?"。说实在的,听完这句话..转载 2021-03-15 19:45:54 · 2876 阅读 · 0 评论 -
11.5线程----同步装置之Exchanger
/** * Exchanger让两个线程互换信息 * 实例模拟服务生和顾客,服务生往空杯子中倒水,顾客从装满水的杯子中喝水,然后互换杯子,服务生接着倒水,顾客接着喝水. *//** * 使用Exchanger的关键技术点如下: * 1.初始化Exchanger对象时,可以通过泛型指定杯子能交换的信息类型.如"new Exchanger;"表示只能交换String类型的信转载 2010-01-23 10:55:00 · 818 阅读 · 1 评论 -
11.4线程----Condition
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent转载 2010-01-22 23:29:00 · 810 阅读 · 0 评论 -
11.6线程----BlockingQueue
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; /** 本例介绍一个特殊的转载 2010-01-23 13:41:00 · 1814 阅读 · 0 评论 -
11.3线程----锁Lock
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Re转载 2010-01-22 23:06:00 · 899 阅读 · 0 评论 -
Integer的自动封箱
Integer a = 127; Integer a1 = new Integer(127); Integer a2 = Integer.valueOf(127); Integer b = 127; Integer b2 = Integer.valueOf(127); Integer c = 128; Integer c1 = Intege原创 2011-12-20 18:04:13 · 592 阅读 · 0 评论 -
泛型学习笔记
类型变量(参数)的命名规则类型变量使用大写形式,且比较短,这是很常见的。在Java库中,使用变量E表示集合的元素类型,K和V表示表的关键字与值的类型。T(需要时还可以用临近的字母U和S)表示"任意类型"。泛型类泛型方法示例: class ArrayAlg { public static T getMiddle(T[] a) {原创 2013-01-02 13:56:41 · 372 阅读 · 0 评论 -
11.5线程----同步装置之Semaphore
import java.util.ArrayList;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;import java.util.concurrent.locks.Lock;impo转载 2010-01-22 23:37:00 · 897 阅读 · 0 评论 -
Phaser
import java.io.File;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.concurrent.Phaser;import java.util.concurrent.TimeUnit;/** * Java并发API提供的一个非常复杂强大的功能转载 2014-07-04 12:30:01 · 675 阅读 · 0 评论 -
11.5线程----同步装置之CyclicBarrier
import java.util.Random;import java.util.concurrent.CyclicBarrier; /** * CyclicBarrier维持一个计数器,与CountDownLatch不同的是,等待这个CyclicBarrier的线程必须等到计数器的某个值时,才可以继续. * CyclicBarrier就像它名字的意思一样,可看成是个障碍,所有转载 2010-01-23 09:48:00 · 1495 阅读 · 0 评论 -
11.5线程----同步装置之CountDownLatch
import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; /** * CountDownLatch维护一个计数器,等待这个CountDownLatch的线程必须等到计数器为0时才可以继续转载 2010-01-23 09:45:00 · 843 阅读 · 0 评论 -
10.监控与管理虚拟机
import java.lang.management.ClassLoadingMXBean;import java.lang.management.CompilationMXBean;import java.lang.management.GarbageCollectorMXBean;import java.lang.management.ManagementFactory;im转载 2010-01-17 16:32:00 · 1087 阅读 · 0 评论 -
8.泛型编程
import java.util.ArrayList;import java.util.Collection;import java.util.List; /** *泛型编程关键掌握两点: *1.在方法参数中使用通配符 *2.在方法的参数类型和返回类型中使用通用类型 *//**关键技术 *1.通配符问号(?)表示任意类型.如"List"表示可以存放任意对象转载 2010-01-17 12:56:00 · 663 阅读 · 0 评论 -
11.1线程----Callable和Future
import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future; /** 从本节开始,主要介绍J2SE5.0与线程相关的新特性转载 2010-01-19 20:51:00 · 3000 阅读 · 0 评论 -
11.2线程----任务执行架构
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurren转载 2010-01-19 21:02:00 · 1153 阅读 · 0 评论 -
2.新的for循环
import java.util.ArrayList;import java.util.List; /** * 新的for循环,格式为for(type x:type y) * 表示遍历数组或集合y的元素,把元素值赋给x */public class ForEach { /**对整数数组求和*/ public static long get转载 2010-01-15 21:34:00 · 884 阅读 · 0 评论 -
3.枚举类型
/** *enum关键字表示枚举类型,它的作用相当于类声明中的class关键字 *枚举类型不能有public的构造方法 *所有的枚举值都是public、static、final的,这些修饰符都是自动加上,无须程序员手动添加 *枚举值之间用逗号","分开,最后一个枚举值后面接分号";" *每一个枚举值是一个枚举类型的实例 *可以在枚举类型中定义非枚举值变量,这些变量可以转载 2010-01-16 10:27:00 · 669 阅读 · 0 评论 -
4.静态导入
/** *静态导入:是指可以import类的静态方法和静态变量,在使用时,无须指定类名, * 便可以使用这些被import的静态方法和静态变量,这就是静态导入 *写import语句时,可以定位到一个静态方法或静态变量(以前是定位到类) *可以使用通配符(*)代表导入该类的所有静态方法和静态变量 *不允许静态方法和静态变量出现重名的情况 */impor转载 2010-01-16 12:37:00 · 492 阅读 · 0 评论 -
5.可变长参数Varargs
/** * 在J2SE5.0之前,当传入到方法的参数个数不固定时,经常采用数组的方式传递参数 * 在J2SE5.0之后,可以使用可变长参数的我给方法传递参数 *//** * 在参数类型和参数名之间使用"..."(三个英文的点),表示该参数为可变长的 * 通过新的for循环读取可变长参数中的值 * 一个方法里最多只能有一个变长参数,而且这个变长参数一定要放在参数表的最后转载 2010-01-16 14:24:00 · 627 阅读 · 0 评论 -
6.格式化输出
import java.util.Date; /** * 使用printf输出 *//**关键技术点 * 使用java.io.PrintStream的printf方法实现C风格的输出 * printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象 */public class Printf { public st转载 2010-01-16 19:16:00 · 1564 阅读 · 0 评论 -
7.使用ProcessBuilder执行本地命令
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Output转载 2010-01-16 19:20:00 · 13438 阅读 · 0 评论 -
9.注释功能Annotation
import java.lang.annotation.ElementType;import java.lang.annotation.Target;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;/**关键技术 * 1.Java常用的内置注释 * @转载 2010-01-17 14:59:00 · 628 阅读 · 0 评论 -
1.自动装箱和拆箱
/** * 基本类型的数据值可以直接赋给基本数据对象,基本数据的对象也可以直接赋给基本数据变量 * 在表达式中,基本类型的数据值可以和基本数据对象进行运算 * 基本数据类型的数组不能实现自动装箱和拆箱,即int[]不能当成Integer[]使用 *//** * 演示基本数据类型的自动拆箱和装箱 */public class AutoBox { /**转载 2010-01-15 21:32:00 · 755 阅读 · 0 评论