`
DavidIsOK
  • 浏览: 74276 次
社区版块
存档分类
最新评论
文章列表
一、线程的先来后到我们来举一个Dirty的例子:某餐厅的卫生间很小,几乎只能容纳一个人如厕。为了保证不受干扰,如厕的人进入卫生间,就要锁上房门。我们可以把卫生间想象成是共享的资源,而众多需要如厕的人可以被视作多个线程。假如卫生间当前有人占用,那么其他人必须等待,直到这个人如厕完毕,打开房门走出来为止。这就好比多个线程共享一个资源的时候,是一定要分出先来后到的。有人说:那如果我没有这道门会怎样呢?让两个线程相互竞争,谁抢先了,谁就可以先干活,这样多好阿?但是我们知道:如果厕所没有门的话,如厕的人一起涌向厕所,那么必然会发生争执,正常的如厕步骤就会被打乱,很有可能会发生意想不到的结果,例如某些人 ...
                                                                              java中的多线程 java 线程基本介绍 1、进程与线程的区别 进程是指一个内存中运行的应用程序,每个进程都有一块独立的内存空间,一个进程包含一到多个线程。 每个线程都有他所属的进程,每个线程也就是该进程的一条执行路径,线程之间是高频率快速轮换执行的,‘同时’执行只是给人的感觉。 2、Ja
这次是关于java nio,有一些重复的发的地方。本文中的源代码可以在此处下载,下载链接为:http://115.com/file/cltlj10i#nio-src.zip 本文简介: JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。 输入/输出:概念性描述 I/O 简介 ...
代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般涉及到的角色有:  抽象角色:声明真实对象和代理对象的共同接口;  代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。  真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。 一个简单的例子如下:
之前已经推荐过Google的Java编码规范英文版了: http://google-styleguide.googlecode.com/svn/trunk/javaguide.html 虽然这篇文章的英文很简单,但是最近发现有人翻译了这篇文章,所以专门写一篇文章推荐一下: http://hawstein.com/posts/google-java-style.html 同时为了避免原始文章丢失,所以转了一下: 作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权:自由转 ...
有关Java对象的序列化和反序列化也算是Java基础的一部分,下面对Java序列化的机制和原理进行一些介绍。 Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这 ...
◆Multicatch:开发者现在能够在一个catch代码块中捕获多个异常类型; ◆Final Rethrow:它可以让开发者捕获一个异常类型及其子类型,并且无需向方法声明中增加抛出子句,就能重新将其抛出。 过去我们在捕获多个异常类型时,往往会使用以下类型的代码: }catch(FirstExceptionex){ logger.error(ex);
为什么匿名内部类参数必须为final类型 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的 为什么JAVA中要加上一条限制:只能访问final型的局部变量? JAVA语言的编译程序的设计者当然全实现:局部内部类能访问方法中的所有的局部变量(因为:从理论上这是很自然的要求),但是:编译技术是无法实现的或代价极高,困难在何处?到底难在哪儿? 局部变量的生命周期与局部内部类的对象的生命周期的不一致性! 设方法f被调用, ...
Nested Classes定义 在java语言规范里面,嵌套类(Nested Classes)定义是: A nested class isany class whose declaration occurs within the body of another class orinterface. A top level class is a class that is not a nested class. 说的简单一点,就是定义在类里面的类。一般把定义内部类的外围类成为包装类(enclosing class)或者外部类 嵌套类分类 根据nestedclass定义的地方,可 ...
java中queue的使用 Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了 ...
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力。 面向对象编程(OOP) Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。
1.子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base(){ System.out.println("Base"); } } public class Checket extends Base { Checket(){ super();//调用父类的构造方法,一定要放在方法的首个语句 System.out.println("Checket"); } public static void main(String ar ...
1.static 关键字: 1)static修饰的变量(类变量)会被该对象所有的实例共享(包括子类)。在某个对象的所有实例的整个生命周期都只实例化一次,换句话说,静态变量是属于类,而不是属于对象(类的实例)。如果该关键字修饰的变量可见性为Public,则他的子类也共享该变量并可以对该变量进行更改,所以一般我都吧static变量设为private,如果要让其成为真正的全局变量可以用public 修饰。上节中如果改成public final double PI=3.14,则所有实例都可以共享该常量,且不能进行修改。即应用程序常量。 代码: class Ball { privates ...
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。package com.hxw.T2; public class ThisTester { private int i=0; //第一个构造器:有一个int型形参 ThisTester(in ...
Global site tag (gtag.js) - Google Analytics