如何写Java框架 — 前言

一.何为框架?

一讲到框架,作为开发者,在熟悉不过了,我们的项目中用到了各种各样的框架,那你知道何为框架呢?Java框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。框架又叫做开发中的半成品,它不能提供整个应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。说白了Java框架就是封装好方便程序员操作的类,使项目的开发更简单,维护起来也更容易。


二.为何使用框架?

  随着java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处,大幅度降低了我们的日常的开发成本。


三.写框架需具备哪些基础

1.Java并发编程相关类、接口和方法

1.1. 线程池
1.2. synchronized同步锁
1.3. ReetrantLock
1.4. volatile修饰符
1.5. Atomics原子类

1.6. 并发容器(比如:以CopyOnWrite和Concurrent开头的容器)

 

2. 动态代理

2.1. java动态代理技术

2.2. Cglib动态代理技术


3. java反射

3.1. 获取对象属于哪个类(obj.getClass())
3.2. 获取类的信息 (比如获取类的全限定名,类所包含的域等,clazz.getName)
3.3. 构建对象(Class.forName("ClassName").newInstance())
3.4. 动态执行方法(method.invoke(...))

3.5. 动态操作属性(field.set(this, "Test")

 

4. BIO、NIO、AIO基础

①BIO(同步阻塞)

在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一个线程等待请求,而客户端发送请求后,先咨询服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户端线程会等待请求结束后才继续执行


②NIO(同步非阻塞)

NIO本身是基于事件驱动思想来完成的,其主要想解决的是BIO的大并发问题: 在使用同步I/O的网络应用中,如果要同时处理多个客户端请求,或是在客户端要同时和多个服务器进行通讯,就必须使用多线程来处理。也就是说,将每一个客户端请求分配给一个线程来单独处理(可以看下Apache旗下的Netty或者Mina通信框架)


③AIO(异步非阻塞)
与NIO不同,当进行读写操作时,只须直接调用API的read或write方法即可。这两种方法均为异步的,对于读操作而言,当有流可读取时,操作系统会将可读的流传入read方法的缓冲区,并通知应用程序;对于写操作而言,当操作系统将write方法传递的流写入完毕时,操作系统主动通知应用程序。  即可以理解为,read/write方法都是异步的,完成后会主动调用回调函数。  在JDK1.7中,这部分内容被称作NIO.2

 

5. 类加载器

5.1. 类加载过程


5.2.类加载器
①Bootstrap ClassLoader
②Extension ClassLoader
③App ClassLoader
④Custom ClassLoader

 

6. java设计模式

常用的设计模式有:
6.1. 简单工厂方法和抽象工厂方法
6.2. 适配器模式
6.3. 代理模式

6.4. 观察者模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值