读别人代码时遇到的,起初没明白过来这是怎么回事,后来忽然想明白了. if (FAILED(DirectInput8Create(appInstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void **)&m_pDI,NULL))) { MessageBox(NULL,"创建DirectInput接口对象失败!","错误",MB_OK); return false; } =================4行 …
题目补充: 创建一个接口Shape,其中有抽象方法area,类Circle .Rectangle实现area方法计算其面积并返回. 又有Star实现Shape的area方法,其返回值是0,Star类另有一返回值boolean型方法isStar: 在main方法里创建一个Vector,根据随机数的不同向其中加入Shape的不同子类对象(如是1,生成Circle对象: 如是2,生成Rectangle对象:如是3,生成Star对象).然后将Vector中元素依次取出,判断其是否为Star类.如是返回其…
Actor是一种高并发处理模型,每个Actor都有着自己的状态有序消息处理机制,所以在业务处理的情况并不需要制定锁的机制,从而达到更高效的处理能性.XRPC是一个基于远程接口调用的RPC组件,它可以简单地实现高性能的远程接口调用:XRPC在创建远程接口时是支持针对接口创建对应的Actor实例.当创建接口Actor后,所有Client针对这一例实例Actor的所有方法调用都是有序处理.以下介绍如何在XRPC创建并使用Actor 什么场景适用于Actor 既然每个Actor都有着自己的状态和顺序处理…
1.考虑用静态工厂方法代替构造器 类的一个实例,通常使用类的公有的构造方法获取.也可以为类提供一个公有的静态工厂方法(不是设计模式中的工厂模式)来返回类的一个实例.例如: //将boolean类型转换为Boolean类型 public static valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 使用静态工厂方法代替构造器的优势: 静态工厂方法有名称,更易读.静态工厂方法能够使用方法名称进行自注释,来描述被返回的对象…
在head first 设计模式中 用到了很多很多接口对象 首先澄清一个问题,就是接口不仅可以声明对象,而且可以把对象实例化,还可以当做参数被传入. 一.接口回调 这就是继承中的向上转型.父类 FL=new 子类():只不过这里的父类就是interface接口.(个人认为这里不管是class的override还是interface的重写,都是一样的用法) 可以把实现某一接口类创建的对象的引用赋给该接口声明的接口变量,那么该 接口变量就可以调用被类实现的接口中的方法.实际上,当接口变量调用被类实现…
第二章 创建和销毁对象 1.考虑用静态工厂方法代替构造器 四大优势: i. 有名称 ii. 不必在每次调用它们的时候都创建一个新的对象:   iii. 可以返回原返回类型的任何子类型的对象: JDBC(Java Database Connectivity) 服务提供者框架(Service Provider Framework) 服务接口.提供者注册API.服务访问API.服务提供者接口(负责创建其服务实现的实例): iv. 在创建参数类型实例的对象,它们使代码变得更加简洁 下面是一个Boolea…
利用Statement接口实现数据表的更新和查询操作 -取得Statement接口对象:Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException 一个Connection 可以打开多个Statement -数据更新操作:int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException 返回int…
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163791.aspx 原文发布日期: 9/19/2005 原文已经被 Microsoft 删除了,收集过程中发现很多文章图都不全,那是因为原文的图都不全,所以特收集完整全文. 目录 前言 CLR启动程序(Bootstrap)创建的域 系统域(System Domain) 共享域(Shared Domain) 默认域(Default Domain) 加载器堆(Loader Heaps) 类型原理 对象…
前言 主要学习创建和销毁对象: 1.何时以及如何创建对象 2.何时以及如何避免创建对象 3.如何确保它们能够适时地销毁 4.如何管理对象销毁之前必须进行的清理动作 正文 一.用静态工厂方法代替构造器 获取类的实例的常用方法有: 1.公有的构造器 2.公有的静态工厂方法 下面通过Boolean类(基本类型boolean的包装类)的简单示例来学习: //公有的构造器 public Boolean(String s) { this(parseBoolean(s)); } //公有的静态工厂方法 pub…
下面到了接口对象的注入了解冻吧,现在才是我们的重点,这才是ioc的核心思想,上面的都是android的辅助1.5 对象依赖问题 我们先来将一下对象对象依赖的重要性,很多同学可能只学了android没学过javaee ,跟没听过spring的强大例如中我们dhroid库的dhnet网络模块中在网络加载时自动显示对话框,但是我们不能用默认的对话框,到了真正的项目框基本中是需要定制的 我们库中有不知道对话框长什么样,但是又要用 这时我们可以面向接口编程我们定义一个接口IDialog public in…
前言 SystemDomain, SharedDomain, and DefaultDomain. 对象布局和内存细节. 方法表布局. 方法分派(Method dispatching). 因为公共语言运行时(CLR)即将成为在Windows上创建应用程序的主角级基础架构, 多掌握点关于CLR的深度认识会帮助你构建高效的, 工业级健壮的应用程序. 在这篇文章中, 我们会浏览,调查CLR的内在本质, 包括对象实例布局, 方法表的布局, 方法分派, 基于接口的分派, 和各种各样的数据结构. 我们会使用…
最近在研读<Effective Java>一书,读书不做点笔记,感觉很容易就忘掉,于是用本篇博客来记录阅读此书的笔记. 郑重声明: 由于是<Effective Java>一书的笔记,所以大部分内容基本来自此书,还有一小部分是自己的理解. 第1条 考虑用静态工厂方法代替构造器 一般来说,获取一个类的实例,大家想到的都是通过该类的公有构造函数来new 一个实例,而第一条推荐我们可以考虑使用静态工厂方法来创建实例,这里的工厂方法并不直接对应于设计模式中的工厂方法模式. 静态工厂方法与构造…
让对象的创建与销毁在掌控中. Item 1: 使用静态工厂方法而非使用构造函数 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 优势: 1. 方法名+参数名,相较于构造函数,能更好的描述返回对象: BigInteger(int, int, Random) BigInteger.probablePrime(int, int, Random) 2. 不会像构造函数那样,每次调用…
1 构造器 => 静态工厂方法 (1)优势 静态工厂方法有名字 静态工厂方法不必在每次被调用时都产生一个新的对象 静态工厂方法能返回原返回类型的任意子类型的对象 静态工厂方法根据调用时传入的不同参数而返回不同类的对象 静态工厂方法返回对象的类不需要存在(SPI架构) (2)限制 没有公有或者保护构造方法的类不能子类化(但是可以鼓励我们使用组合模式,而不是继承模式) 静态工厂方法难以发现 (3)常用静态工厂方法命名 from:传入单个参数,返回该类型实例 Date d = Date.from(in…
  第 1 条:用静态工厂方法代替构造器 对于类而言,获取一个实例的方法,传统是提供一个共有的构造器. 类可以提供一个公有静态工厂方法(static factory method), 它只是一个返回类的实例的静态方法. 示例:Boolean的装箱类,将boolean基本类型值转换成一个Boolean对象引用 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态工厂方法与构造…
分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨头 缉毒:用鼻子侦测毒 4.定义测试类: 使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法 package com.itheima5; //抽象动物类 public abstract class Animal { public abstract void roar(); public abstr…
接口 对象名1 = new 类名和类名 对象名2 = new 类名的区别是什么? 实例 /** *Person.java 接口 */ public interface Person { void introduce(); } /** * Programmer.java 实现类1 */ public class Programmer implements Person{ @Override public void introduce() { System.out.println("我是一名Java…
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 通过私有构造器强化不可实例化的能力 第5条 避免创建不必要的对象 第6条 消除过期的对象引用 第7条 避免使用终结方法 第1条 考虑用静态工厂方法代替构造器 对于类而言, 最常用的获取实例的方法就是提供一个公有的构造器, 还有一种方法, 就是提供一个公有的静态工厂方法(static factory…
本篇主要总结的是<Effecticve Java>中关于创建和销毁对象的内容. 比如: 何时以及如何创建对象 何时以及如何避免创建对象 如何确保及时销毁 如何管理对象销毁前的清理动作 考虑用静态工厂方法代替构造器 使用静态工厂的优势: 有名称 不必每次调用的时候都创建一个新的对象 返回原返回类型的任何子类型对象 在创建参数化类型实例时,代码更加简洁. 使用静态工厂的缺点: 类如果不包含公有的或者受保护的构造器,就不能被子类化 与其他的静态方法实际上没有任何区别 举个例子: public cla…
Num1:考虑用静态工厂方法代替构造器 对于类而言,常见的方法是提供一个公有的构造器,但其实还有一种方法叫做静态工厂方法(static factory method),它只是一个返回类的实例静态方法. 目前比较流行的规范是把静态工厂方法命名为valueOf或者getInstance. valueOf:该方法返回的实例与它的参数具有同样的值,例如: Integer a=Integer.valueOf(100); //返回取值为100的Integer对象 从上面代码可以看出,valueOf()方法能…
[源码下载] 不可或缺 Windows Native (19) - C++: 对象的动态创建和释放, 对象的赋值和复制, 静态属性和静态函数, 类模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 对象的动态创建和释放 对象的赋值和复制 静态属性和静态函数 类模板 示例1.CppEmployee 类CppEmployee.h #pragma once #include <string> using namespace std; namespace NativeD…
1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&…
一.考虑用静态工厂方法替代构造函数 代表实现:java.util.Collection Framework Boolean类的简单例子: public static Boolean valueOf (boolean b){ return(b ? Boolean.TRUE: Boolean.FALSE); } 优点: 1.与构造函数不同,静态工厂方法具有名字. 一个类看起来需要多个构造函数,并且它们的运行特征相同,应考虑使用静态工厂方法来替代其中一个或多个构造函数,并且要慎重选择它们的名字以明显标…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4254987.html 第一章      前言 略... 第二章      创建和销毁对象 1.            考虑用静态工厂方法代替构造器 条)调用私有构造器,如果要抵御这种攻击,可以修…
引用自这位朋友:http://blog.sina.com.cn/s/blog_6a6b14100100zn6r.html 你知道在java中除了8中基本类型外,其他的都是类对象以及其引用.所以 "xyz "在java中它是一个String对象.对于string类对象来说他的对象值是不能修改的,也就是具有不变性. 看: String   s= "Hello "; s= "Java "; String   s1= "Hello "…
输入是一个对象inputObj,接口对象.Send(inputObj),对端接收之后解包成outputObj(与inputObj应相同),触发onPackageReceive事件 事件 public event DataServiceHandler onPackageReceived;//收包事件:   public event DataServiceHandler onPackageSent;//发包事件:        public event DataServiceHandler onPe…
序言 <effective java>可谓是java学习者心中的一本绝对不能不拜读的好书,她对于目标读者(有一点编程基础和开发经验)的人来说,由浅入深,言简意赅.每一章节都分为若干的条目,完全可以利用平时的零碎时间片来阅读和思考.仅仅是阅读了第二章,创建和销毁对象,从静态工厂.构造器等基础得不能再基础的知识,却使我有一种特别的感觉,就如同见到一位会使我怦然心动的女生,那种惊喜,是那么的美妙,却也是那么的震撼.原来女生还能够如此地美,原来书,所谓让人头晕的编程类书籍,可以写得如此地好,直击心灵,…
背景 去年就把这本javaer必读书--effective java中文版第二版 读完了,第一遍感觉比较肤浅,今年打算开始第二遍,顺便做一下笔记,后续会持续更新. 1.考虑用静态工厂方法替代构造器 优点 静态工厂方法与构造器不同的第一大优势在于,他们有名称,比多个通过不同参数的构造器更具有辨识度. 静态工厂方法与构造器不同的第二大优势在于,不必在每次调用他们的时候都创建一个新对象. 静态工厂方法与构造器不同的第三大优势在于,他可以返回原返回类型的任何子类型的对象 服务提供者框架. ```java…
hibernate是orm框架的一种,orm即Object Relational Mapping,对象映射关系,其主要作用是将数据库(mysql,mssql,oracle)的对象转换为具体编程语言(如java)较为熟悉的类型,对于java而言,就是一个pojo对象.在做web项目的时候,我们需要把数据库表转换为java实体对象,当然我们可以根据数据表去手写这些java对象,但是这是件很麻烦的事情,而且容易出错.所以我们需要工具.本篇介绍使用Myeclipse来创建hibernate实体对象. 1…
第一条 考虑用静态工厂方法代替构造器 什么叫静态工厂方法,就是通过在类中通过静态方法对对象初始化. 比如说 public class StaticFactory { private String name; private Integer age; public StaticFactory(){ System.out.println("hello"); } public static StaticFactory initAndGetObject(String name,int age)…