自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 chapter05_Java Web_3_Spring框架

IOC(Inverse of Control)(1) 控制反转IOC又叫依赖注入DI(2) 目标:减少耦合,使得上层不再紧密耦合下层的接口(3) 示例1° TeaSaler类需要一个Tea对象,不使用任何操作时,有一个抽象类AbstractTea,它被GreenTea和RedTea派生,此时的做法是 AbstractTea tea = new GreenTea(); TeaSa...

2019-04-12 12:04:44 126

原创 chapter05_Java Web_2_xml

优点1° 文本形式存储,适用于大小文件2° 层次结构,访问速度快3° 通过属性标记,可扩展性好4° 跨平台缺点1° 存储效率低下xml文档定义(1) 需要预先定义 xml可以使用什么标记、标记出现的顺序和标记的层次关系等(2) xml文档定义方式有两种: DTD 和 Schema一个xml文档采用DTD方式时,只能对应一个DTD; 采用Schema方式时,可以对应多个S...

2019-04-12 12:04:36 119

原创 chapter05_Java Web_1_Servlet和JSP

Servlet(1) Servlet针对每个请求,都创建一个线程来执行(2) 处理客户端请求的__步骤__1° Web服务器收到请求后,会把请求交给相应的容器(例如Tomcat),容器此时会创建两个对象 HttpServletResponse和HttpServletRequest2° 容器调用Servlet的service()方法,service()方法调用 doGet()或doPos...

2019-04-10 14:48:45 121

原创 chapter04_Java基础知识_17_Java数据库操作

JDBC驱动底层,通常是通过网络IO实现SQL命令与数据传输的 --> ResultSet, Statement, Connection用完要close()class.forName(“com.mysql.jdbc.Driver”)是在干嘛?加载com.mysql.jdbc.Driver这个类,而进行类加载时会Driver类中的static块会向DriverManager进行注册...

2019-04-10 14:45:54 91

原创 16_多线程

实现多线程的方式(1) 扩展Thread类,覆盖run()方法(2) 实现Runnable接口,实现run()方法(事实上,Thread类也实现了Runnable接口)(3) 实现Callable接口,实现call()方法Thread.run()和Thread.start()的区别(1) 直接调用Thread.run(),并没有开辟新线程,相当于调用了一个普通方法(2) 调用T...

2019-04-10 14:45:45 99

原创 chapter04_Java基础知识_15_容器

Collection是一个接口,很多容器都继承了Collection接口,例如Set,ListCollections是一个工具类,提供了操作Collection容器的方法LinkedList内部是一个双向链表,且__非线程安全__...

2019-04-10 14:45:31 107

原创 chapter04_Java基础知识_14_序列化和反序列化

(1) 所有要实现序列化的类都要实现 Serializable接口,然后使用一个输出流来构造一个 ObjectOutputStream对象,然后调用writeObject()方法实现序列化(2) 若基类可以序列化,则它的派生类也可以序列化(3) 类的static修饰的变量、transient修饰的变量不会被序列化(4) 使用readObject()方法可以实现反序列化,但是static和...

2019-04-10 14:45:21 84

原创 chapter04_Java基础知识_13_输入输出流

Java中的IO流(1) 字节流:以字节byte为单位1° 输入流InputStream2° 输出流OutputStream(2) 字符流:以字符为单位1° 输入流Reader2° 输出流WriterJava IO类使用了__装饰器模式__...

2019-04-10 14:45:08 97

原创 chapter04_Java基础知识_12_异常处理

finally(1) finally块中的语句一般总会被执行,如果try中包含了return方法,那么可以理解为finally块中的部分类似于内联函数,插入到return前面执行,然后再执行return(2) (1)造成的结果是,如果finally块中包含了return语句,会覆盖其他地方的return示例 class Test { private static int...

2019-04-10 14:44:59 103

原创 chapter04_Java基础知识_11_字符串和数组

(1) 示例 class Test { public static void main(String[] args) { String a1 = "abc"; String a2 = "abc"; if (a1 == a2) { System.out.println("a1 == a2...

2019-04-10 14:44:48 109

原创 chapter06_死锁_7_其他问题

两阶段加锁(1) 一般情况下死锁避免和死锁预防都难以做到, 但是在一些特殊的应用中,可以使用一些特殊的算法, 例如针对数据库的__两阶段加锁__(2) 具体操作第一阶段: 进程视图对所有记录加锁,每次锁一个记录第二阶段: 进行对数据库的更新操作,更新完成后释放所有锁第一阶段不做任何实际操作,只是尝试加锁: 尝试成功后则进入第二阶段真正的操作;尝试失败则进程释放它所有的加锁记录,回退到...

2019-04-10 14:44:38 104

原创 chapter06_死锁_6_处理死锁的策略(四)死锁预防

死锁避免__几乎不可能实现,因为不可能知道未来的请求信息。但是可以进行__死锁预防资源死锁的__4个必要条件__(1) 互斥条件资源要么已经分配给了唯一的进程,要么就是可用的未分配状态(2) 占有和等待条件已经占有了某个资源的进程,可以继续请求新的资源(3) 不可抢占条件已经分配给某个进程的资源, 不能被其他进程强制性抢占, 只能被占有它的进程显式释放(4) 环路等待条件...

2019-04-10 14:44:26 207

原创 chapter04_Java基础知识_10_基本类型与运算

char和short类型都是2个字节,区别是char的范围是[0,65535], short的范围是[-32768, 32767]不可变类(1) 一旦创建了不可变类的实例,实例中的成员变量就不能被修改了(只读)(2) 常见的不可变类有 Integer, String等(3) 创建不可变类的原则1° 类中所有成员变量使用private修饰2° 类中没有更改成员变量的方法(如set...

2019-04-09 16:46:42 114

原创 chapter04_Java基础知识_9_Java关键字

使用冒号:可以定义标签,定义标签的作用是帮助break和continue跳出多层循环示例 class Solution { public static void main(String[] args) { out: for (int i = 0; i < 3; i++) { inner: ...

2019-04-09 16:40:13 83

原创 chapter04_Java基础知识_8_this和super

当子类的方法或成员变量与父类有相同的名字时,也会覆盖父类的方法或成员变量。此时,应该使用super来访问基类的方法或成员变量__当派生类需要显示调用基类的构造函数时,super(…)必须为派生类构造函数的第一条语句。否在,会__编译错误...

2019-04-09 16:38:10 79

原创 chapter04_Java基础知识_7_内部类

分类(1) 静态内部类示例 class Outer { static class Inner { protected static void function() { System.out.println("static"); } } }(2) 非静态内部类示例 ...

2019-04-09 16:37:19 70

原创 chapter04_Java基础知识_6_重载和覆盖,抽象类和接口

重载(1) 重载通过不同的参数个数、不同的参数类型、不同的参数顺序实现区分(2) 不能通过 方法的访问权限、返回值的类型、抛出的异常类型进行重载覆盖(1) 定义:派生类的函数覆盖基类函数(2) 基类中的方法是private时,无论如何都不会被派生类重载(此时叫做定义了一个新函数)(3) 满足以下条件时,才称为派生类的方法对基类的方法进行了__覆盖__1° 函数名相同2° 参...

2019-04-09 15:06:25 116

原创 chapter04_Java基础知识_5_面向对象

(1) 子类可以继承父类的protected和public的成员变量和方法(2) __子类中定义的成员变量和父类中的成员变量同名时,会覆盖不会继承__(3) __子类中的方法与父类中的方法有相同的函数签名时,会覆盖不会继承____相同的函数签名指的是相同的方法名 和 相同的参数个数和类型,参数的名称没有意义__多态(1) 编译时多态 --> 重载(2) 运行时多...

2019-04-09 14:56:46 135

原创 chapter04_Java基础知识_4_反射,利用接口实现函数指针

(1) 示例 public class Solution { void display() { System.out.println("haha"); } public static void main(String[] args) throws Exception { Class solutionClass...

2019-04-09 14:48:57 188

原创 chapter04_Java基础知识_3_接口,对象的clone

接口(1) 修饰一个接口的只可能有一种: public原因:abstract是冗余的,因为接口本来就是特殊的抽象类;final是Java规定的不可以(2) 接口中最标准的方法,默认就是abstract + public,因此用abstract或public修饰这些方法是冗余的(3) 接口中的变量只能是 public static final的public的原因:接口没有实例,必须有...

2019-04-09 14:45:46 78

原创 chapter04_Java基础知识_2_变量作用域范围,构造函数

作用域范围大小public > protected > default > private__不好记的是 protected 和 default,default要求是同一个包内可以,可以理解为一个大的.java文件里面有很多class,如果是default修饰的成员变量,那么它们可以互相访问;但是子类未必和它们在同一个包内,这时添加了protected能访问,说明prot...

2019-04-09 14:40:20 146

原创 chapter04_Java基础知识_1_main,类的成员初始化

为什么 main函数要 public static void修饰?static方法存储在__静态存储区__,只要类被加载后,不需要实例化对象就可以使用该方法;如果main方法不声明为静态的,JVM就必须创建main类的实例,而因为构造器可以被重载,JVM就没法确定调用哪个main方法;public的原因是任何类或对象都可以访问;void的原因是main函数是入口,返回值没有意义(1...

2019-04-09 14:39:03 118

原创 10_二叉树的性质

对于一棵__非空__的二叉树,叶结点数目是度为2结点数目+1即,n0 = n2 + 1证明: 度为0(叶结点)、1、2的结点数目分别为n0, n1, n2 则 总结点数目 n = n0 + n1 + n2 设树枝数量为 b,除了根结点,每个结点都唯一的连接一个树枝,所以 b = n - 1 = n0 + n1 + n2 - 1; (1) 又每个度为2的结点产...

2019-04-06 21:22:50 94

原创 chapter03_垃圾收集器与内存分配策略_5_垃圾收集器

垃圾收集器(1) 用于回收__新生代__:Serial:可以搭配CMS、Serial Old(MSC)使用ParNew:可以搭配CMS、Serial Old(MSC)使用Parallel Scavenge:可以搭配Parallel Old、Serial Old(MSC)使用(2) 用于回收__老年代__CMS(Concurrent Mark Sweep):可搭配Serial、Par...

2019-04-05 12:35:36 114

原创 chapter04_Spring的IoC容器之BeanFactory_02_BeanFactory的对象注册与依赖绑定方式

直接编码方式其实后面的几种方式,最终本质上用的也是这种方式示例 public static void main(String[] args) { DefaultListableBeanFactory beanRegistry = new DefaultListableBeanFactory(); BeanFactory container = (BeanFac...

2019-04-04 12:01:04 151

原创 chapter04_Spring的IoC容器之BeanFactory_01_拥有BeanFactory之后的生活

Spring的IoC容器其实范围比前面说的IoC Service Provider__要广__,它还包括了AOP等其他内容Spring提供了两种容器(1)BeanFactory1° 默认采用__懒加载__策略:当客户端需要访问某个对象时,才进行初始化和依赖注入2° 容器启动速度较快3° 所需资源较少(2) ApplicationContext1° ApplicationCon...

2019-04-04 10:32:22 70

原创 chapter03_掌管大局的IoC Service Provider

IOC Service Provider的职责(1) 业务对象的构建管理构建业务对象,客户端无需关心对象构建的过程(2) 业务对象间的依赖绑定将对象所依赖的对象注入绑定,从而保证每个业务对象在使用的时候,可以处于__就绪状态__管理对象间的依赖关系的方式(1) 直接编码伪代码 IoCContainer container = ...; // 先注册对象到容器中...

2019-04-04 10:10:44 115

原创 chapter02_Spring的IOC容器

IOC == DIIOC:Inversion of ControlDI:Dependency Injection基本原则是:Don’t call us, we will call you.上层选择调用它依赖的组件IOC的思想就是:让其他组件为当前组件服务,服务商叫做__IOC Service Provider__也就是说,各种组件都在IOC Service Provider处注册,然...

2019-04-04 09:33:52 75

原创 chapter01_Spring框架的由来

Spring基于POJO(Plain Old Java Object)对象开发整体架构 Core | |包括 ...

2019-04-04 09:12:35 89

原创 chapter03_架构优化和索引_8_对存储引擎的说明

MyISAM引擎(1) 只支持表锁,可能会成为瓶颈(2) 不支持自动数据恢复(3) 不支持事务,甚至不保证单个命令会被完成(4) 只有索引会缓存在内存中,而表的数据在操作系统中,需要的时候要进行系统调用(5) 紧密存储,磁盘占用小,顺序全表扫描快(6) 缓存表的行数信息Memory引擎(1) 只支持表锁,但是一般不会成为瓶颈,因为Memory表的查询一般比较快(2) 不支...

2019-04-03 16:28:05 66

原创 chapter03_架构优化和索引_6_正则化和非正则化

数据库中的表正则化:每个因素只表达一次非正则化:存在信息冗余示例非正则化 employee | department | head ------------------------------------- Jones | Accounting | Jones ------------------------------------- ...

2019-04-03 14:48:24 207

原创 正则表达式

正则表达式 = 普通字符 + 元字符(特殊字符)字符(1) 普通字符所有大写字母所有小写字母所有数字所有标点符号一些其他符号(2) 非打印字符\n 换行符\r 回车符\s 任何空白字符(等价于[\f\n\r\t\v])\S 任何__非__空白字符(等价于[^\f\n\r\t\v])\t tab\d 任意数字字符(等价于[0-9])\D 任意__非...

2019-04-03 09:01:56 76

原创 chapter01_MySQL架构_5_MySQL存储引擎

当创建一个表时,MySQL会在和表名同名的、以.frm为后缀的文件中存储__表的定义__(例如在C:\Program Files\MySQL\MySQL Server 5.6\data\texas_holdem目录下存放着8个frm文件,代表8个表的定义)这个目录下还能看到其他文件,有的代表数据记录,有的代表索引文件,这些文件的格式、后缀名是和存储引擎相关的,但是__.frm__是所有存储...

2019-04-02 11:15:21 129

转载 9_平方根分解和线段树(以LeetCode307为例)

Problem /* Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. The update(i, val) function modifies nums by updating the element at i...

2019-04-01 17:25:14 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除