Java
长安想胖
平常心
展开
-
使用Synchronized关键字同步类方法
synchronized关键字有两种用法,一种是只用于方法的定义中,另外一种是synchronized块,我们不仅可以使用synchronized来同步一个对象变量,你也可以通synchronizedl来同步类中的静态方法和非静态方法。synchronized块的语法如下:public void method(){ synchronized(表达式) {原创 2012-02-26 17:44:37 · 7532 阅读 · 0 评论 -
调停者模式实现对象间简单消息通信
什么是调停者模式?是书上的解释是,调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相互作用。从而保证这些相互作用可以彼此独立地变化。 今天主要是用调停者模式实现简单消息通信,写了简单的一个demo,拿过来分享下。 1.首先定义个消息对象pub原创 2013-07-08 11:17:58 · 1222 阅读 · 0 评论 -
Java synchronized详解
之前写过一篇同步问题,今天看到一篇也写的比较好,转载下!第一篇:使用synchronized在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题。在Java中内置了语言级的同步原语--synchronized,这也大大简化了Java中多线程同步的使用。我们首先编写一个非常简单的多线程的程序,是模拟银行中的多个线程同时对同一个储蓄账户进行存款、取转载 2013-05-29 16:44:28 · 908 阅读 · 0 评论 -
BigDecimal除法注意事项
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常的,异常如下:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at java.math.BigDecimal.divide(Unknown S转载 2012-11-06 12:12:28 · 25844 阅读 · 2 评论 -
java-覆盖equals时规则不容忽视
尽管object是一个具体类,涉及它就是为了扩展它,它所有的非final方法(equals,hashCode,toString,clone和finalize)都有一些通用的规定,因为它们被设计就是用来覆盖(override)的。任何一个类,它在覆盖这些方法的时候,都有责任遵守这些约定。本篇文章主要讲解覆盖equals方法需要遵守的规定覆盖equals方法看起来很简单,但是有许多覆盖方法会导原创 2012-09-13 15:36:10 · 7077 阅读 · 1 评论 -
JAVA字符串格式化-String.format()的使用
常规类型的格式化String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale原创 2012-09-10 11:01:10 · 1206818 阅读 · 84 评论 -
java的匿名内部类用法
关于java内部类的说明,简单的定义就是定义在另一个类内部的类。原因是:1.内部类可以访问外部类方法变量,包括私有数据。2.对于同一个包里面的其他类,内部类可以很好的隐藏起来。3.匿名内部类可以很方便的实现回调。4.使用内部类可以很方便的编写事件驱动程序。注意:定义在类中方法之外的内部类分为实例内部类和静态内部类,实例内部类自动持有外部类的引用,可以访问外部类所有变量,但是原创 2012-08-14 10:53:31 · 1330 阅读 · 0 评论 -
GridView 横向滚动
GridView和ListView都是android比较重要的控件,但是横滚的控件不是太多。这里介绍怎么把GridView横向滚动起来,看到其他网友也有相应的解决方法,自己只是把这些知识总结一下,供大家参考!首先让GridView横向滚动需要HorizontalScrollView这个控件,例如:<LinearLayout xmlns:android="http://schemas原创 2012-08-07 23:16:26 · 29416 阅读 · 7 评论 -
Java多线程编程环境中单例模式的实现
Abstract 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制,也就是说只有当使用到这个实例的时候才会创建这个实例,这个好处在单例模式中得到了广泛应用。这个机制在single-threaded环境下的实现非常简单,然而在multi-threaded环境下却存在隐患。本文重点介绍惰性加载机制以及其在多线程环境下的使用方法。(作者number转载 2012-03-23 15:32:22 · 999 阅读 · 0 评论 -
监听者模式实现对象通信
什么是监听者模式?简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 在Java语言的java.util库里面,提供了一个Observable类以及一个Observer接口,构成Java语言对观察者模式的支持。 Observer接口原创 2013-07-12 15:38:35 · 1593 阅读 · 0 评论