自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 interrupt(),interrupted()与isInterrupted()

关于标题中的三种方法不再总结,主要是记下一个坑,在看《Java多线程编程核心技术》这本书中遇到的坑。我老老实实的打出文中测试代码运行,却得不到书中的结果。public class mythread extends Thread{ @Override public void run() { // TODO Auto-generated method stub sup...

2019-05-30 22:17:06 161

原创 初阶并发编程之——运用wait()与notify()实现线程之间的协作

wait()与notifyAll()   wait()方法和notifyAll()方法都属于Object类的final方法,即子类不可重写该方法。wait()正如字面等待的意思,导致当前线程等待,直到另一个线程调用该对象的notify()方法或notifyAll()方法。wait()与sleep()不同的是,wait()先将锁释放再去挂起线程,所以wait()必须再同步块或方法中调用。方法noti

2017-12-22 22:33:45 271

原创 设计模式之——策略模式

什么是策略模式: 定义了算法族,将他们封装起来,让他们之间可以相互替换,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。   现在我们假设一个场景:父类用户类(User),他有三个子类:游客(Tourist),普通用户(GeneralUser),vip用户(VIPUser)。他们都有一个购买行为。游客不可购买需要注册为普通用户,普通用户原价购买,vip九折购买。我们可以抽象Use

2017-12-22 22:24:39 222

原创 初阶并发编辑之——线程状态与线程中断

在阻塞中终结  线程的六种状态(网上有说五种,Thinking in Java中说四种,我这里以jdk1.8的API为主,jdk1.5开始都是6种):  1)新建NEW   当线程Thread()被创建后,调用start()方法之前,尚未启动的线程处于此状态。   2)可运行RUNNABLE   线程调用start(),并占有CUP时间,在Java虚拟机中执行的线程处于此状态,但它可能正在

2017-12-19 21:03:42 187

原创 初阶并发编辑之——共享受限资源

不正确的访问资源  我们先看一个例子:class addOne implements Runnable{ private static int value=0; @Override public void run() { //System.out.println(Thread.currentThread()); try { T

2017-12-14 22:04:40 233

原创 初阶并发编辑之——基本的线程机制

定义任务Runnable接口与Thread类   接口Runnable只有一个方法run(),其签名为:public void run()。可以发现方法run无参数,不返回任何值。一般用Runnable的实现类去描述任务,如下实例://from Thinking in Javaclass LiftOff implements Runnable{ protected int countDo

2017-12-13 22:23:32 161

原创 通配符的继承关系

通配符   在类表达式中class Facher{ private int first; public Facher(){} public void spack(String s){ System.out.println("Facher Spack "+ s); }}class Child extends Facher{ public

2017-12-08 11:12:03 495

原创 浅谈内部类

内部类  定义在一个类中的另一个类叫内部类。内部类的特性如下:   1) 内部类方法可以访问该类定义所在的作用域的数据,包括私有域。   2) 内部类可以对同包下的其他类隐藏。   3) 当想要定义一个回调函数且需要大量代码使用匿名内部类比较便捷。   一个比较典型的链表类,结点时她的内部类:class LinkedList{ ... public class Iterat

2017-12-08 11:05:05 138

原创 java动态代理机制

动态代理机制   代理一般在编译时无法确定实现哪个接口时才有必要使用。代理类可以在运行时创建全新的类,这样就可以利用代理可以在运行时创建一个实现了一组给定接口的新类。然而不能在运行时定义新类方法的新代码。就需要一个实现接口InvocationbHandler(调用处理器)的类的对象,这个接口只有一个方法,方法签名为:   Object invoke (Object proxy,Method m

2017-12-01 21:34:35 182

原创 接口与接口回调

接口的概念   关键字interface声明一个接口,接口不是类,而是一组对类的需求描述。接口使抽象的概念更进一步,接口就像是一个成产类的工厂模具,实现类都必须按照他的要求去编译,或者说接口是建立类的协议。 接口的特性   1)接口不能new一个对象,他不是类   2)接口的方法没有body,既不能有{};   3)实现类使用关键字implements实现对应接口。实现类必须实现接口的所有

2017-11-29 16:36:47 20530 5

原创 java继承与多态

我们不妨将职工抽象化,每一种职位都是同一等级的子类,并重写抽象方法getSalary()。这些元素的声明类型都是抽象类。我们都知道调用类的非静态方法和非私有方法需要动态绑定,编译器会查看所调用方法的的引用是的实际类型。但是,抽象类是没有实例的呀,当遍历这些元素调用getSalary()方法,编译器会去调用哪个方法呢?没错,编译器会根据元素的实际类型来调用对应的方法,就无需强制类型转换。抽象类的作用就相当于将这些有相似

2017-11-27 20:34:49 300

原创 关键字final在java中的运用

java final关键字通常指的是“无法改变的”,但有时候应用在不同地方会产生误解,下面详细介绍在三种情况下的final:   一 final 数据   1 当对常量运用final时表示该常量永不改变,我想这个就不用过多表述,在类中一般与关键字static一起使用。public static final int PI = 3.1215026 就是一个最典型的对常量进行定义的方式。一般这种常量需

2017-11-27 13:28:54 293

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除