• 数据结构


    1排序

    2.一级缓存二级缓存

    缓存为了减轻数据库访问量;

    一级比二级多了一级

    一级缓存请求内存,没有的话在请求数据库;

    二级缓存请求内存,没有在请求二级缓存区,没有在请求数据库;

    Hibernate 二级缓存需要添加配置文件

    redis 自带二级缓存

    因为数据库去进行IO操作(增删更新)都需要像(唱片)的刻度一样,动刻度,非常慢,

    所以需要缓存减轻数据库访问量达到什么减轻数据库压力等等作用;
    3.堆栈队列

    堆、栈区别总结:

    1.堆栈空间分配

     ①栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

     ②堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。

    2.堆栈缓存方式

    ①栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放。

    ②堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。

    3.堆栈数据结构区别

    ①堆(数据结构):堆可以被看成是一棵树,如:堆排序。

    ②栈(数据结构):一种先进后出的数据结构。

    队列先进先出

    ①堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。

    ②栈就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来。(后进先出)

    ③队列只能在队头做删除操作,在队尾做插入操作.而栈只能在栈顶做插入和删除操作。(先进先出)

    什么是Java优先级队列(Priority Queue)?

    PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的。在创建的时候,我们可以给它提供一个负责给元素排序的比较器。PriorityQueue不允许null值,因为他们没有自然顺序,或者说他们没有任何的相关联的比较器。最后,PriorityQueue不是线程安全的,入队和出队的时间复杂度是O(log(n))。

  • 相关阅读:
    JS 逻辑运算符&&与||的运算
    Jquery on("click") 方法绑定事件后执行多次解决办法
    java的web开发使用struts2/springMVC和spring框架理解
    HTTPClient
    eclipse中配置tomcat内存大小
    杀掉window占用端口
    Unirest
    乐观锁
    自定义标签
    xss和csrf攻击
  • 原文地址:https://www.cnblogs.com/jieyi/p/12459172.html
Copyright © 2020-2023  润新知