加入收藏 | 设为首页 | 会员中心 | 我要投稿 南昌站长网 (https://www.0791zz.cn/)- 终端安全、安全管理、数据治理、图像分析、大数据!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

应用层安全架构设计

发布时间:2021-01-30 12:14:48 所属栏目:传媒 来源:互联网
导读:接下来我们来看看我们在MySQL中的操作所对应的binlog内容分别是什么。 初始化 我们上面提到过,binlog是由一个一个的event组成的。从MySQL 5.0开始,binlog的第一个event都为Format_desc,位于图中的Event_type那一列。可以看到内容为Server ver;5.6.50-log,

接下来我们来看看我们在MySQL中的操作所对应的binlog内容分别是什么。

初始化

我们上面提到过,binlog是由一个一个的event组成的。从MySQL 5.0开始,binlog的第一个event都为Format_desc,位于图中的Event_type那一列。可以看到内容为Server ver;5.6.50-log, Binlog ver: 4,说明当前使用的MySQL版本为5.6.50,Binlog的版本是V4。

创建数据库

然后我创建了一个名为student的DB,其Event_type是Query,这个event的内容为CREATE DATABASE student DEFAULT CHARACTER SET = utf8mb4,一个建库语句。

新建表

然后我创建了一个名为student的表,Event_type也是Query,内容为use student; CREATE TABLE student (id INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT),一个建表语句。

插入数据

然后我们执行INSERT语句给该表插入两行数据,再次查看binlog。
 

方法区

  1. 方法区,也是各个线程共享的内存区域,它是用来被存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。
  2. 从上面的图,可以看到 1.8 之前和之后,方法区所在的位置是有差别的。在 Java 8 之前有个永久代的概念,实际上指的是 HotSpot 虚拟机上的永久代,它用永久代实现了 JVM 规范定义的方法区功能,这部分由于是在堆中实现的,受 GC 的管理,不过由于永久代有 -XX:MaxPermSize 的上限,所以如果大量地调用 String.intern 方法 (将字段串放入永久代中的常量区)或 动态生成类(将类信息放入永久代),很容易造成 OOM。
  3. 所以,在 Java 8 中就把方法区的实现移到了本地内存中的元空间中,这样方法区就不受 JVM 的控制了,这个区域也就不会进行 GC,也因此提升了性能,正因为放到了本地内存,也就不存在由于永久代限制大小而导致的 OOM 异常了。
  4. 另外,运行时常量池也是方法区的一部分,用来存放编译期生成的各种字面量和符号引用,这部分内容在类加载后进入该常量池中。

特点:1、所有线程共享 2、1.8 之后移到了元空间 3、涉及到常量池

直接内存

从上面的图中,看到有直接内存这个区域

  • 直接内存,并不是虚拟机运行时数据区的一部分,其实可以理解为堆外内存,在一些场景下,比如:NIO 类引入了一种基于通道(Channel)与缓冲区(Buffer)的 IO 方式,它可以使用 Native 函数库直接分配堆外内存,然后通过一个存储 Java 堆中的对象作为这块内存的引用,这样能够显著提高性能,因为避免了 Java 堆和 Native 堆中来回复制数据。

2.2 类加载器

1、什么是类加载机制?

JVM 运行时,java 虚拟机会把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换、解析和初始化,最终形成可以被 jvm 可以直接使用的类型,这就是类加载机制。

2、说说类加载的过程?

开局一张图:

(编辑:南昌站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读