关于MySQL中的binlog
介绍
undo log 和 redo log是由Inno DB存储引擎生成的。
在MySQL服务器架构中,分为三层:连接层、服务层(server层)、执行层(存储引擎层)
bin log
是 binary log
的缩写,即二进制日志。
MySQL在完成一次DML操作后,Server层还会生成一条binlog,等事务提交之后, 还会将该事务执行过程中产生的所有binlog统一写入到binlog日志文件中
binlog日志文件中保存了所有数据库的所有表结构的变化和表数据的变化
bin log的作用
bin log主要用于下面两个方面:
- 主从复制
对于”双11“这种级别的千万级高并发,单台数据库服务器是扛不住的!
为了提供并发处理的能力,一般会部署多态MySQL服务器,这些服务器中维护着相同的数据副本。这些MySQL服务器组成一个MySQL集群
一个非常典型的部署方案就是一主多从, 在这些MySQL服务器中,有一个主服务器Master和多台从服务器Slave
主服务器只负责数据变更,而从服务器负责查询,在大部分情况下,查询是最耗时的,因为多台从服务器负责查询操作,分担了并发压力。
对于DDL、DML请求,将就给主服务器去执行
对于查询Select请求,就交给从服务器,因为每个服务器中都维护着相同的数据副本,所以交给任意一个从服务器即可
为了让各个从服务器中存储的数据 和主服务器中的数据保持一致,每当我们改变了主服务器中的表结构或者表数据,就需要将这些变更信息同步给各个从服务器,此时bin log就发挥作用了
bin log中保存了所有数据库的所有表的变化信息,从服务器只需要读取主服务器的bin log,就能完成主从服务器之间的数据同步
- 系统备份恢复
如果不小心把整个数据库的数据都删除了,能使用redo log日志恢复数据吗?
当然不能,因为redo log是Inno DB产生的日志文件,Inno DB是表级别的(在创建表时指定表的存储引擎),当直接删除了整个数据库,那么这些redo log日志也不会存在了,即使这些redo log存在,也并不能将这个表的所有数据都恢复,因为redo log日志文件存在复用的情况,对于哪些已经刷新到磁盘的redo log,redo log已经没有存在的必要性了所以会覆盖掉,新写的redo log会覆盖掉之前的旧的redo log,因此redo log只能保证恢复在事务提交之前的部分数据
因为 redo log 文件是循环写,是会边写边擦除日志的,只记录未被刷入磁盘的数据的物理日志,已经刷入磁盘的数据都会从 redo log 文件里擦除。
此时又轮到binlog发挥作用了
因为bin log记录了所有库的所有表的变更信息,所以可以借助binlog来完成数据恢复
配置使用binlog
查看MySQL服务器是否开启了bin log
show variables like 'log_bin';
- 查询到的值是
ON
,代表当前服务器已开启binlog日志功能 - 如果为
OFF
,代表当前服务器没有开启bin log功能
如果当前服务器没有开启bin log,需要手动开启。
关闭服务器,重新启动服务器时添加此启动配置项
--log-bin [=base_name]
base_name是用来记录bin log日志文件的基名称
bin log
日志文件会保存在MySQL的数据目录下,bin log
日志文件不是一个文件,而是一组文件,这一组文件的命名规则是这样的
basename.000001
basename.000002
basename.000003
basename.000004
....
以basename
作为基名称,后面的序号递增。
如果需要修改bin log文件的基名称,可以利用启动项参数修改
--log-bin [=basename]
如果没有指定基名称,那么MySQL服务器会默认以主机名-bin
作为binlog日志文件的基名称。
MySQL 8.x 会默认以binlog
作为基名称
binlog.000001
binlog.000002
....
查看binlog中的内容
binlog日志文件并不能直接查看,因为是二进制文件。
binlog中记录数据库发生变更的各种事件,事件类型非常多,其实并不需要刻意关注binlog中的内容。
如果真的想要查看binlog的内容,则可以借助MySQL提供的mysqlbinlog
工具
mysqlbinlog
工具作为可执行文件,存放在MySQL安装目录的bin目录下
将需要查看的binlog日志文件作为mysqlbinlog
命令的参数
mysqlbinlog ./data/binlog.0000001
binlog日志文件格式
随着MySQL版本的更新,binlog文件格式也有不同的版本,在此以v4最新版本的文件格式来讲解。
一个binlog日志文件的基本格式主要由两部分组成:
- 文件固定头部
- 事件
- 每个binlog日志文件的前4个字节都是固定的,用来作为此文件的一个标识,不用关心。
- 每个binlog日志文件都有若干个事件组成,这些事件就是对数据库表的变更事件。
每个事件又可以分为两部分:
- 事件头 event header,用来对这个事件进行描述的信息
- 真实数据 data
好了,这就是binlog日志文件的基本格式,知道这么多就行了。
两种binlog
binlog日志文件中存储的事件就是对数据库变更的信息,那么如何描述这个事件又有两种方式。
一条sql语句,如果binlog-format
不同,那么可能生成不同类型的binlog事件,大致就可以分为基于语句Statement和基于行row两种类型的binlog
-
当以启动选项
--binlog-format=STATEMENT
启动MySQL服务器时,生成的binlog称作基于语句的日志
。此时只会将一条SQL语句将会被完整的记录到binlog中,而不管该语句影响了多少记录。 -
当以启动选项
--binlog-format=ROW
启动MySQL服务器时,生成的binlog称作基于行的日志
。此时会将该语句所改动的记录的全部信息都记录上。 -
当以启动选项
--binlog-format=MIXED
启动MySQL服务器时,生成的binlog称作基于行的日志
。此时在通常情况下采用 基于语句的日志 ,在某些特殊情况下会自动转为基于行的日志
简单总结:
- 基于语句的binlog 只将更新语句是什么记录下来了。
- 基于行的binlog 将更新语句执行过程中每一条记录更新前后的值都记录下来了
基于语句的binlog可能会导致主从数据不一致的情况,例如下面这条语句
INSERT INTO t(c) SELECT c FROM other_table;
这条语句是从其他表中查询数据并插入到一张表中。
但是对于这条子查询SELECT c FROM other_table;
,可能由于不同服务器版本、不同的系统变量导致同一条语句的结果顺序不同,那么在插入时,自动生成主键,不同的顺序最终生成的记录的主键值不同。
原因是在基于语句的binlog中,只会记录这条sql语句,从库去执行这条sql语句,并不会关心更新前后的记录值。
但是在基于行的binlog中,还保存了这条记录更新前后的值,从库在执行完sql语句后,还会将这条记录调整到一致的状态,从而保证主从数据一致性。
redo、undo、buffer pool、binlog的执行顺序
当执行一条UPDATE语句时,redo、undo、binlog的写入顺序是怎样的?
具体的一条记录的更新流程如下:
-
现在B+树中定位到该记录(锁定读),如果该数据所在的页面不再Buffer pool中,则先将这一页数据从磁盘加载到buffer pool中
-
读取到记录后,判断记录更新前后是否一样,一样的话就跳过,不用更新了
-
首先更新聚簇索引记录
更新聚簇索引记录时:
- 首先向undo页面写入undo日志,因为这是在修改页面,所以修改undo页面前需要先记录这次的redo日志
- 真正的更新记录,在更新前记录响应的redo日志
-
更新其他的二级索引
至此,一条记录更新完成
redo 和 bin log的区别
- 适用对象不同
- binlog是MySQL的Server层实现的日志,是整个MySQL服务器级别的
- redo log是InnoDB存储引擎实现的日志,是表级别的
-
文件格式不同
-
写入方式不同
- binlog是追加写,写满一个文件,就会新创建一个文件,不会覆盖以前的文件
- redo log是循环写,日志空间的大小是固定的,写满了就会从头开始写,覆盖掉之前的redo Log内容
- 用途不同
- binlog 主要用于主从复制、备份恢复
- redo log主要用于发生故障时,表脏数据的恢复
主从复制
前面已经介绍过主从复制,MySQL的主从复制依赖于bin log
复制过程就是将binlog中的数据从主库传输到从库
这个过程是异步的,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLPw0Yy5-1691478160467)(https://cdn.xiaolincoding.com/gh/xiaolincoder/mysql/how_update/%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E8%BF%87%E7%A8%8B.drawio.png?image_process=watermark,text_5YWs5LyX5Y-377ya5bCP5p6XY29kaW5n,type_ZnpsdHpoaw,x_10,y_10,g_se,size_20,color_0000CD,t_70,fill_0)]
MySQL主从复制的三个步骤:
- Master 写入binlog:主服务器写binlog日志,提交事务
- Slave 同步 binlog:把binlog复制到所有从库上,每个从库把binlog保存到暂存日志中
- 回访binlog:从服务器执行完数据的更新后,记录到自己的bin log日志文件中
具体的过程:
- MySQL 主库在收到客户端提交事务的请求之后,会先写入 binlog,再提交事务,更新存储引擎中的数据,事务提交完成后,返回给客户端“操作成功”的响应。
- 从库会创建一个专门的 I/O 线程,连接主库的 log dump 线程,来接收主库的 binlog 日志,再把 binlog 信息写入 relay log 的中继日志里,再返回给主库“复制成功”的响应。
- 从库会创建一个用于回放 binlog 的线程,去读 relay log 中继日志,然后回放 binlog 更新存储引擎中的数据,最终实现主从的数据一致性。
从服务器的数量是不是越多越好?这样分担下来的流量不就更小,每个数据库的压力更小吗?
不是的
从服务器数量增加,对于主服务器来说,IO连接的数量越多,对于每一个从服务器的连接,主服务器都需要创建一个log dump线程来专门负责与这个从服务器的请求。从服务器的数量越多,对主服务器的资源消耗越多,同时还要受限于主库的网络带宽。
在实际使用中,一般遵循一主一副多从的设计,也就是一个主服务器,一个备用的主服务器(在主服务器崩溃后担任主服务器),2-3个从服务器
巨人的肩膀
- 小林Coding——MySQL日志
- 《MySQL是怎么运行的》
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/5e0783a0a40da28b856d98b89c7c9e28.png)
关于MySQL中的binlog
介绍 undo log 和 redo log是由Inno DB存储引擎生成的。 在MySQL服务器架构中,分为三层:连接层、服务层(server层)、执行层(存储引擎层) bin log 是 binary log的缩写,即二进制日志。 MySQL…...
![](https://www.ngui.cc/images/no-images.jpg)
我维护电脑的方法
无论是学习还是工作,电脑都是IT人必不可少的重要武器,一台好电脑除了自身配置要经得起考验,后期主人对它的维护也是决定它寿命的重要因素! 你日常是怎么维护你的“战友”的呢,维护电脑运行你有什么好的建议吗ÿ…...
![](https://img-blog.csdnimg.cn/img_convert/d40066014c0d3a4528da827dcb2e05d2.jpeg)
AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动
产品描述 AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED 输入电压范围从 5 V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用电流采样…...
![](https://img-blog.csdnimg.cn/2322c85b8af149aeb64d898afa376e3a.png)
Python爬虫的解析(学习于b站尚硅谷)
目录 一、xpath 1.xpath插件的安装 2. xpath的基本使用 (1)xpath的使用方法与基本语法(路径查询、谓词查询、内容查询(使用text查看标签内容)、属性查询、模糊查询、逻辑运算) (2&a…...
![](https://img-blog.csdnimg.cn/3c598304fc694897b7e1479aee692cd9.png)
python的virtualenv虚拟环境无法激活activate
目录 问题描述: 解决办法: 解决结果: 问题描述: PS D:\pythonProject\pythonProject\DisplayToolLibs\venv\Scripts> .\activate .\activate : 无法加载文件 D:\pythonProject\pythonProject\DisplayToolLibs\venv\Scripts\…...
![](https://www.ngui.cc/images/no-images.jpg)
uniapp中token操作:存储、获取、失效处理。
实现代码 存储token:uni.setStorageSync(token, res.data.result);获取token:uni.getStorageSync(token);清除token:uni.setStorageSync(token, ); 应用场景 在登录操作中,保存token pwdLogin() {....this.$axios.request({url: .....,method: post,p…...
![](https://www.ngui.cc/images/no-images.jpg)
乐鑫科技 2022 笔试面试题
岗位:嵌入式软件实习生。 个人情况:本科双非电子信息工程,硕士华五软件工程研一在读;本科做过一些很水的项目 ,也拿项目搞了一些奖,相对来说嵌入式方向比较对口。 时间线及面试流程 2021.04.02 笔试 题目分为选择题和编程题,选择题二十题,编程题两题; 选择题基本…...
![](https://img-blog.csdnimg.cn/086896aab5e8406db42682056e08227c.png)
实现UDP可靠性传输
文章目录 1、TCP协议介绍1.1、ARQ协议1.2、停等式1.3、回退n帧1.4、选择性重传 1、TCP协议介绍 TCP协议是基于IP协议,面向连接,可靠基于字节流的传输层协议 1、基于IP协议:TCP协议是基于IP协议之上传输的,TCP协议报文中的源端口IP…...
![](https://img-blog.csdnimg.cn/img_convert/69bccac8bdd67290bd3bb695fdb49e71.jpeg)
Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动地区金融平等
流支付正在成为一种全新的支付形态,Zebec Protocol 作为流支付的主要推崇者,正在积极的推动该支付方案向更广泛的应用场景拓展。目前,Zebec Protocol 成功的将流支付应用在薪酬支付领域,并通过收购 WageLink 将其纳入旗下…...
![](https://img-blog.csdnimg.cn/2c8f006de54942f38ee695fd6bee9ae8.png)
Qt--动态链接库的创建和使用
写在前面 在Qt的实际开发中,免不了使用和创建动态链接库,因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式十二:享元模式(Flyweight Pattern)
当我们需要创建大量相似对象时,享元模式可以帮助我们节省内存空间和提高性能。该模式通过共享相同的数据来减少对象的数量。 在享元模式中,有两种类型的对象:享元(Flyweight)和非享元(Unshared Flyweight&a…...
![](https://www.ngui.cc/images/no-images.jpg)
【LeetCode】88. 合并两个有序数组 - 双指针
这里写自定义目录标题 2023-8-7 22:35:41 88. 合并两个有序数组 双指针 2023-8-7 22:35:41 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int last m n ;while(n > 0){if(m > 0 && nums2[n-1] > nums1[m-1]){nums1[las…...
![](https://communityfile-drcn.op.hicloud.com/FileServer/getFile/cmtybbs/042/413/002/0000000000042413002.20230805095253.26989211028932842263323628487935:20230805095433:2800:5E79DEEAC5F10CADA07D8437D864482EA71CD102EC13F923FCF0D6B2D58ED5D9.png)
HarmonyOS应用开发的新机遇与挑战
HarmonyOS 4已经于2023年8月4日在HDC2023大会上正式官宣。对广大HarmonyOS开发者而言,这次一次盛大的大会。截至目前,鸿蒙生态设备已达7亿台,HarmonyOS开发者人数超过220万。鸿蒙生态充满着新机遇,也必将带来新的挑战。 HarmonyO…...
![](https://www.ngui.cc/images/no-images.jpg)
Qt中qmake、构建、运行、清理的区别
Qt 中默认的执行顺序:qmake--- 编译 --- 运行。 一、qmake qmake: 根据之前项目指南创建的项目文件 .pro,并且运行 qmake [qmake xx.pro]生成调试 [build-ttt-***-Debug] 或者发布 [build-ttt-***-Release] 目录(这个是影子构建…...
![](https://img-blog.csdnimg.cn/dfa6afc1b44f4532a20d6a6a1b1971f5.png#pic_center)
【设计模式——学习笔记】23种设计模式——观察者模式Observer(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章目录 案例引入原始方案实现实现问题分析 介绍基础介绍登场角色 案例实现案例一类图实现分析 案例二类图实现 观察者模式在JDK源码的应用总结文章说明 案例引入 有一个天气预报项目,需求如下: 气象站可以将每天测量到的温度、湿度、气压等等以公告的…...
![](https://www.ngui.cc/images/no-images.jpg)
【奇葩瑞萨-004】RX系列单片机的GPIO初始化
RX系列单片机的GPIO初始化 与IO口相关的寄存器端口(PORT)寄存器端口功能控制(MPC)寄存器MPC.PmnFPS的设置过程MPC寄存器设置注意事项 端口Pmn的初始化不同端口模式下,PORT、MCP寄存器的配置顺序 感想:与STM…...
![](https://img-blog.csdnimg.cn/59c3741e6d2641b99621fd34a9a442d7.png)
【Git】Git切换地址
如何切换git代码地址? 1、查看当前远程 url git remote -v执行命令后,可以看见当前有2个URL。 远程 URL 在一般情况下有两个,分别是 fetch 和 push。 fetch URL 是用于从远程仓库获取最新版本的数据。当您运行 git fetch 命令时…...
![](https://www.ngui.cc/images/no-images.jpg)
elementUI点击当前行更改当前行状态(数据更新DOM不更新问题解决)
<template slot-scope"{row,$index}" slot"menu"><el-button v-if"row.editable" type"text" size"small" click"changeStatus(row,$index)">编辑</el-button><el-button v-else type"…...
![](https://www.ngui.cc/images/no-images.jpg)
python爬取阿里巴巴商品页面数据api
以下是使用Python爬取商品页面的示例代码: import requests from bs4 import BeautifulSoup# 定义要爬取的商品链接 url https://www.alibaba.com/product-detail/High-Quality-Custom-Logo-Printing-Black_60802527914.html# 发送请求 response requests.get(ur…...
![](https://img-blog.csdnimg.cn/80337ac0cd8546d48c5e667ca6a3bca8.png)
angular-mat-select 多选 实现按选择顺序排序
mat-select 正常情况下,多选后,已选项是按列表顺序进行排序,如果我想实现按照点击项目的顺序进行排序,我该如何做呢? [参考网址](Angular order of selected option in multiple mat-select - Stack Overflow) sortComparator是Angular Material中mat-select组件的一个属…...
![](https://img-blog.csdnimg.cn/a25205cefee0432aac5d352b283b359d.png)
爬虫010_列表高级_添加_append_extend_修改_查询_in_not int_删除_del_pop_remove---python工作笔记029
然后再来看列表操作 首先添加append方法 然后插入,坐标是要插入的下标,右边是插入的内容 看结果 1,2,3,4,5,6 然后这个extend,是逐个插入,放到后边 然后是修改,直接对下标赋值 看结果</...
![](https://img-blog.csdnimg.cn/cc479c13833d487bb81ecbaf4fb35a75.png)
微服务服务拆分和远程调用
一、服务架构比较 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
MySQL8.1源码安装与部署
官方文档 https://downloads.mysql.com/archives/community/https://dev.mysql.com/doc/refman/8.1/en/binary-installation.html官方文档源码安装步骤 # Preconfiguration setup $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql # Beginning of source-b…...
![](https://www.ngui.cc/images/no-images.jpg)
algebraic reconstruction technique(ART)
数值线性代数的Kaczmarz方法被Gordon,Bender,Herman引入至CT重建中,称为ART方法。 A x b Axb Axb A A A为 m n m\times n mn的稀疏矩阵。 A A A的元素 a i j a_{ij} aij表示像素 j j j对射线 i i i投影的贡献。 A A A的行向量 a i T a…...
![](https://img-blog.csdnimg.cn/6619c707bfb043aabc85dc29bf021452.png#pic_center)
oracle11g安装
oracle11g安装 安装环境 虚拟机版本:centos7.9 虚拟机ip:192.168.5.144 oracle版本:11g oracle安装包:p13390677_112040_Linux-x86-64_1of7.zip,p13390677_112040_Linux-x86-64_2of7.zip,p13390677_11204…...
![](https://img-blog.csdnimg.cn/ad78f07ab0a748d9928fa958c2008991.png)
网络防御(9)
.一、SSL工作过程是什么? SSL位于应用层和传输层之间,它能够为基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议本身分为两层: 上层为SSL握手协议(SSL handshake protocol)、SSLpassword变化协议(S…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring核心与设计思想
文章目录 Spring是什么?认识Spring IoC容器传统的开发图书管理系统设计可能导致的问题 使用IoC容器 Spring是什么? Spring是一个用于构建企业级应用程序的开源框架,它为Java开发者提供了一种简化和加速应用程序开发的方式。Spring框架提供了…...
![](https://www.ngui.cc/images/no-images.jpg)
【stream的使用】使用stream.filter过滤List对象
Stream初相识 概括讲,可以将Stream流操作分为3种类型: 创建Stream Stream中间处理 终止Steam 每个Stream管道操作类型都包含若干API方法,先列举下各个API方法的功能介绍。 开始管道 主要负责新建一个Stream流,或者基于现有的数组…...
![](https://img-blog.csdnimg.cn/b5eb81158e424a95938db9764f0dafed.png)
Flink多流处理之connect拼接流
Flink中的拼接流connect的使用其实非常简单,就是leftStream.connect(rightStream)的方式,但是有一点我们需要清楚,使用connect后并不是将两个流给串联起来了,而是将左流和右流建立一个联系,作为一个大的流,并且这个大的流可以使用相同的逻辑处理leftStream和rightStream,也可以…...
![](https://img-blog.csdnimg.cn/09a8821f71214f7dbfbd9884af84d66d.png)
对任意类型数都可以排序的函数:qsort函数
之前我们学习过冒泡排序: int main() {int arr[] { 9,7,8,6,5,4,3,2,1,0 };int sz sizeof(arr)/sizeof(arr[0]);int i 0;for (i 0; i < sz-1; i) {int j 0;for (j 0; j < sz-1-i; j) {if (arr[j] > arr[j 1]){int temp 0;temp arr[j];arr[j] ar…...
![](/images/no-images.jpg)
佛山网上业务系统/网络优化工程师需要学什么
1、An Intuitive Explanation of Fourier Theory 这是一个介绍傅里叶变换的英文网站,比较详细。 2、对以上英文网站的粗略翻译 3、这个博客也是不错的 http://blog.sina.com.cn/s/blog_8df0c75501015vuw.html 4、推荐阅读:The Scientist and Engin…...
![](/images/no-images.jpg)
做自己的直播网站/关键词搜索指数查询工具
clean the macOS, no more input installed;in Xcode, run debug;drag debug app to ~/library/input methods;to systray, add input;in Xcode, active the input;it works!if no effect, go to 1, and then restar macOS, go to 1....
![](/images/no-images.jpg)
网站建设专家公司排行/培训体系
探寻SCSI设备容量如何获取代码。 分析 8G USB转SD卡启动打印信息: sd 3:0:0:0: [sdb] 15523840 512-byte logical blocks: (7.94 GB/7.40 GiB) 获取设备容量,单位是sector,后面 的7.94 GB是容量字节除1000单位,7.40 GiB是容量字…...
![](https://img-blog.csdnimg.cn/img_convert/bf06e53a946a5d03f495f39139ac9a6a.png)
国外做电子元器件在哪个网站/seo和sem
随着2021年高考的结束,想必考生们肯定很想知道2021高考成绩公布时间是什么时候,为了方便大家,一起来看看吧!下面给大家分享关于2021年甘肃高考成绩公布时间最新,欢迎阅读!2021年甘肃高考成绩公布时间:高考评卷分别在兰…...
![](/images/no-images.jpg)
有没有专门做奶粉的网站/快速排名工具免费查询
第一次被破坏 其实发生在双亲委派模型出现之前–即JDK1.2发布之前。由于双亲委派模型是在JDK1.2之后才被引入的,而类加载器和抽象类java.lang.ClassLoader则是JDK1.0时候就已经存在,面对已经存在 的用户自定义类加载器的实现代码,Java设计者…...
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
设计网站推荐外网/十大营销策略
参考网址:http://www.360doc.com/content/10/1214/23/3843418_78215161.shtml 我是下载的virtualdub 能用 哈哈 步骤: 1:file open video file 2:video filters add convert format 选择4:2:0 YV12 3:SAVE AVI OK...