• 整理下最近的手抄纸


    那些优雅的数据结构:

    bloomfilter 线段树 树状数组 trie树 后缀树后缀数组 并查集 hash表 b树 红黑树 堆与优先队列

    hash算法提供了一种快速存取数据的方法,他用一种算法建立键值与真实值之间的联系(每个真实值只能有一个键值,但一个键值可以有多个真实值),这样可以快速在数组等数据结构中存取数据。我们只要知道key值,就可以快速存取T类型的数据,而不同于像在链表等数据结构中查找一样找来找去。key值,一般是hash算法算出来的,就是把任意长度的输入通过hash算法变成固定长度的输出,输出即为散列值,这是一种压缩,不同的散列输入可能会出现同一输出,不能从散列值的输出唯一确定输入值。

    bloomfilter中hash函数的个数K,位数组大小M,加入字符串数量N的关系为,给定M N,k=ln(2)*M/n时出错概率最小

    UDDI:技术模型/tModel:在UDDI中注册的规范

    UDDI注册中心数据分4类:技术模型、企业、企业服务、服务绑定

    一系列webservice标准: WS-* WS-Policy WS-Security 

    tModel:指向WSDL的URL;Provider:服务部署部门的名字、描述和分类;Service:服务的名字描述和分类 Biding访问地址和分类

    网络爬虫是一个自动提取网页的程序,他为Search Enginee从WEB上下载网页,是搜索引擎的重要组成

    UDDI商业注册所提供的信息包含3部分:白页:地址,联系方式,企业标识;黄页:基于分类法的行业类别;绿叶:企业所提供的WS的技术信息,指向文件或URL

    UDDI XML Schema定义了四种主要信息类型:商业实体、服务、绑定、服务调用规范说明

    ClassLoader原理:

    当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构分别为:bootstrap classloader ;extension classloader; system classloader

    其中第一个为了加载java核心类(所以不需要再环境变量中指定这些class类库),它不是classloader的子类,而是JVM自身的实现;第二个为了引入出java核心类意外的新功能,加载新功能的标准机制;第三个是JVM 被调用,加载来自命令java的classpath或java.class.path系统属性或classpath*作系统属性所指定的JAR类包和类路径。

    第二类是第三类的parent,而第一类是第二类的parent,但是第一类并不是一个classloader。

    Classloader加载类步骤:

    1、检测此class是否再如果(即是否存在于cache中)

    2、若parent classloader不存在(那他肯定是第一类),则请求JVM从bootstrap classloader载入,不成功则寻找class文件(于此classloader相关的类路径中寻找,找不到就抛出classnotfound异常)

    3、请求parent classloader载入,不成功则寻找class文件(于此classloader相关的类路径中寻找,找不到就抛出classnotfound异常)

    最终返回一个class或异常

    其中寻找class文件过程可通过覆盖classloader的findclass方法实现自己的载入策略或覆盖loadclass方法实现自己的载入过程。

  • 相关阅读:
    在centos上搭建Git服务器
    glog日志库移植Android平台
    水葱
    路易斯安娜鸢尾
    再力花
    矮生百慕大
    洒金珊瑚
    八角金盘
    锦绣杜鹃
    茶梅球
  • 原文地址:https://www.cnblogs.com/avenxia/p/2573668.html
Copyright © 2020-2023  润新知