Java,C#已经比较熟悉,最近在从0开始自学C++。学习过程中必然会与Java,C#进行对比,有吐槽,也有点赞。 先来讲讲最基本也是最重要的部分:参数传递的方式。 对于类型, Java分基本类型、复合类型,从另外一个角度分是值类型,引用类型。在展开对比前, 我们先来看看三个关键方式: 值 创建新的 ...
分类:
编程语言 时间:
2017-01-22 07:57:45
阅读次数:
184
C++内存区域分为: 程序代码区:存储程序代码的地方 栈区:编译器自动管理(分配释放)的内存区域,如函数参数,函数中的局部变量 堆区(又称动态存储区):由C语言中的函数malloc和free和C++中的运算符new ,delete申请和释放,程序员自己管理 静态区(又称全局区):存放全局变量,静态全 ...
分类:
编程语言 时间:
2017-01-19 19:30:45
阅读次数:
174
java中由static修饰的变量,长量,方法称为静态变量,长量,方法。 缘由:有时候需要两个类需要在同一个内存区域共享一个数据,这样就可以将这个变设为静态的,静态成员属于类所有,区别于个别对象。 注意事项:1,虽然静态成员也可以使用对象.静态成员,但这样不好区分静态成员和非静态成员。 2,静态方法 ...
分类:
编程语言 时间:
2017-01-18 12:17:56
阅读次数:
221
指针!!!!!! 指针指向的是地址,也称作指针变量,占有4个字节。可以对内存区域进行读写访问指针的声明int *p//定义一个指针变量p 类型是int* (还有char*等)int *p=(int *) 40000//强制类型转换 p指向地址40000 *p表示从地址40000处开始的若干个字节内容 ...
分类:
其他好文 时间:
2017-01-15 11:34:35
阅读次数:
228
Java虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,有各自的创建时间和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束进行建立或销毁。Java虚拟机第二版规定,虚拟机管理的内存包含以下几个运行时数据区域 ...
分类:
编程语言 时间:
2017-01-14 20:08:23
阅读次数:
283
BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。 数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。 数据 ...
分类:
其他好文 时间:
2017-01-10 23:29:46
阅读次数:
215
Java虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域有各自的用途,有各自的创建时间和销毁时间,有的区域随着虚拟机进程的启动而存在,有的区域则是依赖用户线程的启动和结束进行建立或销毁。Java虚拟机第二版规定,虚拟机管理的内存包含以下几个运行时数据区域 ...
分类:
编程语言 时间:
2017-01-08 21:27:56
阅读次数:
373
JVM内存模型总体架构图 程序计数器多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程有要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是nat ...
分类:
编程语言 时间:
2017-01-08 12:37:20
阅读次数:
222
1、从内存中读取数据是微秒级别的。而从磁盘读则是毫秒级别的。二者相差一个数量级。所以想优化数据库,第一个要做到的就是优化io。 2、key_buffer_size[global]设置的内存区域大小缓存了myisam表的索引。由于myisam只缓存索引在内存中,并不缓存数据在内存,所以如果内存允许,要 ...
分类:
数据库 时间:
2016-12-31 16:38:00
阅读次数:
207
1. 值参数 当利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并且将此拷贝传递给该方法。被调用的方法不传内存中实参的值,所以使用值参数时,可以保证实际值是安全的。 i=1,j=2 2. 引用型参数 和值参不同的是,引用型参数并不开辟新的内存区域。当利用引用型参数向方法传递形参时,编译程序将把 ...