- 浏览: 7377996 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
简单的说,内部(inner)类指那些类定义代码被置于其它类定义中的类;而对于一般的、类定义代码不嵌套在其它类定义中的类,称为顶层(top-level)类。对于一个内部类,包含其定义代码的类称为它的外部(outer)类。 Static member class(静态成员类) 类声明中包含“static”关键字的内部类。如以下示例代码, Inner1/Inner2/Inner3/Inner4就是Outer的四个静态成员类。静态成员类的使用方式与一般顶层类的使用方式基本相同。 public class Outer{ //just like static method, static member class has public/private/default access privilege levels //access privilege level: public public static class Inner1 { public Inner1() { //Static member inner class can access static method of outer class staticMethod(); //Compile error: static member inner class can not access instance method of outer class //instanceMethod(); } } //access privilege level: default static class Inner2 { } //access privilege level: private private static class Inner3 { //define a nested inner class in another inner class public static class Inner4 { } } private static void staticMethod() { //cannot define an inner class in a method /*public static class Inner4() { }*/ } private void instanceMethod() { //private static member class can be accessed only in its outer class definition scope Inner3 inner3 = new Inner3(); //how to use nested inner class Inner3.Inner4 inner4 = new Inner3.Inner4(); } } class Test { Outer.Inner1 inner1 = new Outer.Inner1(); //Test and Outer are in the same package, so Inner2 can be accessed here Outer.Inner2 inner2 = new Outer.Inner2(); //Compile error: Inner3 cannot be accessed here //Outer.Inner3 inner3 = new Outer.Inner3(); } 1.1 静态成员类特性 * 静态成员类可访问外部类的任一静态字段或静态方法 * 像静态方法或静态字段一样,静态成员类有public/private/default权限修饰符 1.2 静态成员类约束 * 静态成员类不能与外部类重名 * 像外部类的静态方法一样,不能直接访问外部类的实例字段和实例方法 * 静态成员类只能定义于外部类的顶层代码或外部类其它静态成员类的顶层代码中(嵌套定义);不能定义于外部类的某个函数中。 1.3 新增语法 如示例代码所示,可以以“OuterClass.InnerClass”的方式来引用某个内部类。 1.4 什么时候使用静态成员类 B为A的辅助类,且只为A所用时,可将B定义为A的静态成员类。例如JDK中的LinkedList类就有Entry静态成员类: public class LinkedList<E> extends AbstractSequentialList<E> …; private static class Entry<E> { E element; Entry<E> next; Entry<E> previous; Entry(E element, Entry<E> next, Entry<E> previous) { this.element = element; this.next = next; this.previous = previous; } } …; } 显然,Entry用来表示LinkedList中的一个结点,只被LinkedList自身使用。 2 Member class(成员类) 一个静态成员类,若去掉“static”关键字,就成为成员类。如下示例代码,Inner1/Inner2/Inner3/Inner4就是Outer的四个成员类 public class Outer { //just like instance method, member class has public/private/default access privilege levels private int data; //access privilege level: public public class Inner1 { private int data; private int data1; public Inner1() { //member class can access its outer class' instance field directly data1 = 1; //itself data field data = 1; //its outer class instance field Outer.this.data = 1; } } //access privilege level: default class Inner2 { //can not define static filed, method, class in member class //static int j = 1; //but, "static final" compound is allowed static final int CONSTANT = 1; } //access privilege level: private private class Inner3 { public class Inner4 { } } //in fact, Inner5 is not a member class but a static member class interface Inner5 { } private static void staticMethod() { //can not create a member class instance directly in outer class' static method //Inner1 inner1 = new Inner1(); } private void instanceMethod() { //can create a member class instance in outer class' instance method Inner1 inner1 = new Inner1(); } } class Test { public Test() { //cannot create member class instance directly in class other than outer class //Outer.Inner2 inner2 = new Outer.Inner2(); //create a member class instance outside it's outer class Outer outer = new Outer(); Outer.Inner1 inner1 = outer.new Inner1(); } } 2.1 成员类特性 · 类似于外部类的实例函数,成员类有public/private/default权限修饰符 · 一个成员类实例必然所属一个外部类实例,成员类可访问外部类的任一个实例字段和实例函数。 2.2 成员类约束 * 成员类不能与外部类重名 * 不能在成员类中定义static字段、方法和类(static final形式的常量定义除外)。因为一个成员类实例必然与一个外部类实例关联,这个static定义完全可以移到其外部类中去 * 成员类不能是接口(interface)。因为成员类必须能被某个外部类实例实例化,而接口是不能实例化的。事实上,如示例代码所示,如果你以成员类的形式定义一个接口,该接口实际上是一个静态成员类,static关键字对inner interface是内含(implicit)的。 2.3 新增语法 一个成员类实例必然所属于其外部类的一个实例,那么如何在成员类内部获得其所属外部类实例呢?如示例代码所示,采用“OuterClass.this”的形式。 2.4 指定内部类实例所属的外部类实例 内部类实例可在其外部类的实例方法中创建,此新创建内部类实例所属的外 部类实例自然就是创建它的外部类实例方法对应的外部类实例。 另外,如示例代码所示,对于给定的一个外部类实例outerClass,可以直接创建其内部类实例,语法形式为: OuterClass.InnerClass innerClass = outerClass.new InnerClass(); 2.5 什么时候使用成员类 成员类的显著特性就是成员类能访问它的外部类实例的任意字段与方法。方便一个类对外提供一个公共接口的实现是成员类的典型应用。 以JDK Collection类库为例,每种Collection类必须提供一个与其对应的Iterator实现以便客户端能以统一的方式遍历任一Collection实例。每种Collection类的Iterator实现就被定义为该Collection类的成员类。例如JDK中AbstractList类的代码片断: public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { private class Itr implements Iterator<E> { ………; } public Iterator<E> iterator() { return new Itr(); } } 因为定义在AbstractList中的Itr可访问AbstractList中的任意字段和方法,所以很方便实现Iterator,无需AbstractList对外暴露更多的接口。 试想,如果没有成员类机制,只有在AbastractList源码之外定义一个实现Iterator的类Itr,该类有一个AbstractList实例成员list,为了Itr能获取list的内部信息以便实现遍历,AbstractList必然要向Itr开放额外的访问接口。 3 Local class(局部类) 对一个静态成员类,去掉其声明中的“static”关键字,将其定义移入其外部类 的静态方法或静态初始化代码段中就成为了局部静态成员类。 对一个成员类,将其定义移入其外部类的实例方法或实例初始化代码中就成为了局部成员类。 局部静态成员类与静态成员类的基本特性相同。例如,都只能访问外部类的静态字段或方法,但不能访问外部类的实例字段和实例方法等。 局部成员类与成员类的基本特性相同。例如,局部成员类实例必属于其外部类的一个实例,可通过OuterClass.this引用其外部类实例等。 另外,局部类也有其自己的特性,如以下代码所示: 3.1 局部类特性 如示例代码所示,局部类能且只能访问其所属代码段中的声明为final的局部 变量。为什么只能访问声明为final的局部变量呢?我们知道,局部变量在其所属的代码段(譬如某个函数)执行完毕后就会被回收,而一个局部类的实例却可以在其类定义所属代码段执行完毕后依然存在,如果它可操控非final的局部变量,用户就可以通过该实例修改已不存在的局部变量,无意义。 3.2 局部类约束 * 如示例代码所示,内部类只在定义它的代码段中可见,不能在它所属代码段之外的代码中使用;因此也就没有public/private/default权限修饰符(无意义) * 不能以局部类形式定义一个接口。局部类只在其所属代码段中可见,定义这样的接口无意义 * 局部类类名不能与其外部类类名重复 3.3 什么时候使用局部类 局部类大部分以匿名类的形式使用。 4 Anonymous class(匿名类) 没有类名的局部类就是匿名类。用一条语句完成匿名类的定义与实例创建。例 如如下代码: public class Outer { public void instanceMethod() { //define a nonymous class which implements Action interface and creat an instance of it Action action = new Action() { public void doAction() { System.out.println("a simple anonymous class demo"); }}; action.doAction(); //define a nonoymous class which extends BaseClass and create an instance of it new BaseClass(5) { public void printData(){ System.out.println("data = " + getData()); } }.printData(); //"data = 5" will be outputed } } interface Action { void doAction(); } class BaseClass { private int data; public BaseClass (int data) { this.data = data; } public int getData() { return data; } } 4.1 匿名类特性与约束 匿名类是一种特殊的局部类。局部类的特性与约束都适用与它。 4.2 新增语法 4.2.1 继承自某个基类的匿名类 new class-name ( [ argument-list ] ) { class-body } 创建匿名类实例时,“argument-list”将被传入其基类(即class-name)对应的构造函数。 4.2.2 实现某个接口的匿名类 new interface-name () { class-body } 4.3 什么时候使用匿名类 * 该类定义代码段很短 * 只需要创建该类的一个实例 * 类的定义代码与类的使用代码紧邻 * 使用匿名不影响代码的易读性 譬如,如下实现类似与c的callback功能的代码就是匿名类的典型应用: File f = new File("/src"); // The directory to list // Now call the list() method with a single FilenameFilter argument // Define and instantiate an anonymous implementation of FilenameFilter // as part of the method invocation expression. String[] filelist = f.list(new FilenameFilter() { public boolean accept(File f, String s) { return s.endsWith(".java"); } }); // Don't forget the parenthesis and semicolon that end the method call! public class Outer { private int instanceField; private static int staticField; //define a local member class in instance code block { int localVirable1 = 0; final int localVirable2 = 1; class Inner1 { public Inner1() { //can access its outer class' field and method directly instanceField = 1; //use OuterClass.this to get its corresponding outer class instance Outer.this.instanceField = 1; //can not access the not final local virable in its containing code block //System.out.print(localVirable1); //can access the final local virable in its containing code block System.out.print(localVirable2); } } //local class can not have privilege modifier /*public class inner2 { }*/ } // define a local static member class in static code block static { class Inner2 { public Inner2() { staticField = 1; //can not access instance field and method in a local static member class //intanceField = 2; } } } public void intanceMethod() { //define a local class in its out class' instance method class Inner3 { } //local class is visible only in its containning code block //Outer.Inner2 inner2; } private static void staticMethod() { //define a local static member class in its out class' static method class Inner4 { public Inner4() { staticField = 2; } } //can not define a interface as a local class /*interface I { }*/ } }
发表评论
-
【转】Coherence Event Processing by using Map Trigger Feature
2013-06-25 14:02 2106This article shows how to proc ... -
【转】Distributed Data Management in Oracle Coherence
2013-06-25 13:55 1920This article shows how to prov ... -
【转】How to distribute Spring Beans by using Coherence
2013-06-21 17:24 1999转载自: http://www.onli ... -
关于H2使用的那些事
2012-12-14 16:40 27300在项目中采用H2作为工 ... -
【转】ConcurrentHashMap之实现细节
2012-12-10 14:32 1808Conc ... -
【转】Java并发编程J.U.C之Condition
2012-12-10 13:14 1961转载自http://www.golde ... -
【转】Java并发编程J.U.C之锁的获取与释放
2012-12-10 13:07 1639转载自 http://www.g ... -
【转】JUC 基础内容概述
2012-12-10 13:01 2080Concurrent Programming in Jav ... -
【转】Java并发编程之ConcurrentHashMap
2012-12-10 12:56 1804ConcurrentHashMap Conc ... -
【转】单例模式完全解析
2012-12-07 12:58 1737本文将探讨单例模式的各种情况,并给出相应的建议。 单例模式应该 ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2971转载自 http://rdc.taobao.c ... -
【转】Spring 事务管理高级应用难点剖析:
2012-12-04 16:29 2250转载自 http://www.ibm.com/deve ... -
【转】Struts2的线程安全 和Struts2中的设计模式----ThreadLocal模式
2012-12-04 15:11 4518转载自 http://downpour.ite ... -
Hibernate延迟加载和OpenSessionInView
2012-12-03 17:13 3190ThreadLocal& ... -
关于ThreadLocal分析和总结
2012-12-03 15:56 1891什么是ThreadLocal? ... -
【转】java线程阻塞中断和LockSupport的常见问题
2012-12-03 13:30 1807转载自 http://www.iteye ... -
java 中 ReentrantReadWriteLock的读锁和写锁的使用
2012-11-30 17:14 10473jdk文档中关于Reentr ... -
java 多线程中Semaphore信号量
2012-11-30 15:39 3779Semaphore信号量: 可以维护当前 ... -
Java 文件锁的使用
2012-11-30 13:21 4474多线程-内部锁、重进入 多线程 ... -
【转】线程安全与锁优化
2012-11-29 16:17 1915转载自http://xussen.iteye.com/blo ...
相关推荐
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf
内容概要:本文详细介绍了基于瞬时无功功率理论的三电平有源电力滤波器(APF)仿真研究。主要内容涵盖并联型APF的工作原理、三相三电平NPC结构、谐波检测方法(ipiq)、双闭环控制策略(电压外环+电流内环PI控制)以及SVPWM矢量调制技术。仿真结果显示,在APF投入前后,电网电流THD从21.9%降至3.77%,显著提高了电能质量。 适用人群:从事电力系统研究、电力电子技术开发的专业人士,尤其是对有源电力滤波器及其仿真感兴趣的工程师和技术人员。 使用场景及目标:适用于需要解决电力系统中谐波污染和无功补偿问题的研究项目。目标是通过仿真验证APF的有效性和可行性,优化电力系统的电能质量。 其他说明:文中提到的仿真模型涉及多个关键模块,如三相交流电压模块、非线性负载、信号采集模块、LC滤波器模块等,这些模块的设计和协同工作对于实现良好的谐波抑制和无功补偿至关重要。
内容概要:本文探讨了在工业自动化和物联网交汇背景下,构建OPC DA转MQTT网关软件的需求及其具体实现方法。文中详细介绍了如何利用Python编程语言及相关库(如OpenOPC用于读取OPC DA数据,paho-mqtt用于MQTT消息传递),完成从OPC DA数据解析、格式转换到最终通过MQTT协议发布数据的关键步骤。此外,还讨论了针对不良网络环境下数据传输优化措施以及后续测试验证过程。 适合人群:从事工业自动化系统集成、物联网项目开发的技术人员,特别是那些希望提升跨协议数据交换能力的专业人士。 使用场景及目标:适用于需要在不同通信协议间建立高效稳定的数据通道的应用场合,比如制造业生产线监控、远程设备管理等。主要目的是克服传统有线网络限制,实现在不稳定无线网络条件下仍能保持良好性能的数据传输。 其他说明:文中提供了具体的代码片段帮助理解整个流程,并强调了实际部署过程中可能遇到的问题及解决方案。
基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于C#实现的检测小说章节的重复、缺失、广告等功能+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档
少儿编程scratch项目源代码文件案例素材-火柴人终极之战.zip