1.offsetof(TYPE, MEMBER) offsetof是一个自定义的宏,其返回值是一个member成员在一个type类型的结构体中相对于结构体首地址的字节偏移量; 分析其工作原理: 1.(TYPE *)0将0地址强制转换成TYPE *类型指针 且可以认为,这个类型的结构体的首地址是0x0 ...
分类:
其他好文 时间:
2018-05-13 13:50:37
阅读次数:
167
类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制。 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification ...
分类:
编程语言 时间:
2018-05-12 02:44:30
阅读次数:
191
一、Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java ...
分类:
其他好文 时间:
2018-05-10 23:34:20
阅读次数:
184
类型装载、连接与初始化 Java虚拟机通过装载、连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用。其中装载就是把二进制形式的Java class文件读入Java虚拟机中去;连接把读入虚拟机的二进制形式的Java class文件合并到虚拟机的运行时的状态中去。连接可以分为三个子 ...
分类:
编程语言 时间:
2018-05-10 15:47:46
阅读次数:
213
Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别 ...
分类:
其他好文 时间:
2018-05-05 16:47:57
阅读次数:
197
# 1.locals()和globals()def func(): x = 1 y = 2 print(locals()) # 查看局部变量 # {'y': 2, 'x': 1} print(globals()) # 查看当前程序所有全局变量 '''{'__name__': '__main__', ... ...
分类:
编程语言 时间:
2018-05-05 14:46:41
阅读次数:
211
如果我们说另一种不同的语言,那么我们就会发觉一个有些不同的世界。 解读:不同的语言是从不同的角度描述世界的。 Java:是一种纯粹的面向对象的语言,几乎一切都是对象。 用引用操纵对象:操纵内存中的元素(数据类型,直接操纵(引用),间接操纵(指针))。 Java:类型 标识符;String s;定义一 ...
分类:
其他好文 时间:
2018-05-05 12:33:27
阅读次数:
198
移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。 运算符 含义 例子 << 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0) x<<3 >> "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值 ...
分类:
编程语言 时间:
2018-05-03 22:06:39
阅读次数:
186
公司的项目上线之前会进行代码合规性检查,其中很容易违反的一个规则就是“不要把原始类型转换成较低的精度”,实际开发的过程中,很多方法在处理数据时,尤其在做移位操作的时候,难免要把int类型转换成byte类型,这时候就不可避免得出现原始类型转换成较低精度的情况,没有什么简便的方法,只能通过调用ByteA ...
分类:
其他好文 时间:
2018-05-03 19:36:15
阅读次数:
358
关于C语言指针类型 强制转换 引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值。不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个地址就是硬件访问的依据,而名字只是提供给程序员的一种记住这个地址的方便一点的方法。但是,不同的变量在机 ...
分类:
编程语言 时间:
2018-05-01 23:16:17
阅读次数:
269