内存类型

获取计算机所有属性硬件信息

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-07 17:01:28
package com.*****.common.winUtil.sysUtil; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java.util.Properties; import org.hyperic.sigar.CpuInfo; import org.hyperic.sigar.CpuPerc; import org.hyperic.sigar.FileSystem; import org.hyperic.sigar.FileSystemUsage; import org.hyperic.sigar.Mem; import org.hyperic.sigar.NetFlags; import org.hyperic.sigar.NetInterfaceConfig; import org.hyperic.sigar.NetInterfaceStat; import org.hyperic.sigar.OperatingSystem; import org.hyperic.sigar.Sigar; import org.hyperic.sigar.SigarException; import org.hyperic.sigar

深拷贝和浅拷贝

旧巷老猫 提交于 2020-04-04 18:36:52
1. 浅拷贝 copy函数是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象。 不可变类型的浅拷贝示例代码: import copy # 使用浅拷贝需要导入copy模块 # 不可变类型有: 数字、字符串、元组 a1 = 123123 b1 = copy.copy(a1) # 使用copy模块里的copy()函数就是浅拷贝了 # 查看内存地址 print(id(a1)) print(id(b1)) print("-" * 10) a2 = "abc" b2 = copy.copy(a2) # 查看内存地址 print(id(a2)) print(id(b2)) print("-" * 10) a3 = (1, 2, ["hello", "world"]) b3 = copy.copy(a3) # 查看内存地址 print(id(a3)) print(id(b3)) 运行结果: 140459558944048 140459558944048 ---------- 140459558648776 140459558648776 ---------- 140459558073328 140459558073328 不可变类型的浅拷贝说明: 通过上面的执行结果可以得知,不可变类型进行浅拷贝不会给拷贝的对象开辟新的内存空间

Java方法

守給你的承諾、 提交于 2020-04-04 17:51:09
什么是方法? Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的基础语法 修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; } 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 1、修饰符:暂时写成public static。修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 2、返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void,同时方法体中不能编写“return 值(与返回值类型相同);”这样的语句,但是可以编写“return;”这样的语句。只要带有return关键字的语句执行,return语句所在的方法结束。在有返回值的情况下,必须保证“return 返回值;”语句百分百执行(不能放在if、while这些之中;当然if...else...就可以百分百保证能执行,就可以)。 3、方法名:是方法的实际名称。方法名和参数表共同构成方法签名。要是合法的标识符;方法名最好见名知意;最好是动词;首字母小写,后面每个单词首字母大写。 4、参数类型:形参是局部变量

Python基础(六)

梦想的初衷 提交于 2020-04-04 15:20:16
今日主要内容 驻留机制 小数据池 代码块 深浅拷贝 集合 一、 驻留机制 (一)== 和 is == :判断两边的内容是否相同 a = -6 b = -6 print(a == b) # True is :判断两边的内存地址是否相同 a = -6 b = -6 print(a is b) # Fales (二)什么是驻留机制 python中为了节省内存定义的一套规则,部分数据在重复定义的时候指向同一个内存空间,也就是内存地址是相同的 在驻留机制范围内的代码块和小数据池,在定义变量的时候都将履行驻留机制 代码块的优先级高于小数据池 (三)什么是代码块 一个py文件、一个函数、一个模块、一个类、终端中的每一行代码都是一个代码块 (四)小数据池和代码块的驻留范围 小数据池 数字: -5 ~ 256 字符串: 只包含数字、字母、下划线的全部字符串 在python3.6解释器中字符串使用乘的时候总长度不能超过20(只包含数字、字母、下划线) 在python3.7解释器中字符串使用乘的时候总长度不能超过4096(只包含数字、字母、下划线) 布尔值 True False 代码块 数字: -5 ~ 正无穷 字符串: 全部字符串(包含数字、字母、下划线、特殊字符、中文等) 使用乘的时候总长度不能超过20(只包含数字、字母、下划线) 布尔值 True False (五)指定驻留 指定任意字符串

C语言结构体

Deadly 提交于 2020-03-31 08:06:43
1. 引入 问题域:跟问题本身相关的一些因素,元素,条件等这些 分析问题,需求,目标 算法思路 解决方案域: 与具体的解决问题的方式,方法相关的一些因素,条件 数学 = 》数学方法(公式,方程) C 语言 = 》算法模型、存储类型、语法 ... 问题域 = 》解决方案域 要把问题域里面的因素 = 》解决方案域的因素 “人” 在解决方案域用什么描述 建模 :来描述问题 现实世界物体需要抽象成计算机语言中数据类型 学生: 学号 =>int 姓名 =>char[] 性别 =>char/int 年龄 =>int 地址 =>char[] ... => 这些物体的属性组合到一个数据类型中 C 语言中允许程序员定义自己的组合类型 结构体 联合体 / 共用体 枚举 2. 结构体 : 自定义的一种组合数据类型 2.1 定义 struct 结构体名 { 成员类型 1 成员名 1; 成员类型 2 成员名 2; 成员类型 3 成员名 3; .... }; 结构体名 :符合 C 语言中标识符的规定 struct 结构体名 =>( 你定义的 ) 新类型的名字 成员类型 :C 语言任意合法的数据类型都可以 成员名 : 符合 C 语言中标识符的规定 eg: struct student { int num; char name[32]; char sex; int age; char addr[32]; }; =

Java面试知识点总结

纵饮孤独 提交于 2020-03-30 16:09:29
Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础;若您初涉Java,可以通过这些问题建立起对Java初步的印象,待有了一定基础后再后过头来看收获会更大)。本文的问题列表来自于http://www.nowcoder.com/discuss/3043,在此感谢原作者的无私分享:) 1. Java中的原始数据类型都有哪些,它们的大小及对应的封装类是什么? (1)boolean boolean数据类型非true即false。这个数据类型表示1 bit的信息,但是它的大小并没有精确定义。 《Java虚拟机规范》中如是说:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。这样我们可以得出 boolean类型单独使用是4个字节,在数组中又是1个字节。 那虚拟机为什么要用int来代替boolean呢?为什么不用byte或short,这样不是更节省内存空间吗

研一寒假04_static&组合类型

给你一囗甜甜゛ 提交于 2020-03-30 02:41:08
#--------------------------------static&组合类型----------------------------------# /* c++管理数据内存方式 */ //自动存储:在函数内部定义的常规变量使用中断存储空间,称为自动变量(存储在栈中),意味着他们在所属的函数被调用时自动产生,在函数结束时消亡(内存自动释放) //静态存储:在函数外面定义或者是使用关键字static定义的变量,在整个程序执行期间都存在,例如:static double fee=56.50; //动态存储:使用new创建和使用delete释放内存的变量,new和delete管理一个内存池,这个内存池有别于用于静态存储和自动存储的内存,数据的生命周期不完全受函数的生存或程序控制,程序员有更大的控制权 //内存泄漏:使用new分配内存之后,没有使用delete释放内存 /* 组合类型 */ #include <iostream> //新建一个结构 struct inflatable { int year; int month; }; //主函数 int main() { //使用新类型定义结构 inflatable s01,s02,s03; //使用类型inflatable创建结构变量s01,s02,s03 s01.year = 1998; //给s01中的成员year赋值 /

Java 基础 - 数组

a 夏天 提交于 2020-03-26 03:08:57
目录 初识数组 数组的初始化 定义数组变量 初始化 静态初始化 动态初始化 数组的访问 数组元素读取、赋值 数组的遍历 for 循环 foreach循环 深入了解数组 JDK 中的 Array 数组的内存分布 多维数组 数组是编程语言中最常见的一种数据结构,可以用于储存多个数据,通常可通过数组元素的索引来访问数组元素,包括数组元素赋值和取出数组元素的值. 初识数组 数组也是一种类型,属于引用数据类型. 数组元素的类型是唯一的,一个数组里只能存储一种类型的数据. 数组的长度是固定的,即一个数组一单初始化完成,数组在内存中所占的空间将被固定下来,长度不在发生改变.即使把某个数组的元素清空,其所占的空间依然被保留. 数组的初始化 定义数组变量 Java支持两种语法格式定义数组: type[] arr; type arr[]; 对于这两种定义而言,通常使用第一种格式来定义数组,因为第一种有更好的语义.第二种容易和变量名混淆 初始化 Java 数组只有初始化之后才能使用,所谓的初始化,就是为数组的元素分配内存空间.并为每个数组元素赋初始值. 静态初始化 由程序员显示的指定每个数组原始的初始值.由系统决定数组的长度. 静态初始化的语法格式为: type[] arr = new type[]{item1, item2, item3,...}; type 为数组元素的数据类型, 数组元素类型必须为

Ehcache计算Java对象内存大小

最后都变了- 提交于 2020-03-24 06:25:00
在EHCache中,可以设置maxBytesLocalHeap、maxBytesLocalOffHeap、maxBytesLocalDisk值,以控制Cache占用的内存、磁盘的大小(注:这里Off Heap是指Element中的值已被序列化,但是还没写入磁盘的状态,貌似只有企业版的EHCache支持这种配置;而这里maxBytesLocalDisk是指在最大在磁盘中的数据大小,而不是磁盘文件大小,因为磁盘文中有一些数据是空闲区),因而EHCache需要有一种机制计算一个类在内存、磁盘中占用的字节数,其中在磁盘中占用的字节大小计算比较容易,只需要知道序列化后字节数组的大小,并且加上一些统计信息,如过期时间、磁盘位置、命中次数等信息即可,而要计算一个对象实例在内存中占用的大小则要复杂一些。 计算一个实例内存占用大小思路 在Java中,除了基本类型,其他所有通过字段包含其他实例的关系都是引用关系,因而我们不能直接计算该实例占用的内存大小,而是要递归的计算其所有字段占用的内存大小的和。在Java中,我们可以将所有这些通过字段引用简单的看成一种树状结构,这样就可以遍历这棵树,计算每个节点占用的内存大小,所有这些节点占用的内存大小的总和就当前实例占用的内存大小,遍历的算法有:先序遍历、中序遍历、后序遍历、层级遍历等。但是在实际情况中很容易出现环状引用(最简单的是两个实例之间的直接引用

浅谈PHP5中垃圾回收算法(Garbage Collection)的演化

大城市里の小女人 提交于 2020-03-24 02:11:37
3 月,跳不动了?>>> 文章来源:PHP开发学习门户 地址: http://www.phpthinking.com/archives/636 前言 PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容。PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变。本文将分别讨论PHP5.2和PHP5.3的垃圾回收机制,并讨论这种演化和改进对于程序员编写PHP的影响以及要注意的问题。 PHP变量及关联内存对象的内部表示 垃圾回收说到底是对变量及其所关联内存对象的操作,所以在讨论PHP的垃圾回收机制之前,先简要介绍PHP中变量及其内存对象的内部表示(其C源代码中的表示)。 PHP官方文档中将PHP中的变量划分为两类:标量类型和复杂类型。标量类型包括布尔型、整型、浮点型和字符串;复杂类型包括数组、对象和资源;还有一个NULL比较特殊,它不划分为任何类型,而是单独成为一类。 所有这些类型,在PHP内部统一用一个叫做zval的结构表示