Spring详解4.容器内幕

2019-01-10
阅读 20 分钟
2.6k
AbstractApplicationContext是ApplicationContext的抽象实现类,其中最重要的是refresh()方法,它定义了容器在加载配置文件以后的各项处理过程。

Spring详解3.Bean的装配

2019-01-08
阅读 12 分钟
2.5k
点击进入我的博客 1 Spring容器与Bean配置信息 Bean配置信息 Bean配置信息是Bean的元数据信息,它由一下4个方面组成: Bean的实现类 Bean的属性信息,如数据库的连接数、用户名、密码。 Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配。 Bean的行为信息,如生命周期范围及生命周期各过程的回调函数。 Bean元...

Spring详解2.理解IoC容器

2019-01-08
阅读 15 分钟
2k
上述案例中我们实现了一个香辣鸡腿堡套餐,在ZingerBurgerCombo中,我们发现套餐与汉堡、套餐与饮品产生了直接的耦合。要知道肯德基中的套餐是非常多的,这样需要建立大量不同套餐的类;而且如果该套餐中的百事可乐如果需要换成其他饮品的话,是不容易改变的。

Spring详解1.概述

2018-12-24
阅读 4 分钟
2.5k
Spring是由Rod Johnson缔造的一个分层的Java SE/EE应用一站式的轻量级开源框架,以IoC(Inverse of Control,反转控制)和AOP(Aspect Oriented Programming,面向切面编程)为内核,提供了展现层Spring MVC、持久层Spring JDBC及业务层事务管理等一站式的企业级应用技术。

JVM详解4.类文件结构

2018-12-18
阅读 21 分钟
2.7k
平台无关:Sun公司以及其他的虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的“一次编写,到处运行”。语言无关:语言无关的基础是虚拟机和字节码存储格式,Java虚拟机不和任何语言(包括Java)绑定,它只与Class文件这种特定的二进制文件格...

JVM详解3.JDK监控和故障处理工具

2018-12-18
阅读 5 分钟
2.2k
这些工具大多数是tools.jar类库的一层薄的包装,它们的主要功能代码是在tools类库中实现的。还有一些甚至就是由Shell脚本直接生成的。

JVM详解2.垃圾收集与内存分配

2018-12-18
阅读 19 分钟
1.5k
原理:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1,任何时刻计数器都为0的对象就是不可能再被使用的。 优点:实现原理简单,而且判定效率很高。缺点:很难解决对象之间相互循环引用的问题。

JVM详解1.Java内存模型

2018-12-18
阅读 14 分钟
2.4k
JDK(Java Development Kit):Java语言、Java虚拟机、Java API类库JRE(Java Runtime Environment):Java虚拟机、Java API类库JIT(Just In Time):Java虚拟机内置JIT编译器,将字节码编译成本机机器代码。OpenJDK:OpenJDK是基于Oracle JDK基础上的JDK的开源版本,但由于历史原因缺少了部分(不太重要)的代码。Sun ...

《设计模式》3.结构型模式

2018-11-30
阅读 16 分钟
2.2k
点击进入我的博客 3.1 适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 3.1.1 类的适配器结构 目标(Target)角色:这就是所期待得到的接口,由于是类适配器模式,因此目标不可以是类。 源(Adaptee)角色:现有需要适配的接口。 适...

《设计模式》2.创建型模式

2018-11-30
阅读 14 分钟
1.6k
简单工厂(Simple Factory):专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式。

《设计模式》1.绪论

2018-11-29
阅读 5 分钟
1.3k
设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。

《Java编程思想》笔记13.字符串

2018-11-23
阅读 5 分钟
1.6k
String底层是由char[]实现的,是不可变的。看起来会改变String的方法,实际上都是创建了一个新的String对象,任何指向它的引用都不可能改变它本身的值。

《Java编程思想》笔记14.类型信息

2018-11-16
阅读 7 分钟
2k
点击进入我的博客 运行时类型信息使得你可以在运行时发现和使用类型信息,主要有两种方式: “传统的”RTTI,它假定我们在编译时已经知道了所有的类型; “反射”机制,它允许我们在运行时发现和使用类的信息。 14.1 为什么需要RTTI RTTI维护类型类型的信息,为多态机制的实现提供基础。 14.2 Class对象 类型信息在运行时是...

《Java编程思想》笔记12.通过异常处理错误

2018-11-14
阅读 6 分钟
2.1k
Java异常处理的目的在于通过使用少于目前数量的代码来简化大型、可靠的程序的生成,并且通过这种方式可以使你更自信:你的应用中没有未处理的错误。

《Java编程思想》笔记11.持有对象

2018-11-14
阅读 5 分钟
1.4k
我觉得本章名字改成容器似乎更好理解,持有对象让人感到一头雾水我们需要在任意时刻和任意位置创建任意数量的对象,所以依靠创建命名的引用来持有对象已经满足不了需求。Java可以用数组和其他容器类来(List、Set、Queue、Map)来解决这个问题,不同的容器类有各自的特性,满足不同的需求。

《Java编程思想》笔记10.内部类

2018-11-14
阅读 7 分钟
1.9k
可以把一个类的定义放在另一个类的定义内部,这就是内部类。Java最晦涩的部分之一。内部类看起来就像是一种代码隐藏机制,将类只与其他类的内部。但远不止如此,内部类了解外部类,并能与之通信。

《Java编程思想》笔记9.接口

2018-11-14
阅读 2 分钟
2.2k
点击进入我的博客 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 9.1抽象类和抽象方法 抽象方法:这种方法是不完整的,仅有声明而没有方法。用abstract修饰的方法。 抽象类:包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。用abstract修饰的类。 可以创...

《Java编程思想》笔记8.多态

2018-11-14
阅读 4 分钟
1.6k
在面向对象的程序设计语言中,多态是继数据抽象(封装)和继承之后的第三种基本特征。多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来。多态的作用是消除类型之间的耦合关系。

《Java编程思想》笔记7.复用类

2018-11-14
阅读 4 分钟
1.4k
点击进入我的博客 复用代码是Java众多引人注目的功能之一,但要成为极具革命性的语言,仅仅能够复制代码并对之加以改变是不够的,它还必须能够做更多的事情。 7.1 组合 组合语法 就是在当前类中产生现有类的对象。 toString()方法 每一个非基本类型的对象都有该方法,当编译器需要一个String但你只有一个对象时,该方法...

《Java编程思想》笔记6.访问权限控制

2018-11-14
阅读 2 分钟
1.5k
当编写一个Java源代码文件(编译单元)时,每个编译单元必须有一个后缀.java,而在编译单元内则可以有至多一个public类,该类名必须和文件名相同。

《Java编程思想》笔记5.初始化与清理

2018-11-14
阅读 8 分钟
1.4k
点击进入我的博客 初始化和清理是编程安全的两个问题。Java延续了C++中的构造器确保初始化,并引入了“垃圾回收器”管理和释放内存。 5.1 用构造方法确保初始化 构造方法和类名相同。原因是尽量减少和成员名称冲突;并且调用构造方法是编译器的责任,名称相同编译器才会知道应该调用哪个方法。 由于构造方法和类名相同,所...

《Java编程思想》笔记4.控制执行流程

2018-11-14
阅读 2 分钟
1.2k
Java里唯一用到逗号操作符(注意不是分割符)的地方就是for循环的控制表达式。在初始化和步进控制部分,可以用一系列由逗号分割的语句,而且那些语句会独立执行。在初始化部分可以拥有任意数量、类型相同的变量定义,只能在for循环中使用。

《Java编程思想》笔记3.操作符

2018-11-13
阅读 5 分钟
1.3k
点击进入我的博客 3.1更简单的打印语句 {代码...} 通过编写一个小类库,并通过import static该方法来实现简化打印(基本没啥用)。 {代码...} {代码...} 3.2 使用Java操作符 操作符接受一个或多个参数,并生成一个新值 有些操作符可能会改变操作数本身的值 几乎所有的操作符都只能操作基本类型;=、==、!=能操作所有的对...

《Java编程思想》笔记2.一切都是对象

2018-11-13
阅读 4 分钟
1.3k
点击进入我的博客 2.1用引用操纵对象 尽管一切都看作对象,但操纵的标识符实际上是对象的一个“引用”。 {代码...} 2.2 必须由你创建所有对象 使用new操作符来创建新对象并与引用关联。 {代码...} 2.2.1 存储到什么地方 寄存器(不管你的事)——最快的存储区、位于处理器内部、空间极小、不能直接控制 堆栈(栈)——位于RAM...