- 浏览: 146680 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (95)
- java (25)
- 数据库 (9)
- js (0)
- 框架 (10)
- 小问题 (8)
- 转载 (2)
- 配置开发环境 (6)
- 其它 (4)
- 功能记录 (2)
- 安全 (1)
- shell (3)
- spring ibaitis struts2 redis desc (1)
- spring security3.1 (1)
- 小问题 环境 (1)
- 小问题 环境 DelegatingFilterProxy cannot be cast to Filter (0)
- redis filter java (1)
- java redis (2)
- spring quartz 集群 批处理 (1)
- java mybatis (1)
- Junit soap (1)
- mock junit (0)
- mock junit spring (1)
- java jsoup (0)
- jsoup (1)
- python27 pycharm (1)
- maven pom (1)
- java log (1)
- mybatis 分页 (1)
- mysql (1)
- 业务 (1)
- java 测试 (1)
- java zookeeper 批处理 (1)
- hive hadoop (1)
- hive (1)
- hadoop (1)
- maven archetype (1)
- python rsa (1)
- python 页面分析 (1)
- python (0)
最新评论
-
wuyafeng123:
秒杀活动设计思路 -
indiajohns:
非常感谢,很快解决了我的问题
jmesa查询条件中文的编码转换问题 -
yujiaao:
太好了,感谢啊!这行在我这好象不行:URLDecoder.de ...
jmesa查询条件中文的编码转换问题 -
michael_wong:
呵呵,找到啦。在这里有全部源码:http://ishare. ...
Maven权威指南 的simple-parent 工程源码 -
michael_wong:
我也在找啊
Maven权威指南 的simple-parent 工程源码
内部类的作用:
1.完善多重继承。
疑问在于:多重继承可以用组合的方式实现。内部类相对组合方式的优势应该就是内聚更好,因为内部类实现的逻辑对除了自己外部类以外的类是不透明的,代码专用。
Lock相关实现类里面的 Sync这个内部类均扩展了抽象类AQS,并实现AQS的tryAcquire、tryRelease、tryAcquireShared等方法,各个Lock类的Sync各是各的,而且自己用自己的。
2.实现事件驱动系统
用在回调的场景里面,感觉也是代码专用的效果,这是外部对内部的;另外有些场景外部类的私有变量内部类才能访问,那就既是约束,也是方便了。
1.addActionListener方法调用接口ActionListener的实现类--事件驱动模型系统
2.ActionListener接口的实现类又要使用别人ContentPane这个私有成员变量
addActionListener 方法要调用一个能访问自己私有成员变量的类,那只能是一个内部类了
1.完善多重继承。
疑问在于:多重继承可以用组合的方式实现。内部类相对组合方式的优势应该就是内聚更好,因为内部类实现的逻辑对除了自己外部类以外的类是不透明的,代码专用。
Lock相关实现类里面的 Sync这个内部类均扩展了抽象类AQS,并实现AQS的tryAcquire、tryRelease、tryAcquireShared等方法,各个Lock类的Sync各是各的,而且自己用自己的。
2.实现事件驱动系统
用在回调的场景里面,感觉也是代码专用的效果,这是外部对内部的;另外有些场景外部类的私有变量内部类才能访问,那就既是约束,也是方便了。
1.addActionListener方法调用接口ActionListener的实现类--事件驱动模型系统
2.ActionListener接口的实现类又要使用别人ContentPane这个私有成员变量
addActionListener 方法要调用一个能访问自己私有成员变量的类,那只能是一个内部类了
public class ButtonTest extends JFrame { private static final long serialVersionUID = -5726190585100402900L; private JPanel contentPane; public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { ButtonTest frame = new ButtonTest(); frame.setVisible(true); frame.contentPane.requestFocus(); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public ButtonTest() { setTitle("普通内部类的简单应用"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 300, 200); contentPane = new JPanel(); contentPane.setLayout(null); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); final JButton redButton = new JButton(); redButton.setText("红色"); redButton.setBounds(15, 20, 82, 30); redButton.addActionListener(new ColorAction(Color.RED));//这里用事件模型 contentPane.add(redButton); } private class ColorAction implements ActionListener { private Color background; public ColorAction(Color background) { this.background = background; } public void actionPerformed(ActionEvent e) { contentPane.setBackground(background); //这里用到了外部类的私有成员变量 } } }
发表评论
-
详解ReentrantReadWriteLock
2016-04-21 14:34 0package java.util.concurrent. ... -
logBack用法,记录
2015-11-24 15:37 10321. Logback使用手册 系统中的日志采用 slf4j ... -
表产生sequence功能,测试并发
2015-11-18 16:21 662@Test public void testSerial ... -
Demo
2014-11-03 21:20 0package com.xly.jsoup.nbjy; /* ... -
反射小计
2014-10-07 11:32 530Test.java方法dd重载 class Test{ ... -
Btrace测试
2014-07-17 17:56 641偶尔看到BTrace,必须记录一下 利用hotSpot虚拟机 ... -
java对象占用heap的大小
2013-07-31 10:09 953一个对象占用的堆空间首先是和它有多少个成员变量直接相关 pub ... -
BeanCopier和BeanUtils实现对象复制,处理date类型
2013-03-29 12:52 4497没有废话 先是BeanUtils的实现类型: impo ... -
liferay 为JournalArticle添加分类
2013-03-21 15:45 1115/** * 为网页内容添加分类 ... -
liferay直接跳转到网页内容编辑页面修改的friendlyUrl效果
2013-03-21 14:11 1267找到portlat-impl.jar包,在目录 port ... -
JMS_DEMO
2013-03-14 20:25 15231.安装activeMq 修改service.pr ... -
Xmemcached/jedis springdemo
2013-02-20 13:13 932Xmemcached: HelloWordTest.ja ... -
规则检查功能的demo
2013-01-31 12:55 0规则检查Demo,包括mina,线程池功能 -
使用spring的线程安全web应用(翻译Thread-safe webapps using Spring)
2013-01-11 16:38 1919http://www.javalobby.org/articl ... -
JAVA虚拟机锁机制的升级流程
2013-01-08 14:52 2882http://ifeve.com/java-synchroni ... -
NIO学习
2012-11-27 11:49 1516最需要关注的是,应用进程、内核、IO三个概念。 所谓java的 ... -
Tomcat的HttpConnector/HttpProcesser(tomcat源码学习)
2012-11-21 10:47 1274先启动进程HttpProcesser,等请求到达后加入sock ... -
web.xml加载
2011-02-18 17:24 918转: web.xml文件内容加载顺序为:context- pa ... -
webLogic中 Cannot parse POST parameters of request: 的问题小记
2010-11-25 13:25 7834报错内容: weblogic.utils.NestedRunt ... -
数字签名Java实现小记
2010-08-30 10:42 1555一个证书发放单位给的证书里面包括一个发送单位的公钥,当前用户的 ...
相关推荐
- **数据抽象**:通过类的定义,隐藏内部数据结构,仅暴露公共接口。 - **封装**:确保对象的内部状态只能通过定义的方法来访问和修改,增加代码的安全性和稳定性。 - **分类**:将相似的对象归类到相同的类别中,...
能够使用类Arrays和Collections中的方法操作数组和集合。 知道实现比较器(Comparable,Comparator)用于排序算法(多态性)。 [*]了解同步包装和不可修改包装。 第12章 IO与串行化 2...
理解FileReader等类的内部实现,以及整个IO架构图,有助于构建清晰的IO知识体系。Java IO包中,接口和继承关系的运用非常优雅,对于理解面向接口编程和设计模式有很大帮助。 当对基础有了足够的理解后,可以尝试...
Java内存管理是Java编程中的核心概念,它涉及到程序运行时如何高效地分配、使用和回收内存。在Java中,内存管理主要由JVM(Java Virtual Machine)负责,其中包括了垃圾收集机制,确保程序不会因为内存泄漏而导致...
本实验旨在通过实际编程实践,加深学生对Java语言中循环控制结构的理解与运用能力,特别是`for`、`while`以及`do...while`循环的应用场景选择,进一步熟悉`switch-case`语句在条件判断中的使用。 #### 二、实验背景...
《Java夜未眠》这本书是作者在长期的Java开发实践中积累的心得体会,旨在帮助Java学习者更好地理解和掌握这门语言,避免常见的学习误区。书中的内容深入浅出,覆盖了从基础到进阶的多个方面,对于初学者和有一定经验...
通过动手实践,你可以深入体会Java的强大功能,逐步成长为一名熟练的Java开发者。书中例题覆盖了上述所有知识点,对于每个例题,建议读者不仅要运行代码,还要理解其背后的逻辑和设计思路,以便于在实际项目中灵活...
在Java编程中,适配器模式能够帮助我们复用已有的类,或者解决新旧系统之间的接口不匹配问题,从而提高代码的可重用性和灵活性。 适配器模式主要有两种形式:类适配器模式和对象适配器模式。在类适配器模式中,...
《实用数据结构教程Java语言描述》是一本深入探讨数据结构的教材,主要针对使用Java编程语言的读者。这本书的核心目标是帮助读者理解并掌握各种基本和高级数据结构的原理、实现以及它们在实际问题中的应用。通过源...
通过实际编码实现这些模式,读者可以更加深刻地体会到每个模式的优势和应用场景。例如,在实现单例模式时,可以通过懒汉式和饿汉式两种方式来创建唯一的实例;在应用工厂模式时,则可以通过抽象工厂或简单工厂等不同...
在Java中,我们可以创建一个外观类,该类持有对各个子系统对象的引用,并且提供方法来调用子系统的方法。客户端只需与外观类交互,无须知道子系统的具体实现。例如: ```java // 外观类 public class Facade { ...
本资源包含了2016年6月20日关于Java常用设计模式的源码和作者的心得体会,这对于我们深入理解和应用这些模式具有很大的帮助。 首先,我们要了解设计模式的基本分类。设计模式分为三大类:创建型模式(Creational ...
3. **图形保存与加载**:可以使用Java中的`ImageIO`类来处理图像的保存和加载操作。例如,`ImageIO.write(image, formatName, output)`用于将图像写入文件,而`ImageIO.read(input)`则用于从文件中读取图像。 4. **...
博客文章“Java Concurrency In Practice Learning Note”则是一位开发者在阅读本书后的心得体会,通过链接(已给出)我们可以获取更多实践中的经验分享。 并发编程的核心在于如何高效地利用多核处理器资源,同时...
它的主要特点和优势在于其灵活的插件体系结构,使得它不仅适用于Java开发,还可以通过安装不同的插件扩展到其他编程语言和应用场景。 首先,Eclipse 的体系结构是以插件为中心的。核心平台非常精简,大部分功能都是...
1. **基本框架图**:通常会包含类图,显示顺序表接口(LList)和顺序表类(SeqList)之间的关系,以及类内部的属性和方法。 2. **设计想法**:首先定义一个接口LList,声明顺序表所需的操作。然后实现这个接口的...
这些框架的理解不仅要停留在使用层面,还需要了解其内部工作原理,有时甚至需要阅读源代码来加深理解。 字符串处理也是面试中常考的部分,StringBuffer和StringBuilder的区别和联系是面试官常常会提及的问题。理解...