- 博客(8)
- 资源 (10)
- 收藏
- 关注
原创 Thinking In Java笔记(第七章 复用类)
第七章 复用类 复用代码是Java众多引人注目的功能之一,但想要成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情。 Java中所有事物都是围绕着类来展开的。通过创建新类来复用代码,不必重新开头编写。此方法的窍门在于使用类而不破坏现有程序代码。本章中有两种代码重用机制来达到这一目的:只需要在新的类中生成现有类的对象。由于新的类是由现有类的对象所组成的
2015-05-30 09:54:18 2066
原创 Java代理模式
Java代理模式 代理可以分为:静态代理(StaticProxy)和动态代理(DynamicProxy)。代理概念 为某个对象提供一个代理,以控制这个对象的访问。代理类和委托类有共同的父类和父接口,这样在任何使用委托类对象的地方都可以使用代理对象代替。代理类负责请求的预处理、过滤、将请求分派给委托类处理以及委托类执行完请求后后的后续处理。代理分为了静态代理和动态代理。 个人感觉代理
2015-05-17 12:36:56 1791
原创 Java反射机制学习笔记
Java反射机制简介 通过反射API可以获取程序在运行时刻的内部结构。反射API中提供的动态代理可以原生实现AOP中的方法拦截功能。通过反射获取到的Java类内部结构后再进行运用,和直接运用这个类效果相同,但额外的提供了运行时刻的灵活性。反射的最大一个弊端是性能比较差。相同的操作,用反射API所需的时间大概比直接的使用要慢一两个数量级。可以考虑在适当的时机来使用反射API。基本用法 Ja
2015-05-16 15:36:59 1681
原创 Java垃圾回收(二) 堆内存的分代回收
堆内存的分代回收 Java针对堆的垃圾回收,将堆分为了三个较小的部分:新生代、老年代、持久代。新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器。1. 分代回收的依据:对象生存时间长短:大部分对象在Young期间就被回收。不同代采用不同的垃圾回收策略:对存活时间不同的对象分类,用不同的垃圾回收
2015-05-11 15:26:53 2569
原创 Thinking In Java笔记(第六章 访问权限控制)
第六章 访问权限控制简介 Java提供了访问权限修饰词,供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问权限控制的等级,从最大权限到最小权限一次为:public、protected、包(library)访问权限(没有关键词)以及private。6.1 包(library):库单元 包内含有一组类,它们在单一的名字控件之下被组织在一起。例如,在Java的标准发布中有一个工
2015-05-11 11:41:01 1888
原创 Java垃圾回收(一) 内存回收简介
Java垃圾回收(一) 在Java中,它的内存管理包括两个方面:内存分配和内存回收,这两个方面的工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但这也使很多程序员不关心内存分配的问题,导致很多程序低效耗费内存。 Java语言规范没有明确的说明JVM使用哪种垃圾回收算法。一般常用的算法有下列几种:引用记数法(Reference Count
2015-05-08 10:03:42 1876
原创 Thinking In Java笔记(第五章 初始化与清理(三))
第五章 初始化与清理5.6 成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化。对于方法的局部变量,Java以编译错误的形式来保证。如下:void f() { int i; i++; //Error:i not initialized} 会得到一条错误的消息,提示i可能没有初始化。编译器可以给i赋初值,但是并没有这么做,因为没有初始化是程序员的疏忽,为
2015-05-06 09:09:58 1702
原创 Thinking In Java笔记(第五章 初始化与清理(二))
第五章 初始化与清理(二)5.5 清理:终结处理和垃圾回收 清理的工作常常被忽略,Java有垃圾回收器负责回收无用对象占据的内存资源。但也有特殊情况:假定对象(并非使用new)获得了一块”特殊”的内存区域,由于垃圾回收器只知道释放那些由new分配的内存,所以不知道如何释放特殊内存。Java允许在类中定义一个名为finalize()的方法,工作原理”假定”是这样的:一旦垃圾回收器准备好释放对象占
2015-05-05 12:16:13 1838
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人