Java并发编程:volatile关键字的使用

volatile也是实现多线程并发编程常用的关键字,但是在使用频率上面不如加锁机制。实际上volatile和加锁是Java语言内在的两种同步机制,只是volatile关键字修饰的变量同步性稍差一些。 Java语言规范第三版中对volatile的定义如下: Java语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排它锁单独获得这个变量。Java语言提供了volatil […]

阅读更多 »

Java 如何停止一个线程

在Java中如何才能正在启动一个线程Thread,实际上使用的是线程Thread的start()方法。但是如何停止一个正在运行的线程呢?线程Thread类提供了stop()方法,可是实际开发中几乎没有使用过线程Thread自己提供的stop()方法,因为stop()方法从JDK1.2开始就已经Deprecated,下面是JDK中对stop()方法的描述。 该方法具有固有的不安全性。用 Thread […]

阅读更多 »

Java 多线程之Callable、Future以及FutureTask

在以前的文章中介绍过创建线程的两种方式:一种直接继承Thread类,另外一种就是实现Runnable接口。这两种方式也是从接触Java以来接触到的最常见的创建线程的方式,但是这两种方式创建线程都有一个缺陷:在执行时完成后无法返回执行结果,就是没有返回值,这也是最致命的缺陷。如果真的需要执行结果,一般情况下或者使用一个共享变量或者线程间通信,使用相当麻烦。除此之外,创建的线程无法抛出任何的异常。 从 […]

阅读更多 »

Java浅谈克隆clone

为什么需要克隆clone 若需修改一个对象,同时不想改变调用者的对象,就要制作该对象的一个本地副本。这里我们讨论的是对象,如果是基本数据类型,就很简单了,只需要重新定义一个变量名称然后赋值即可。如果是一个对象,可能有些人说了,我直接new一个新的对象就可以了,这确实是一种解决方式,可是有一些在开发中需要使用的对象经过若干逻辑其中的属性早已经不再是初始值了。如果new不行,直接重新声明一个新名称使用 […]

阅读更多 »

Java 设计模式-代理模式

简介 在23中开发模式中,代理模式也是一种非常常见的开发模式。代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。它可以在目标对象实现的基础上,增强额外的功能操作,扩展目标对象的功能。 为了保持行为的一致性,一般情况下代理类和委托类会实现相同的接口,所以对于外部访问者而言几乎看不到差别,通 […]

阅读更多 »

Java反射进阶

上一篇文章介绍了反射的部分基础知识点,本篇文章继续进一步探讨反射,主要涉及两方面:反射操作泛型以及反射操作注解。事实上反射操作注解跟上一篇类似,只是使用了field.getAnnotation()这种方式,所以本篇文章重点还在于对泛型的处理,在此之前我们先介绍一下java.lang.reflect.Type这个类。 Type的简单介绍 一般在使用反射的时候都是直接使用Class类,后来接触Gson […]

阅读更多 »

Java反射基础

一般在开发中很少自己刻意去使用反射,但是在某些情况下反射却显得异常有用。在Java开发中反射几乎可以称之为万能公式,因为在某些时候它确实是万能的。一些常用的开发框架如Gson以及Web开发的SSH框架底层几乎无一例外采用反射机制,再如目前比较流行的使用注解的方式底层解析也是使用反射,所以反射几乎是学习Java进阶的不二之路。 反射简介 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个 […]

阅读更多 »

Java”失效”的private修饰符

Java语言开发中有四种权限修饰符:public、protected、default以及private,对于private修饰符最常见的一种解释就是它修饰的方法或者属性只对本类自身可见。但是当Java引入内部类以后,好像权限修饰符与它已经没有了明显的关联,不可否定内部类的引入是一个很实用的特性,可是有些程序员认为它却违背了Java语言比C或C++更加简单的设计理念,在某些意义上来说也确实如此。本篇 […]

阅读更多 »

Android自定义BaseAdapter最佳实践

虽然现在很多新的项目都在使用RecyclerView,但是很多开发者在一些场景中还是倾向使用ListView或者GridView,然后就是需要写许多的Adapter。一次项目组在新启动一个新项目的时候,有个同事拿来了一个网上说的万能Adapter,在使用的时候发现即使在单个视图类型一旦逻辑判断比较复杂情况下非常不方便,更不用说在适配器Adapter中使用多视图类型了,这里仅是个人观点,也许没有掌握 […]

阅读更多 »
1 2 3 4 5 11