内存类型

Python语言高频重点汇总

我怕爱的太早我们不能终老 提交于 2020-02-20 17:55:37
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录 Python语言高频重点汇总 **GitHub面试宝典仓库——点这里跳转** 1. 函数-传参 2. 元类 3. @staticmethod和@classmethod两个装饰器 4. 类属性和实例属性 5. Python的自省 6. 列表、集合、字典推导式 7. Python中单下划线和双下划线 8. 格式化字符串中的%和format 9. 迭代器和生成器 10. args和**kwargs 11. 面向切面编程AOP和装饰器 12. 鸭子类型 13. Python中的重载 14. 新式类和旧式类 15. `__new__`和`__init__`的区别 16. Python中的作用域 17. GIL线程全局锁 18. 协程 19. 闭包 20. lambda匿名函数 21. Python中函数式编程 22. Python中的拷贝 23. Python的垃圾回收机制 24. List 25. Python中的is 26. read, readline和readlines 27. Python2和Python3的区别 28. super init 1. 函数-传参 回到顶部 在python中,给一个函数传递参数其实是把实参这个变量对应的地址复制了一份,然后把复制的这个地址传递给函数中局部变量形参

Python学习

泪湿孤枕 提交于 2020-02-19 00:04:07
Python 中的标识符是 区分大小写 的。   所有 Python 的 关键字 只包含 小写字母 以 下划线 开头的标识符是有特殊意义的。   以 单下划线开头 _foo 的代表 不能直接访问的类属性 ,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;   以 双下划线开头 的 __foo 代表 类的私有成员 ;   以 双下划线开头和结尾 的 __foo__ 代表 Python 里 特殊方法专用的标识 ,如 __init__() 代表类的构造函数。 Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用 缩进来写模块 。   缩进的空白数量是可变的,但是所有代码块语句必须包含 相同的缩进空白数量 ,这个必须 严格执行    IndentationError: unindent does not match any outer indentation level 错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。   相同数目的 行首缩进 空格数   建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用   如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"

java基础加强

陌路散爱 提交于 2020-02-17 22:57:44
java程序的执行过程 编写java程序 编写完的java程序,进行保存时自动将.java文件编译成.class文件 先启动虚拟机,虚拟机加载字节码对象.class文件,进行这个类的main方法开始执行 数据类型 基本数据类型 类型 描述 byte 占1个字节,范围-127-128,-2 7 到2 7 -1 short 占2个字节,范围-2 15 到2 15 -1 int 占4个字节,范围-2 31 到2 31 -1 long 占8个字节,范围-2 63 到2 63 -1 float 占4个字节,单精度 double 占8字节,双精度度 char 占2字节 boolean 占1字节 引用数据类型 基本类型的字面值规则 整数的字面值是int类型 byte、short、char三种比int小的整数,可以用范围内的值可以直接赋值 浮点数字字面值,是double类型 字面值的后缀:L表示long,F表示float,D表示double类型 字面值的前缀:0b表示二进制,0表示八进制,0x表示十六进制,\u表示char16机制 基本类型的运算规则 计算结果的数据类型,和算项的最大类型保持一致 byte、short、char三种比int小的整数,运算时自动转化成int 整数运算溢出 浮点数计算不精确 浮点数的特殊值: Java基础 1.验证JDK是否安装成功的命令: Echo %JAVA

Python自动化开发课堂笔记【Day03】 - Python基础(字符编码使用,文件处理,函数)

假装没事ソ 提交于 2020-02-17 18:26:01
字符编码使用 1. 文本编辑器如何存取文件 文本编辑器相当一个运行在内存中的进程,所以文件内容在编辑未存储时都是在内存中的,尚未存储在硬盘之中,在没有保存之前,所编辑的任何文本都只是一堆字符,没有任何逻辑上 的意义,当存储文件的时候需要以一定的编码格式存储于硬盘之中,当进行文件读取的时候也需要以同样的编码格式进行读取到内存之中进行操作,如果存储文件的编码和读取文件的编 码不一致则会引起读取过程中的乱码导致文件操作失败。     P.S. --> Python解释器执行py文件的原理。          Step1. Python启动解释器(相当于文本编辑器)          Step2. 解释器从硬盘上将目标文件加载到内存中          Step3. 解释器执行代码得到结果(Python解释去具有文件读取和代码执行功能) 2. 字符编码的使用 --> 文件一什么编码方式保存的,就以什么编码方式打开 1. 在内存中文本是以Unicode二进制形式存在的 2. 保存文件时以文本编辑器指定的编码(比如UTF-8)encode后保存的硬盘中 3. 读取文件时文本编辑器同样需要以相同的编码格式将文件从硬盘decode后读取到内存中 4. 被读取到内存中的文件重新以Unicode二进制形式存在进行编辑 3. py程序的执行 -*- coding:utf-8 -*- 1.

我的大厂面试经历

被刻印的时光 ゝ 提交于 2020-02-17 17:31:41
2020-02-17 10:53:03 在这里提供一下自己复习的东西吧,我也就把这个东西给搞了一遍,然后面试基本没啥问题了,如果问的很深的话,那就只能只求多福了兄弟!其中可能有一些错误或者由于编译环境有差异请大家自动忽略这些错误。 1:信号的生命周期? 信号产生-》信号在进程中注册-》信号在进程中的注销-》执行信号处理函数 2:信号的产生方式? (1)当用户按某些终端键时产生信号(2)硬件异常产生信号【内存非法访问】(3)软件异常产生信号【某一个条件达到时】(4)调用kill函数产生信号【接受和发送的所有者必须相同,或者发送的进程所有者必须为超级用户】(5)运行kill命令产生信号 3:信号处理方式? (1)执行默认处理方式(2)忽略处理(3)执行用户自定义的函数 4:如何消除隐式转换? 使用explicit关键字进行修饰 5:重载,重写和隐藏的区别? 重载:即函数重载 重写【覆盖】:即用于虚函数 隐藏:只要派生类的函数名与基类相同就会隐藏 6:volatile表示什么?有什么作用? 易变的,不会被编译器进行优化,让程序取数据直接去内存中的。 7:Static_cast<>,dynamic_cast<>,const_cast<>,reinterpret_cast<>的各自作用和使用环境? Static_cast:能完成大部分转换功能,但是并不确保安全 Const_cast

Linux Device Driver 3rd 下

做~自己de王妃 提交于 2020-02-16 09:34:54
第十一章 内核的数据类型 坚持使用严格的数据类型,并且使用-Wall -Wstrict-prototypes选项编译可以防止大多数的代码缺陷 内核使用的数据类型主要分为三大类: ① 标准C语言类型,类似int ② 类似u32这样有确定大小的类型 ③ 类似pid_t这样用于特定内核对象的类型 使用标准C语言类型 在不同的体系架构上,普通C语言的数据类型所占空间的大小并不相同。 Linux系统中,指针和long整型的大小总是相同的。 为数据项分配确定的空间大小 有时内核代码需要特定大小的数据项,多半是用来匹配预定义的二进制结构或者和用户口空间进行通讯或者通过在结构体中插入"填白 padding"字段 来对齐数据。 当需要知道自己的数据大小时,内核提供了下列数据类型,定义在<asm/types.h>中 ① u8; 无符号字节8位 ② u16; 无符号字 16位 ③ u32; 无符号32位 ④ u64; 无符号64位 相应的有符号类型也存在,只需将名字中的u用s替换就可以了。 接口特定的类型 内核中最常用的数据类型由typedef声明,这样可以防止出现任何移植性问题。 当需要打印一些接口特定的数据类型时,最行之有效的方法就是将其强制转换成可能的最大类型(通常是long或者unsigned long),然后用相应格式。 因为格式和类型相匹配,而且也不会丢失数据位

python 可变与不可变数据类型

╄→尐↘猪︶ㄣ 提交于 2020-02-16 04:58:40
1、什么是不可变类型: 变量对应的值不能被修改,如果修改就会生成一个新的值,从而分配新的内存空间。变,id会变,会生成一个新的值。 不可变类型: 数字(int、long、float),布尔(bool),字符串(str),元组(tuple) 2、什么是可变类型: 变量对应的值中数据可以被修改,但内存地址保持不变。变,则id不变,还是原来的那个。 可变类型: 列表(list),字典(dictionary),集合(set) 来源: https://www.cnblogs.com/hexiaorui123/p/9948721.html

4.java变量

孤人 提交于 2020-02-15 23:31:41
1.java中如何定义变量的语言 数据类型 变量名; 2.如何给变量赋值 语言 变量名=值; 3.变量本质是什么、 本质就是内存中的一块空间,这块空间有‘类型’、“名字”、“值” int a;//在内存中开辟一块空间,这块空间的类型是int a=100; System.out.println(a);//通过变量名去访问那块内存 System.out.println(a);//重复访问 4 public class VarTest{ public static void mian(String[] args){ int i=10;//申请一块int类型的空间,起名为i,并赋值10; System.out.println(i); //重新赋值 i=100; System.out.println(i); //变量可以重新赋值,但是不能重复声明, //在同一个域中,变量名不能重复; //写入int i=200;是错误的 //java语言中的变量必须先声明,再赋值才能够使用 int a; System.out.println(a);//这样写是会报错的 注意问题: int i1,i2,i3=23;//声明三个变量i1,i2,i3,类型都是int类型,i1,i2两个变量没有赋值,只有i3变量赋值,i1,i2,没有赋值,即没有初始化所以不能访问。 } public static void

虚拟机内存结构

喜夏-厌秋 提交于 2020-02-15 20:34:04
JVM的主要结构如下图所示,图片引用自 舒の随想日记 。 方法区和堆由所有线程共享,其他区域都是线程私有的 程序计数器(Program Counter Register) 类似于PC寄存器,是一块较小的内存区域,通过程序计数器中的值寻找要执行的指令的字节码,由于多线程间切换时要恢复每一个线程的当前执行位置,所以每个线程都有自己的程序计算器。这一个区域不会有OutOfMemeryError。当执行Java方法时,这里存储的执行的指令的地址,如果执行的是本地方法,这里的值是Undefined。 虚拟机栈(Java Stack) 虚拟机栈也是线程私有的,每创建一个线程,虚拟机就会为这个线程创建一个虚拟机栈,虚拟机栈表示Java方法执行的内存模型,每调用一个方法,就会生成一个栈帧(Stack Frame)用于存储方法的本地变量表、操作栈、方法出口等信息,当这个方法执行完后,就会弹出相应的栈帧。 如果请求的栈的深度过大,虚拟机可能会抛出 StackOverflowError 异常,如果虚拟机的实现中允许虚拟机栈动态扩展,当内存不足以扩展栈的时候,会抛出 OutOfMemoryError 异常。 栈帧(Stack Frame) 栈帧分为三部分:局部变量区(Local Variables)、操作数栈(Operand Stack)和帧数据区(Frame Data)。 局部变量区(Loca

文件处理

纵然是瞬间 提交于 2020-02-15 05:42:25
目录 一、字符编码 1.1计算机基础   1.2文本编译器存取文件的原理   1.3Python解释器执行py文件的原理   1.4 Python解释器与文本编译的异同   1.5 字符编码介绍     1.5.1 什么是字符编码     1.5.2 涉及到字符编码的两个场景     1.5.3 字符编码发展史与分类     1.5.4内存为什么不用UTF-8呢?     1.5.5 字符编码之文本编译器操作     1.5.6 乱码分析   1.6总结 二、Python2和3字符编码的区别   2、1 字符编码应用之Python   2、1、1 执行Python程序的三个阶段   2、2 Python2与Python3字符串类型的区别   2、2、1 Python2 三、 基本的文件操作   3、1 什么是文件?   3、2 为什么要有文件?   3、3 如何用文件?   3、4 总结 四、绝对路径和相对路径   4、1 绝对路径   4、2 相对路径 五、文件的三种打开方式   5、1 文件打开模式之r模式   5、2 文件打开模式之w模式   5、3 文件打开模式之a模式   5、4 文件打开读取二进 六、with管理文件操作上下文 七、文件的高级应用 八、文件修改的两种方式   8、1 方式一   8、2 方式二 一、字符编码 1.1计算机基础 CPU:控制程序的运行