`
lindingyu
  • 浏览: 29047 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论
文章列表
Neutron背景  Quantum(Neutron的前身)在Openstack的Folsom(2012年9月发布)版本正式发布,其实它已经作为试用组件包含在之前的Essex版本中。在Grizzly里功能得到了增强。因为商标侵权的原因,Openstack在Havana版本上将Quantum更名为Neutron, ...
这几天在学习Openstack的Cinder项目,记录学习笔记如下。 Cinder从Openstack的Folsom版本(2012年9月发布)开始出现,用以替代Nova-Volume服务,Cinder为Openstack提供了管理卷(volunme)的基础设施。 按Openstack官方文档的表述,Cinder是受请求得到、自助化访问的块储存服务,即Cinder有两个显著地特点,第一,必须用户提出请求,才能得到该服务;第二,用户可以自定义的半自动化服务。Cinder实现LVM(逻辑卷管理),用以呈现存储资源给能够被Nova调用的端用户。简而言之,Cinder虚拟化块存储设备池,提供端用户 ...
       线程同步1中解决的是方法appendChar()在不同线程中改变StringBuilder对象而引发的不同步问题。进一步的问题是,如果现在有两个不同的方法A()和B(),他们在不同的线程中改变StringBuilder对象,这样引发的线程不同步该怎样避免?         解决上述问题的一种方法是线程中的沉睡(wait())和唤醒(notify())机制。同一时间要让方法A()和B()中的一个处于唤醒状态,一个处于沉睡状态。一个线程执行完毕,沉睡前唤醒另一个线程,如此往复,以保证线程的同步。        这就涉及到了多线程同步问题中一个很经典的案例——生产者和消费者。生产 ...
最近看了许多线程同步的内容,这里,简要记录我学习线程同步的过程。线程的概念就不说了,着重写遇到的各种问题。        首先要弄清楚的是,线程同步是什么情况,为什么会出现不同步。比如说我(被调用的对象)现在有100块钱,并告知了朋友A(线程1)和朋友B(线程2),朋友A问我借了50,于是我就只有50块钱了,而朋友B并不知道,准备把我的100块钱全部借走,但突然发现我只有50块钱,不够借了。这个过程就造成了线程不同步。         当多个线程调用同一个对象的时候,如果不采取措施,被调用对象的实际内容与线程中储存的该对象的内容很容易出现差异,即信息不同步。         下面的代码 ...
面向对象编程有三个特征,即封装、继承和多态。     封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。     继承是为了重用父类代码,同时为实现多态性作准备。那么什么是多态呢?     方法的重写、重载与动态连接构成多态性。Java之所以引入多态的概念,原因之一是它在类的继承问题上和C++不同,后者允许多继承,这确实给其带来的非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只允许单继承,派生类与基类间有IS-A
这段时间学习效率很低,论文进展的很缓慢,思考了这些“不务正业”的事情,就当边玩边学吧。前不久在网上看到一个问题, 0出现的总次数__,1出现的总次数__ 2出现的总次数__,3出现的总次数__ 4出现的总次数__,5出现的总次数__ 6出现的总次数__,7出现的总次数__ 8出现的总次数__,9出现的总次数__最初的分析,就是要得到一个长度为10的数组int[],统计10个元素出现的次数后,数字i出现的次数+1正好等于int[i]的数值。比如数组10个元素中数字1出现了5次,那么int[1]的值为6(因为题目中红色数字0~9各出现了一次)。所以,要解决的问题就是,要怎么去寻找符合要 ...
JAVA中的输入流和输出流是装载和运送信息的管道,管道一端接到信息来源,另一端连接信息的目的地。文中分别介绍输入(InputStream)和输出流(OutputStream)        1、InputStream抽象类,是所有字节输入流的超类,直接继承Object,不能用构造器创建对象,只能通过子类创建对象。                                                                 字节输入流相关类的继承图         2、FileInputStream类,文件输入流,构造器创建对象时要传入文件对象或文件路径,即把输入流信息 ...
      MVC是一种目前广为流传的经典设计模式,具体是模型(Model)—视图(View)—控制(Control)三方面结合起来的设计模式。这样设计的目的是:实现Web系统的职能分工。在实际的开发过程中,一个团队可以进行模块分工, ...
一,AJAX的概念              AJAX是一种局部界面更新方式。简单的说,在B/S格式上给用户C/S的界面观感。AJAX的英文全称是Asynchronous JavaScript and XML,(异步JavaScript和XML技术)。这里稍微解释下:  异步是指浏览器向服务器发送请求是异步的,请求发送出去后,不必等得响应便可发送下一条请求(有些多线程的意思),   JS是AJAX的编程语言,异步JS是强调AJAX发送请求的方式。    XML的是指可扩展的标记语言(Extensible Markup Language),AJAX的响应返回都是XML格式的标记语言,方便在网页 ...
 一.概念说明      先这样理解一个项目,一个项目是由多个子程序(完成各种功能的类)组成,而一个子程序又是由多个模块(各种方法)组成。 这样,低耦合可以理解成项目中子程序之间的联系程度较低,而高耦合则是某个子程序中模块之间的联系程度较紧密。     高内聚和低耦合 是OOP编程典型的特点,也是评价设计模式好坏的重要标准。            这里必须提到 封装和继承 的问题,封装和继承是OOP编程显著的优点,能够大量的简化程序员的工作,让程序变得简单明了。    定义这里不再赘述,且谈点封装和继承的作用所在。        封装,形象的说就是将 可以完成某些功能的程序 给封起来。这 ...
1.Ip,port错误,port被占用       每台电脑都有一个固定的IP,而仅用IP地址,无法区分电脑的多层次应用,因此,每个服务器会有一个唯一的port,值是范围在1~65536之间的整数。 如果常见服务器时,用的port是在1~65536之外,则会port错误,出现异常。 将port改到1~65536的可用范围内便可解决问题。     代码示例: Class  RemoteServer public void setUpServer(int port){ try{ //创建服务器对象 java.net.ServerSocket ser = new java.net.Ser ...
First~~~~   //树的节点类 public class NodeTree {      public NodeTree left;      public NodeTree right;      public NodeTree parents;      public NodeData data;           //用构造器直接传入数据      public NodeTree(NodeData data){     this.data = data;      } } Second~~~~ //数据类 public class NodeData { publ ...
什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承、多态、重载和重写。 继承 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封装、继承、多态的其中之一,我们在使用JAVA时编写的每一个类都是在继承,因为在JAVA语言中,java.lang.Object类是所有类最根本的基类(或者叫父类、超类),如果我们新定义的一个类没有明确地指定继承自哪个基类,那么JAVA 就会默认为它是继承自Object类的。 我们可以把JAVA中 ...
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。 引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。 下面举例说明: 传值---传递基本数据类型参数 public    class           PassValue{     static void exchange(int a, int b){//静态方法,交换a,b的值         int temp; ...
1.Array 即数组     a.必须定义长度,定义方法可分为两种              一种仅定义数组对象名,初值为默认值  若用原始类型定义 则默认值为0,若是引用类型定义初值为null                   如      int[] ia = new int[num];            另一种是创建数组的同时定义数组内容               如      String[] ib = new String[num]{"直线","矩形","圆"};          数组是有序的,带有线性表 ...
Global site tag (gtag.js) - Google Analytics