获得鼠标指向的页面元素
发表于
|
分类于
前端
类F12鼠标选中功能
1 | window.onmousemove = track_mouse; |
Java RMI
发表于
|
分类于
Java深入
概念
RMI(RemoteMethodInvocation,远程方法调用)在JDK1.2中实现,大大增强了Java开发分布式应用的能力。
Java本身对RMI规范的实现默认使用的是JRMP协议。而在Weblogic中对RMI规范的实现使用T3协议。
- JRMP:JavaRemoteMessageProtocol,Java远程消息交换协议。这是运行在Java RMI之下、TCP/IP之上的线路层协议。该协议要求服务端与客户端都为Java编写,就像HTTP协议一样,规定了客户端和服务端通信要满足的规范。
- JNDI:Java命名和目录接口(the Java naming and directory interface,JNDI)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得读者可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。
PriorityQueue实现大小顶堆 解决topK问题
发表于
|
分类于
Java深入
java.lang.Object
——继承者 java.util.AbstractCollection
————继承者 java.util.AbstractQueue
——————继承者 java.util.PriorityQueue
类型参数: E - collection 中所保存元素的类型。
所有已实现的接口: Serializable, Iterable, Collection, Queue
1 | public class PriorityQueue<E> extends AbstractQueue<E> |
Tomcat简易实现
发表于
|
分类于
Tomcat
Spring循环依赖
发表于
|
分类于
Spring
结论
通常来说,如果问Spring内部如何解决循环依赖,一定是默认的单例Bean中,属性互相引用的场景。
原型(Prototype)的场景是不支持循环依赖的,通常会走到
AbstractBeanFactory
类中下面的判断,抛出异常。1
2
3if (isPrototypeCurrentlyInCreation(beanName)) {
throw new BeanCurrentlyInCreationException(beanName);
}原因很好理解,创建新的A时,发现要注入原型字段B,又创建新的B发现要注入原型字段A…,这就套娃了。
你猜是先StackOverflow还是OutOfMemory?Spring怕你不好猜,就先抛出BeanCurrentlyInCreationException。
基于构造器的循环依赖,就更不用说了,官方文档都摊牌了,你想让构造器注入支持循环依赖,是不存在的,不如把代码改了。
IO流之切割合并文件
发表于
|
分类于
Java深入
思路
以每块多大的分量去切割成多少块。
比方说 1024 的 文件以 500 切,切成 3 块,就是 500、500、24 的三块。最后一块可能装不满 500,那就得取实际数量了,也就是 24 。
3 块文件的起始点就是:
- 第一块:0,500
- 第二块:500,1000
- 第三块:1000,1024
实现要点
- 进行读写,读得时候可以使用 RandomAccessFile 的 seek 方法设置开始读取的地方,然后结束的地方再使用输入的结束点进行判断,从而进行分割。
- 文件合并,因为 初始化文件的时候就确定了切块后的每块的文件名,只需要将其全部读取出来然后写,记得这里的 new FileOutputStream( file, true ) 构造方法应该这样写,因为是合并文件,所以这里得 是追加。