豫ICP备17040950号-2

Class文件结构全面解析(上)

什么是Class文件? 在Java刚刚诞生的时候就提出了一个非常著名的口号:“一次编写,到处运行。(Write Once,Run Anywhere)”。为了实现平台无关性,各种不同平台的虚拟机都统一使用一种程序储存格式,就是字节码(ByteCode)。它就以二进制字节流的方式被存放在Class文件中,其中包含了Java虚拟机指令集和符号表以及其他辅助信息。

MYSQL快速导入大SQL文件

规模小的项目一般使用MYSQL数据库,有自动脚本,每天定时生成.SQL脚本数据库备份。如果某天BOSS突然反馈说业务侧操作失误或者需要恢复到昨天的整库数据,排除使用BINLOG方式恢复。但是生产导出的.sql文件脚本有几百M大小。按照传统方式去导入脚本,导入速度非常慢,耗时太长,均值情况下至少2,3个小时。恢复数据时间太长,业务侧和BOSS都有意见,顾而找到了如下的这种方法:
原来在默认情况下,当你去执行某个.sql文件的时候事物是自动提交的,也就是说insert一次提交一次,这样大大拖延了导入的速度;在使用一下这种方式之后50多万的数据,比起自动提交的导入来说快了不少,以前需要几个小时才能导入的数据,一两分钟就导入完了,以下是具体的使用方法:

网卡如何接收数据包

IP报文可以看作一个包

Linux网卡驱动程序,将IP包添加14字节的MAC包头,构成MAC包。
MAC包中含有发送端和接收端的MAC地址信息。既然是驱动程序创建的MAC包头信息,当然可以随便输入地址信息的,主机伪装就是这么实现的。
驱动程序将MAC包拷贝到网卡芯片内部的缓存区,就算完事了。有网卡芯片接手处理。网卡芯片对MAC包,再次封装成物理帧,添加头部同步信息和CRC校验。然后丢到网线上,就完成一个IP报文的发送。所有挂接到本网线的网卡都可以看到该物理帧。

计算机底层原理杂谈(白话文)

  简单说一下写这篇文章的缘由。首先这个不是教学类型的,是我Java实在学不下去了,因为好多计算机底层原理都不是很清楚,每次学新东西都由于想不明白底层原理困惑,所以下决心停止学习Java的新东西,开始搞明白底层。一开始搞的所谓的底层是“Java虚拟机”,然后又C语言汇编语言什么的,其实是想图快,尽快接近现在做的事情。后来发现不行,这事快不了,所以干脆就从物理层面用导线灯泡集成芯片开始动手做一个cpu开始吧。其实也没多久,大概三个多月吧,从我之前写的【从零开始自制cpu】系列的学习文章也可以看到开始时间。cpu做好之后(其实后来由于老是烧坏各种电路没做完),开始看操作系统,