01 | 基础架构:一条SQL查询语句是如何执行的? MySQL架构图 左侧图是丁奇老师原本的图,右侧是个人理解所画的,按照在文中的理论来说,个人认为应该是先查询缓存,如果查不到才会进行词法分析,比如有一条SQL:select * from T where ID = 10;,先去缓存中以该条SQL为 ...
分类:
数据库 时间:
2021-03-06 15:02:24
阅读次数:
0
let、const、var区别? let和const不存在变量提升(没有预解析,var有预解析)。 let和const在同一作用域范围内不能重复定义变量。(var可以)。 let和const有严格的作用域(块级作用域:变量在代码块中被执行结束后会被释放掉)。(var存在于全局作用域)。 const声 ...
分类:
其他好文 时间:
2021-03-03 12:37:33
阅读次数:
0
线程通信 等待: public final void wait(); public final void wait(long timeout); //必须在对obj加锁的同步代码块中,在一个线程中,调用obj.wait()时,此线程会释放其拥有的所有锁标记,同时此线程在无限期等待的状态中,释放锁,进 ...
分类:
编程语言 时间:
2021-03-03 12:10:36
阅读次数:
0
一句话总结: 简述口诀: synchronized,获取释放,虚拟机,降低死锁 Lock释放获取很随意,公平中断多同步 一:synchronized和Lock的比较 synchronized1:简单, 隐式地获取锁,将锁的获取和释放固化,也就是先获取再释放。 2多种优化方案(偏向锁,轻量锁) 3锁的 ...
分类:
其他好文 时间:
2021-03-02 12:29:27
阅读次数:
0
前言 Java 相比 C/C++ 最显著的特点便是引入了自动垃圾回收 (下文统一用 GC 指代自动垃圾回收),它解决了 C/C++ 最令人头疼的内存管理问题,让程序员专注于程序本身,不用关心内存回收这些恼人的问题,这也是 Java 能大行其道的重要原因之一,GC 真正让程序员的生产力得到了释放,但是 ...
分类:
编程语言 时间:
2021-03-01 14:04:44
阅读次数:
0
C++ 2010 #include <uf.h>#include <uf_object_types.h>#include <uf_obj.h>#include <uf_modl.h>#include <uf_assem.h>#include <uf_kf.h>#include <uf_ui.h>#i ...
分类:
其他好文 时间:
2021-03-01 13:43:29
阅读次数:
0
C语言检索内存情况 内存分配的方式 内存分配方式: 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置 ...
分类:
编程语言 时间:
2021-02-25 12:19:25
阅读次数:
0
Object中有两个涉及到了线程的方法: void wait():让当前线程进入等待状态,直到被唤醒;(会释放锁) void notify():唤醒当前正在等待的线程。(只会通知,不会释放锁) 因为Object是所有类的鼻祖,所以每一个对象都拥有wait()和notify()。 生产者和消费者模型 ...
分类:
其他好文 时间:
2021-02-24 13:12:42
阅读次数:
0
多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码 解决方式:将父类中的析构函数改为虚析构或者纯虚析构 虚析构和纯虚析构共性: 可以解决父类指针释放子类对象 都需要有具体的函数实现 虚析构和纯虚析构区别: 如果是纯虚析构,该类属于抽象类,无法实例化对象 虚析构语法: ...
分类:
其他好文 时间:
2021-02-20 12:06:01
阅读次数:
0
1.管道的概念 管道本质上是内核中的一个缓冲区,让具有血缘关系的进程之间可以进行通信。它其实相当于一个伪文件,不占用磁盘空间,我们可以通过和对文件一样的读写方式去操作管道。 管道具有两部分,读端和写端,分别对应两个文件描述符,数据从写端流入,从读端流出。 操作管道的进程被销毁之后,管道会被系统自动释 ...
分类:
其他好文 时间:
2021-02-19 13:02:45
阅读次数:
0