复习博客

复习思路

将自己遇到的问题记录并回答一下,日后复习用

回调、静态代理、装饰模式思路:

(这只是我的一个思路的简单整理,后续整理成更好的笔记)思路整理:首先有一个回调接口,A类 实现这个回调接口,并实现回调接口中的方法,这个方法就是回调方法(假设为a,a等待回调),A类中的某一个方法(暂且认为是另外一个方法c)调用了B类 中的方法b(A类中应该有B 类的引用或者是B类实现了的接口的引用),同时将 自身的指针this作为b的参数。这个时候来到了B类,并且带着A类的引用,B类中的b方法的实现体进行了一系列操作之后,利用 传递过来的this指针(因为方法b有一个参数就是A类的引用, 或者说是A类实现了的那个接口的引用)调用了A类中的 实现方法a。这个时候就实现了回调,当然有同步回调也有异步回调,我目前理解的异步回调就是,在B类中的方法b的方法体中,新开辟一个线程去处理事务,这样A类中的方法c在调完B类中的方法b后,可以直接去干别的事情,不用等待结果返回。

静态代理思路:有两个类:一个是老板类,一个是秘书类,老板是真实类、秘书是代理类,有一个接口叫谈判,谈判时核心业务,由老板完成,其他事情, 比如预约时间, 确定地点,以及收尾工作由 秘书完成。我们就可以这样设计:首先声明一个核心业务接口:谈判。老板和秘书 都需要实现这个接口,老板实现的这个接口的方法体中去实现谈判具体细节,在秘书 实现这个接口的方法体中, 有三部分,一部分是 前期工作,第二部分是调用 老板实现的谈判方法(所以,秘书中要有老板的引用,或者是老板实现 接口的引用)。第三部分是收尾工作。在做完以上工作之后, 创建一个秘书类,就是代理类, 并创建一个被代理类老板,将这个老板作为参数传进代理类中。调用谈判方法即可。这个静态代理有缺点,就是当我们有 第二个老板的时候,还需要再创建一个秘书,所以就会导致大量代码重复。这个时候就会引入动态代理,我还没有搞明白。可以暂时先看这一篇:https://blog.csdn.net/hejingyuan6/article/details/36203505#commentBox

装饰模式思路:装饰模式和静态代理模式非常相似:首先都是有一个接口,在上个例子中静态代理中这个接口我们设定为谈判,这次在装饰模式中, 我们将这个接口设置为汽车移动move。我们 给这个车增加不同的 功能,比如飞、 游泳、自动驾驶,这都是move。首先声明一个move接口,接下来,真实对象和装饰器都要实现这个接口,真实对象的实现体move方法就是普通的移动,而装饰器在他的实现体move方法中时调用真实对象中的move方法。并且装饰器也要持有真实对象的引用。这个 静态代理模式是何等的相似,只不过在装饰器实现的move方法体中,我们不在前后加上功能,而是在装饰器的若干子类中去实现若干功能。比如一个FlyCar继承了装饰器SuperCar,肯定需要构造器来传入个真实对象的引用,因为前面说了装饰器需要持有真实对象的引用。另外因为FlyCar继承了父类装饰器, 需要重写父类中的move方法,重写的方法体中,也是需要先调用父类的move方法,因为前面说了父类装饰器的move方法是调用它持有的真实对象的move方法,然后在方法体中再另外加入装饰,另外的装饰可以调用FlyCar类体中的飞行方法,这里就是指实现飞的方法了。创建一个FlyCar的实例,传入 一个真实对象,然后调用FlyCar实例的move方法, 就可以了。另外,我们可以多创建几个子类,这样几个子类之间可以进行组合。

多表查询:

https://blog.csdn.net/m0_37888031/article/details/80632268

索引:

http://blog.codinglabs.org/articles/theory-of-mysql-index.html

回调例子

https://www.cnblogs.com/xrq730/p/6424471.html
https://www.cnblogs.com/heshuchao/p/5376298.html

IoC解释

https://www.cnblogs.com/xdp-gacl/p/4249939.html

四大作用域

https://blog.csdn.net/chenyujian1987/article/details/14647155#commentBox

哈希冲突之开放定址法

https://blog.csdn.net/mr_doublerun/article/details/49633167
另外三种方法:
再哈希法:这种方法是同时构造多个不同的哈希函数,分别利用不同的哈希函数去计算哈希值
链地址法:java中的HashMap就是利用这种方法
建立公共溢出区:这种方法的基本思想是将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。

计算机网络协议入门(简直不能太棒)

http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
http://www.ruanyifeng.com/blog/2012/06/internet_protocol_suite_part_ii.html

码元

波特率又称码元率,是指每秒传输码元的数目,单位波特(Band)
比特率为每秒传输的比特(bit)数。

码元:
在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。 这是百度百科的解释
通俗点说,可以把一个码元看做一个存放一定信息量的包,如果只存放1bit,那么波特率等于比特率,但是一般不止存放1bit
如一串二进制信息为101010101 当一个码元携带的信息量为1bit时,那么就有9个码元,其波特率相当于比特率,如果每三个一组101,010,101,这时就可以使用8种振幅来表示某个码元,这里相当于一个码元就包含了3bit,这里码元的离散取值数目就是8。

由此可得波特率和比特率的关系
若码元的离散取值数目是L,波特率是B,数据率(比特率)为C,则
C = B log₂L.(当L=2时,C=B)

原文:https://blog.csdn.net/qq_35315699/article/details/72935010

JVM垃圾回收

https://baijiahao.baidu.com/s?id=1605937053950156833&wfr=spider&for=pc

wait和notify为什么必须在同步块中

https://www.cnblogs.com/set-cookie/p/8686218.html

CAS机制

https://www.jianshu.com/p/ae25eb3cfb5d

@ComponentScan注解

https://blog.csdn.net/neulily2005/article/details/83750027

@Configuration注解

https://blog.csdn.net/leoxyk/article/details/79800020

数据库连接池

https://blog.csdn.net/crankz/article/details/82874158

JAVA线程状态及转换

https://www.cnblogs.com/happy-coder/p/6587092.html

KMP算法

https://blog.csdn.net/x__1998/article/details/79951598

根据时间戳统计每天的人数

select FROM_UNIXTIME(create_time/1000,'%Y-%m-%d')as date,COUNT(*) as 人数
FROM 表 
where 1
GROUP BY date;(create_time表示的是时间戳字段并且是毫秒)

请求头和响应头

https://www.jianshu.com/p/eb3e5ec98a66

reidis缓存穿透、缓存雪崩、缓存击穿

https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc

maven入门

https://www.cnblogs.com/hzg110/p/6936101.html

post和get的区别

https://www.cnblogs.com/logsharing/p/8448446.html

float是如何存储的?

https://blog.csdn.net/andrew323/article/details/5889285

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值