内存类型

python-02.字符编码

*爱你&永不变心* 提交于 2019-11-27 13:31:54
一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1、打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失 #2、要想永久保存,需要点击保存按钮:编辑器把内存的数据刷到了硬盘上。 #3、在我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。 三 python解释器执行py文件的原理 ,例如python test.py #第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器 #第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:pyhon的解释性,决定了解释器只关心文件内容,不关心文件后缀名) #第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码( ps:在该阶段,即真正执行代码时,才会识别python的语法,执行文件内代码,当执行到name="egon"时,会开辟内存空间存放字符串"egon") 四 总结python解释器与文件本编辑的异同 #1、相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样 #2、不同点:文本编辑器将文件内容读入内存后

数据类型

心不动则不痛 提交于 2019-11-27 11:56:08
Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) Python3 的六个标准数据类型中: 不可变数据(3 个): Number(数字)、String(字符串)、Tuple(元组); 可变数据(3 个): List(列表)、Dictionary(字典)、Set(集合)。 一、Python中的数据类型有数字、字符串,列表、元组、字典、集合等。有两种方法判断一个变量的数据类型 1、isinstance(变量名,类型) 2、通过与其他已知类型的常量进行对比 java 8种基本数据 类型 byte char short int long float double boolean 3种复杂 数据类型 接口,类, 数组 基本类型 byte :Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short :短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int :整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long :长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L float :浮点型

python数据结构面试合集

孤街浪徒 提交于 2019-11-27 10:59:56
为什么学python 答题路线:a、python的优点,b、python的应用领域广 具体: 优点 1、python语法非常优雅,简单易学 2、免费开源 3、跨平台,可以自由移植 4、可扩展,可嵌入性强 5、第三方库丰富 应用领域 1、在系统编程中应用广泛,比如说shell工具。 2、在网络爬虫方面功能非常强大,常用的库如scrapy,request等 3、在web开发中使用也很广泛,如很多大型网站都用python开发的,如ins,youtube等,常用的框架如django,flask等 4、python在系统运维中应用广泛,尤其在linux运维方面,基本上都是自动化运维。 5、在人工智能,云计算,金融等方面也应用非常广泛。 通过什么途径学习python 通过看官方文档 通过哔哩哔哩上的视频教程 通过百度查资料 通过买python相关方面的书 公司线上和开发环境使用的什么系统 线上用的centos和Ubuntu系统 开发环境用的windows,mac,还有Ubuntu。 python和java、php、c、c#、c++ 等其他语言对比? Java C# PHP Python (开发效率高),这些语言本身不需要你去管理内存了。它们都有自己的虚拟机,对于开辟内存、释放内存都由这个虚拟机处理。 C 和 Python、Java、C#等C语言: 代码编译得到 机器码

JVM类生命周期概述:加载时机与加载过程

自作多情 提交于 2019-11-27 10:31:19
  一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述了类的各种信息,并且它们最终都需要被加载到虚拟机中才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制。本文概述了JVM加载类的时机和生命周期,并结合典型案例重点介绍了类的初始化过程,进而了解JVM类加载机制。 一、类加载机制概述   我们知道,一个.java文件在编译后会形成相应的一个或多个Class文件(若一个类中含有内部类,则编译后会产生多个Class文件),但这些Class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的 类加载机制。     与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载和连接都是在程序运行期间完成,这样会在类加载时稍微增加一些性能开销,但是却能为Java应用程序提供高度的灵活性,Java中天生可以动态扩展的语言特性多态就是依赖运行期动态加载和动态链接这个特点实现的。例如,如果编写一个使用接口的应用程序,可以等到运行时再指定其实际的实现

JVM系列之七:HotSpot 虚拟机

房东的猫 提交于 2019-11-27 07:38:30
1. 对象的创建 1. 遇到 new 指令时 ,首先检查这个指令的参数是否能在 常量池中定位到一个类的符号引用 ,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,执行相应的 类加载 。 2. 类加载检查通过之后,为 新对象分配内存 (内存大小在类加载完成后便可确认)。在堆的空闲内存中划分一块区域(‘指针碰撞-内存规整’或‘空闲列表-内存交错’的分配方式)。 A、假设Java堆是规整的,所有用过的内存放在一边,空闲的内存放在另外一边,中间放着一个指针作为分界点的指示器。那分配内存只是把指针向空闲空间那边挪动与对象大小相等的距离,这种分配称为“指针碰撞” B、假设Java堆不是规整的,用过的内存和空闲的内存相互交错,那就没办法进行“指针碰撞”。虚拟机通过维护一个列表,记录哪些内存块是可用的,在分配的时候找出一块足够大的空间分配给对象实例,并更新表上的记录。这种分配方式称为“空闲列表“。 C、使用哪种分配方式由Java堆是否规整决定。Java堆是否规整由所采用的垃圾收集器是否带有压缩整理功能决定。 D、分配对象保证线程安全的做法:虚拟机使用CAS失败重试的方式保证更新操作的原子性。(实际上还有另外一种方案:每个线程在Java堆中预先分配一小块内存,称为本地线程分配缓冲,TLAB。哪个线程要分配内存,就在哪个线程的TLAB上分配,只有TLAB用完并分配新的TLAB时

.NET基础面试题整理

╄→尐↘猪︶ㄣ 提交于 2019-11-27 07:11:40
文章转载自: http://www.pythonheidong.com/blog/article/2967/ 今年毕业,本学期找工作期间在面试前做的一些临时的准备 以下的关于老赵分享的面试题解答参考了手头的书籍和视频教程,以及网上的资料,现整理出来希望对大家有所帮助,不对或欠佳的地方望大家指出来我好改正。 1.什么是.NET?什么是CLI?什么是CLR?IL是什么? (1).net用于代码编译和执行的集成托管环境,换句话,它管理应用程序运行的方方面面,包括首次运行的编译,为程序分配内存 存储数据和指令,对于应用程序授予或拒绝相应的权限,并启动管理应用程序的执行,剩余内存的在分配。由于所有.net应用程序 都是在.net framework上面执行,所以开发人员只需考虑与.net framework打交道,而不必关系和底层操作系统上面的实现 包括CLR和BCL (2).CLI(common language infrastructure)公共语言基础结构,一项国际性的标准,没有规定标准具体如何实现。相反,它描述了一个 CLI平台在符合标准的前提下应该具有什么行为。包含了:运行时(CLR),公共中间语言(CIL),公共类型系统(CTS), 公共语言规范(CLS),元数据(Metadata),框架(framework) (3)CLR:公共语言运行时,负责加载和运行程序 IL:中间语言,C

C#面试题

戏子无情 提交于 2019-11-27 07:10:55
文章转载自: http://www.pythonheidong.com/blog/article/2184/ 1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。 2.什么是事务?什么是锁? 答:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。   锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。 3.什么是索引,有什么优点? 答:索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。 4.视图是什么?游标是什么? 答:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作;

Redis学习

China☆狼群 提交于 2019-11-27 05:30:43
1、什么是Redis 基本概念 :redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库(非关系性数据库)。 redis的优势 1、速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 2、支持丰富数据类型,支持string,list,set,sorted set,hash 3、支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 4、丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除 2、redis的应用场景 缓存 1、 对于一些要返回给前端数据的缓存,当有大量数据库sql操作时候,为了避免每次接口请求都要去查询数据库,可以把一些数据缓存到redis中,这样是直接从内存中获取数据,速度回增快很多。 2、web端用户,用于登陆缓存session数据,登陆的一些信息存到session中,缓存到redis中 秒杀 对于string 数据类型,因为string 类型是二进制安全的,可以用来存放图片,视频等内容,另外由于Redis的高性能读写功能,而string类型的value也可以是数字,可以用作计数器(INCR,DECR),比如分布式环境中统计系统的在线人数,秒杀等。 排行榜 对于 zset 数据类型,有序的集合,可以做范围查找

Java面试宝典

坚强是说给别人听的谎言 提交于 2019-11-27 03:24:37
相关概念 面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性. 可扩充性:增加新的子类不影响已经存在的类结构. 接口性:多态是超累通过方法签名,想子类提供一个公共接口,由子类来完善或者重写它来实现的. 灵活性: 简化性: 代码中如何实现多态 实现多态主要有以下三种方式: 1. 接口实现 2. 继承父类重写方法 3. 同一类中进行方法重载 虚拟机是如何实现多态的 动态绑定技术(dynamic binding),执行期间判断所引用对象的实际类型,根据实际类型调用对应的方法. 接口的意义 接口的意义用三个词就可以概括:规范,扩展,回调. 抽象类的意义 抽象类的意义可以用三句话来概括: 为其他子类提供一个公共的类型 封装子类中重复定义的内容 定义抽象方法,子类虽然有不同的实现,但是定义时一致的 ## 接口和抽象类的区别 比较 抽象类 接口 默认方法 抽象类可以有默认的方法实现 ,java 8之前,接口中不存在方法的实现. 实现方式 子类使用extends关键字来继承抽象类.如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现. 子类使用implements来实现接口

数据库存储引擎

泪湿孤枕 提交于 2019-11-27 02:37:23
数据库存储引擎 对于初学者来说我们通常不关注存储引擎,但是 MySQL 提供了多个存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 InnoDB InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。我的电脑上安装的 MySQL 5.6.13 版,InnoDB就是作为默认的存储引擎。InnoDB还引入了行级锁定和外键约束,在以下场合下,使用InnoDB是最理想的选择: 更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。 事务