- 浏览: 147956 次
- 性别:
- 来自: 北京
最新评论
-
august_000:
很有道理,我已经亲自测试过了:
public class ...
单例模式之线程安全解析 -
Chris_bing:
一个单例有这么多名堂,最后那个内部类的解决方案很有创意啊,受教 ...
单例模式之线程安全解析
文章列表
在这一篇中,将对接口及面向接口编程有个大致的介绍,着重在于思想上的讲解。
我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到“面向接口编程”这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这些疑问。
1.面向接口编程和面向对象编程是什么关系
首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分。或者说,它 ...
public,private,protected区别
Java中的访问控制
表1-1
可见/访问性在同一类中同一包中同一包子类中不同包子类中不同包中public yes yes yes yes yesprotected yes yes yes yes no默认 yes yes yes no noprivate yes no no no no
(1) 在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定p ...
面向对象的3个基本要素:封装、继承、多态
面向对象的5个基本设计原则:
单一职责原则(Single-Resposibility Principle)
其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、 ...
1、比较常用
try{
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
String url="jdbc:mysql://localhost:3306/databasename";//数据库连接子协议
Connection conn=DriverManager.getConnection(url,"username","password" ...
简单来说,
进程是应用程序的一次执行,是具有一定独立功能的程序关于某个数据集合上的一次运行活动。
线程可以理解为进程中的执行的一段程序片段。
区别和联系:
1、进程是操作系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位。
2、进程有独立的地址空间,在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
线程间的通信方法:
1、同一进程的线程之间通信的最简单办法就是使用全局变量和信号量;
2、 ...
本文综合网上资料以及代码时间,对要求延迟加载和线程安全的单例模式做了如下分析。
自励共勉。
面试的时候,常常会被问到这样一个问题:请您写出一个单例模式(Singleton Pattern)吧。
单例的目的是为了保证运行时Singleton类只有唯一的一个实例,最常用的地方比如拿到数据库的连接,Spring的中创建BeanFactory这些开销比较大的操作,而这些操作都是调用他们的方法来执行某个特定的动作。
很容易,顺手写一个《Java与模式》中的第一个例子:
public final class Singleton {
private stati ...
原文:http://en.wikipedia.org/wiki/Anti-pattern
译文:http://www.yeeyan.com/articles/view/27472/7244
[前言]
design pattern是设计模式,通常是前人在软件开发过程中积累出来的解决一些问题的现成套路,按它们来做可获益无穷。anti-pattern也是一些现 ...
在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现。
总的说来,Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection& ...
1.hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable同步的,而HashMap是非同步的,可以使用Colletcions进行同步
Map Collections.synchronizedMap(Map m);效率上HashMap比Hashtable要高。
3.hashMap允许空键值,而hashTable不允许。
4.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。
其实在编译期不会有任何的不一样,会照样执行, ...
程序段2:
1.Object sobj = new Object ( ) ;
2.Object sobj = null ;
3.Object sobj = new Object ( ) ;
4.sobj = new Object ( ) ;
问:这段代码中,第几行的内存空间符合垃圾收集器的收集标准?
答:第1行和第3行。因为第2行为sobj赋值为null,所以在此第1行的sobj符合垃圾收集器的收集标准。而第4行相当于为sobj赋值为null,所以在此第3行的sobj也符合垃圾收集器的收集标准。
如果有一个对象的句柄a,且你把a作为某个构造器的参数,即 ...
JAVA子父类内部程序的执行顺序
******************************************************************
一、父类的静态成员赋值和静态块
二、子类的静态成员赋值和静态块
三、父类的成员赋值和初始化块
四、父类的构造方法
五、子类的成员赋值和初始化块
六、子类的构造方法
*********************************************************************
程序实例:
public class Student2 extends User2{
static{//静态块
S ...
==========================它们的区别===========================
1. HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的,只不过Set用的只是Map的key
2. Map的key和Set都有一个共同的特性就是集合的唯一性.TreeMap更是多了一个排序的功能.
3. hashCode和equal()是HashMap用的, 因为无需排序所以只需要关注定位和唯一性即可.
a. hashCode是用来计算hash值的,hash值是用来确定hash表索引的.
b. hash表中的一个索引处存放的是一张链表, ...
动态语言&动态类型语言&静态类型语言
- 博客分类:
- 网摘随笔
动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。
静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
补充:
强类型语言是一旦变量的类型被确定, ...
原文地址:http://www.nowamagic.net/librarys/veda/detail/2050
如何高效地阅读技术类书籍与博客 影像阅读法
阅读是自我提升的一个有效方法,阅读书籍、阅读博客都是我们技术提升的重要手段之一。但是阅读的质量,阅读的方 ...
算法:如何用一个语句判断一个整数是不是二的整数次幂?
int ispow2(int x) {
return x && !(x & (x-1));
}
注:!(x & (x-1))可判断非0整数是否是2的整数次幂,加上x && 可判断0.