- 博客(15)
- 收藏
- 关注
原创 JDK动态代理和CGLIB动态代理的异同
代理模式的概念和静态代理之前的文章已经说过了,没看过的可以看点这里。动态代理意义在于生成一个占位(又称为代理对象),用来代理真实的对象,来控制真实对象的访问。举个例子,现在有一家软件公司,公司里面有软件工程师和商务,这个时候客户带着需求来到公司,会直接去找商务谈,客户认为商务就代表着公司,关系如下通过图可以看出来客户是通过商务去找软件工程师首先说一下JDK的动态代理,JDK的动态代理是java.lang.reflect.*包提供的方式,它必须要借助接口才可以实现,首先我们先随便定义一个接
2020-05-27 10:15:32 3310 4
原创 框架前奏 - 代理模式
今天说说我对代理模式的理解,之前也简单了解过代理模式,但是不是很懂它的使用场景,五一的时候想着模仿Mybatis写一个简单版的数据库框架,写之前有一个点一直卡着我,只有一个接口和配置文件,用反射去写的话也应该要一个实现类呀,那多个接口还是需要多个实现类,那还是什么框架呀。。。后来想起了代理模式,用动态代理帮我去做实现类呀!!!我真是机智,哈哈哈首先先说一下概念代理模式:为其他对象提供一种...
2020-05-07 11:11:32 453 1
原创 设计模式之策略模式
策略模式定义(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。定义看起来还是太抽象,接下来我们看一个书上的例子,如何实现一个商场收银软件,有好几种收费的方式,比如不同的折扣、满300返100等等。这里先用简单的工厂模式实现一下(UML图实现)上面就是利用简单的工厂模式来实现这个收银软件,这里注意一下,有人可能会说...
2020-04-24 12:28:56 229
原创 设计模式之工厂模式
今天开始看设计模式,后面基本每天都会按照“大话设计模式”这本书更新一章关于设计模式的内容。有兴趣的话可以每天一起学习呀!!!话不多说,我们先看看第一章简单工厂模式这本书是以小菜面试失败,和大鸟讨论为什么失败而展开的。首先小鸟面试的时候面试官出了一道题,用任意一门面向对象的语言来实现一个计算器控制台程序。我觉得这道题大多数人都一样觉得很简单,马上就写出了如下的代码(书上是C++实现,这里用J...
2020-04-21 21:32:16 198
原创 史上最详细如何在Eclipse配置Tomcat及创建WEB项目并部署到Tomcat上
注意:首先eclipse必须在JavaEE工作模式下首先在本地下载一个Tomcat在eclipse中配置一些基础配置2.1 配置JDK(这一步的主要目的是方便以后看源码) 2.1.1 点击标题栏window ->preferences->Java->Installed JREs 2.2.2 查看列表中是否为JDK如果不是点击右侧Add...
2020-04-07 20:43:37 1243
原创 如何用JavaScript实现轮播图的滚动效果
最近在学JavaScript,想做一个带有滚动效果的轮播图,一开始做了很多尝试结果都不太对,后来看了一下别人的思路,自己也模仿的做了一个出来,代码如下<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>轮播图</title> <sty...
2020-03-01 11:29:28 1470
原创 Java中关于快速排序的理解
在博客上面看了很多大神的解析,自己慢慢的有了一点思路。首先我认为快速排序就是采用了分治的思想 ,先找到其中一个数字作为基准,一般是第一个,然后找到它在这一组序列中间对应的真正位置,然后以这个数字为分界分为两组在分别采用一开始找第一个数字真正位置的方法,分别找到这两组对应的第一个数字的位置,然后再分,就这样一直分下去,直到所有的数字找到它们对应的真正位置,举个例子1, 5, 1, 2...
2019-03-02 16:26:58 376 1
原创 关于java中堆内存以及常量池的理解
首先举个例子String s1 = "hello";String s2 = "hel" + new String("lo");System.out.println(s1 == s2);//false下面讨论为什么会出现这样的结果 首先第一句话,在常量池中创建了一个hello数据(这个常量池严格意义上讲是在堆上面的),并把它的地址记录在了方法区的常量池中并且赋值给s1,第...
2018-12-25 19:15:10 687
原创 pat乙级1044提交之后一直说格式错误,求解
#include <iostream>#include <cstdlib>#include <cstring>using namespace std;//火星数字int main(){ char str1[12][10] = {"jan", "feb", "mar", "apr", "may", "jun&qu
2018-03-21 13:52:53 576
原创 汇编语言的执行过程
编写源程序 ---> 生出.asm汇编文件 ---> 编译器编译 ----> 生成.obj目标文件------> 连接器链接 ------> 生成.exe可执行文件------> 通过command加载-----> 送往内存------> cpu运行程序源程序:包含着伪指令和汇编指令和一些标号,伪指令就是由编译器执行的指令,编译器根据伪指令进行相应
2017-12-20 21:35:34 8495
原创 关于汇编语言栈的理解
栈就是一段特殊内存,什么是栈呢?举个例子,一个只有上面打开的盒子,现在有三本书离散数学、c语言、汇编语言,需要将这三本书一本一本的放进去,先将离散数学放进去,然后c语言,接着汇编语言,现在又需要将三本书拿出去,只能先拿汇编语言,再拿c语言接着再拿离散数学,栈就是这样的特点,后进先出。栈的大小怎么确认呢?这是靠我们自己决定的,如何确定这段内存为栈,就需要两个寄存器,段寄存器ss和存放偏移地址的寄
2017-12-19 21:18:21 4264 2
原创 汇编语言不允许通过的指令
不允许通过的指令: mov 段寄存器,数据 mov ds,1000h add 段寄存器,寄存器add ds,ax add 寄存器,段寄存器add ax,ds sub 段寄存器,寄存器sub ds,ax sub 寄存器,段寄存器sub ax,ds 8086cpu mov指令不能用于设置cs、ip的值,原因是8086没有提供这样的功能
2017-12-18 11:46:06 947
原创 汇编语言程序和数据的关系
程序和数据没有区别,被cs:ip指向的是程序。被传送和运算的是数据。比如物理地址为10000的内容为01,10001的内容为02,cs = 1000,ip = 0000。 假设01,02对应的汇编程序为mov ax,bx。程序开始执行,在数据总线上传递的01,02就是数据,但是cs:ip指向的内存单元01,02就是程序。
2017-12-17 12:24:25 530
原创 汇编语言代码段和数据段
在8086cpu环境下,一个地址和一个内存单元就对应着一个B,代码段指的是长度为小于64kb的、地址连续、起始地址为16(十进制)的倍数的内存单元当作专门存放代码的,数据段指的是长度小于64kb的、地址连续、起始地址为16(十进制)的倍数的内存单元当作专门存储数据的内存空间。为什么长度必须小于64kb呢?因为偏移地址是16位的,2^16次方 b= 64kb,所以长度必须小于64kb,起始地址为
2017-12-17 11:32:59 9348
原创 c++的一些简单概念
c++程序的模板的是函数;#include 是预处理器将iostream文件的内容添加到程序当中;using namespace std;使用命名空间std,能够使用std空间里面的所有名称对类和对象的初步理解iostream就想当于一个类就是信息以及可对数据执行的操作,cout,cin就相当于对象,是类的一些实例就是根据类创建的实体举个例子类就相当于著名的明星,但是著名的明星
2017-11-06 21:48:10 211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人