成员变量

java内存分布和面向对象

泄露秘密 提交于 2019-11-30 19:45:41
Java内存区域 栈概念: 是线程私有的,它的生命周期与线程相同,每个方法执行的同时都会创建一个栈帧,用于存储局部 变量操作数栈、动态链接、方法出口等信息。 堆概念: 堆是虚拟机所管理的内存中最大的一样区域。堆是被所有线程共享的一块内存区域,在虚拟机启动时 创建。此区域用来存储对象实例。 方法区: 和堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 对象的创建过程 过程解释: 1.jvm加载器先将.class字节码加载入方法区,运行时调用静态方法main() 2.在对内存开辟main()方法内存空间,执行构造方法。 3.执行构造方法会 4.在堆内存给对象开辟内存空间,并编有内存地址 5.生成的对象的引用(对象地址)传递给对象变量。引用和指针类似是一种存放对象地址的变量。 最后main()程序执行完毕进行弹栈释放,堆内存中的对象会被JVM虚拟机的垃圾回收机制回收。 成员变和局部变量的区别 1.在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 2.在内存中的位置不同 成员变量:在堆内存 局部变量:在栈内存 3.生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 4.初始化值不同 成员变量:有默认初始化值 局部变量

Vue 实例成员及指令

天涯浪子 提交于 2019-11-30 19:38:13
Vue 一. 什么是Vue 可以独立完成前后端分离时 Web项目的JavaScript框架 二.为什么学Vue 前端三大主流框架:Angular React Vue Vue结合了其他框架优点、轻量级、中文API、数据驱动、双向绑定、MVVM设计模式、组件化开发、单页面应用 # vue是js渐进式框架 # 根据开发需求,可以决定vue框架控制项目的具体方位:可以为一个标签,也可以为一个页面,甚至可以为整个项目 三.如何使用Vue 开发版本: vue.js 生产版本: vue.min.js vue的导入: <!--方式一: 本地--> <script src="js/vue.js"></script> <!--方式二: cdn--> <script src="https://cn.vuejs.org/js/vue.min.js"></script> 插值表达式: <div id="app"> <!-- {{ }} 是插值表达式,中间的info是变量,可通过vue实例成员data赋值 --> <!-- 注意:插值表达式中可以写基础类型的数据,只有写变量时才能被data赋值 --> {{ info }} {{ 'info' }} 渲染到页面是: info </div> <1>Vue实例: <script> new Vue({ // 实例成员 }) </script> <!--

静态变量和成员变量的区别

情到浓时终转凉″ 提交于 2019-11-30 18:02:56
静态变量和成员变量的不同: ① 所属范围不同。静态变量是属于类范围的;成员变量是属于对象范围的。 ② 存活时间不同。类的一生有着静态变量的伴随;而成员变量只能陪类走一程,对象产生的时候它就产生,而且它会随着对象的消亡而消亡。 ③ 存储位置不同。静态变量时存储在方法区里的静态区;成员变量存储在堆栈内存区。 ④ 调用方式不同。静态变量可以通过类名调用,也可以通过对象来调用;成员变量只能通过对象名调用。 来源: https://my.oschina.net/u/4216033/blog/3113394

const、volatile、mutable的用法

六眼飞鱼酱① 提交于 2019-11-30 17:15:47
const 、 volatile 、 mutable 的 用法 const 修饰普通变量和指针 const 修饰变量,一般有两种写法: const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是: const 修饰的类型为 TYPE 的变量 value 是不可变的。对于一个非指针的类型 TYPE ,无论怎么写,都是一个含义,即 value 值不可变。 例如: const int nValue ; //nValue 是 const int const nValue ; //nValue 是 const 但是对于指针类型的 TYPE ,不同的写法会有不同情况: l 指针本身是常量不可变 (char*) const pContent; l 指针所指向的内容是常量不可变 const (char) *pContent; (char) const *pContent; l 两者都不可变 const char* const pContent; 识别 const 到底是修饰指针还是指针所指的对象,还有一个较为简便的方法,也就是沿着 * 号划一条线: 如果 const 位于 * 的左侧,则 const 就是用来修饰指针所指向的变量,即指针指向为常量; 如果 const 位于 * 的右侧, const 就是修饰指针本身,即指针本身是常量。 const

C语言知识点总结篇

白昼怎懂夜的黑 提交于 2019-11-30 15:48:04
Debug和Release版本比较 Debug附加了许多调试信息,主要用于调试,故文件大; Release是经过优化后的版本,去掉了调试信息,代码进行了优化,故文件较小,且编译速度快过Debug,用于发布平台的配置管理器的设置; 32位与64位 32位,地址为32位,最大使用内存4G,只能运行32位的数据; 64位,地址为64位,既可以运行32位的数据,也可以运行64位的数据; 指针 指针是个量,对应一块内存区域; 指针存储的是某个内存单元的地址; 访问方式: 1、直接访问:按变量地址存取变量值,取地址符&; 2、间接访问:通过存放变量地址的变量去访问变量,间接运算符*; 在函数中改变一个外部变量,需要变量的地址; 若是数据,需要指向数据的指针存储数据的地址; 若是指针,需要指向指针的指针存用户指针的地址; 数组与指针 p[i]等价于*(p+i),&p[i]等价于p+i; a[i][j]等价于*(*(a+i)+j),&a[i][j]等价于*(a+i)+j, a[i]等价于*(a+i); 行数组指针定义方法:数据类型(*指针变量名)[二维数组列数]; 二维数组地址不可变化,数据可以变化,可以在不修改地址的情况下管理数据,指针数组指向的数据不可变化,但地址可以变化,在不修改数据的情况下查看数据; 三维数组与指针,A[i][j][k]的三种表达形式:*(A[i][j]+k)、*(*(A

Java this关键字详解

青春壹個敷衍的年華 提交于 2019-11-30 13:31:28
Java中this关键字在构造方法中的使用 Java this关键字详解 this 关键字用来表示当前对象本身,或当前类的一个实例,通过 this 可以调用本对象的所有方法和属性。例如: public class Demo { public int x = 10 ; public int y = 15 ; public void sum () { // 通过 this 点取成员变量 int z = this .x + this .y ; System .out . println ( "x + y = " + z ); } public static void main (String [] args ) { Demo obj = new Demo (); obj . sum (); } } 运行结果: x + y = 25 上面的程序中,obj 是 Demo 类的一个实例,this 与 obj 等价,执行 int z = this.x + this.y;,就相当于执行 int z = obj.x + obj.y;。 注意:this 只有在类实例化后才有意义。 使用this区分同名变量 成员变量与方法内部的变量重名时,希望在方法内部调用成员变量,怎么办呢?这时候只能使用this,例如: public class Demo { public String name ; public

transient关键字

若如初见. 提交于 2019-11-30 13:14:22
java中在数据传输过程中我们有时需要使用serialization,serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。 来源: https://www.cnblogs.com/otways/p/11590695.html

成员变量和局部变量的区别?静态变量和实例变量的区别?静态方法和实例方法的区别?

我的未来我决定 提交于 2019-11-30 09:34:25
(成员变量 = 实例变量 + 静态变量) 成员变量和局部变量的区别? 成员变量定义在类中,方法外;局部变量定义在方法中。 成员变量在堆内存中(成员变量属于对象,对象进堆内存);局部变量在栈内存中(局部变量属于方法,方法进栈内存)。 成员变量随着对象的创建而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,随着方法的调用完毕而消失。 成员变量有系统默认的初始化值;局部变量没有默认值,必须定义、赋值,才能使用。 java 运行局部变量和成员变量同名,如果成员变量和方法里的局部变量同名,局部变量会覆盖成员变量。如果需要在这个方法里引用被覆盖的成员变量,则可使用 this.(对于实例变量) 或类名.(对于类变量)的方式来访问成员变量。 静态变量和实例变量的区别? 静态变量前要加 static 关键字;实例变量不用加。 静态变量直接用类名调用即可;实例变量只能用对象调用。 静态变量存储在方法区的静态存储区,是所有对象共享的;实例变量存储在 Java 堆中,是每个对象私有的。(Java的方法区有个静态存储区,专门存放静态变量和静态块) 静态方法和实例方法的区别? 静态方法带有 static 关键字;实例方法没有 static 关键字。 静态方法直接用类名调用即可;实例方法只能用对象调用。 静态方法只能访问静态成员,不能访问实例成员;而实例方法可以访问静态成员和实例成员。

Java第七次作业

余生长醉 提交于 2019-11-30 06:34:55
题目1:在作业5的基础上,再创建一个柱体类,包含矩形对象、高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积、换底两个功能方法,在主类中输入长、宽、高,计算柱体体积,输入新的长、宽、高,创建新的矩形对象,并利用换底方法换底,再次计算柱体体积。 JuXing.java /*定义一个矩形类,有设置器和访问器 * 有3个成员变量 * 一个求面积的方法 * */package com; public class JuXing { double c;//成员变量 double k;//成员变量 double area;//成员变量 public double getC() { return c; } public void setC(double c) { this.c = c; } public double getK() {//访问器 return k; } public void setK(double k) {//设置器 this.k=k; } double getArea(double c,double k){//求面积的运算 double area=c*k; return area; } } ZhuTi.java /*有3个成员变量,有设置器和访问器 * 2个求柱体体积的方法 * */package com; public class ZhuTi {//类

第7次作业--访问权限、对象使用

前提是你 提交于 2019-11-30 06:18:01
题目一:在作业5的基础上,再创建一个柱体类,包含矩形对象、高和体积等三个成员变量,一个构造方法进行成员变量初始化,和计算体积、换底两个功能方法,在主类中输入长、宽、高,计算柱体体积,输入新的长、宽、高,创建新的矩形对象,并利用换底方法换底,再次计算柱体体积。 来源: https://www.cnblogs.com/Zhous0570/p/11566981.html