面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)

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

1、成员变量描述的是对象的特征,包含在对象之中。不同的对象成员变量彼此独立。一个对象成员变量的改变,不会影响其他对象。

静态变量独立在对象之外,是所有对象共享的变量。静态变量改变后会影响所有对象。

2、成员变量只能通过对象.的方式访问。而静态变量,可以通过对象.的方式访问,也可以通过类名.的方式访问。所以静态变量也称为类变量

3、成员变量存放在堆空间中,静态变量存放在数据段中。

静态方法和成员方法的区别:

1、静态方法加载时机在对象之前,可以通过对象.和类名.的方式访问。而成员方法只能通过对象.的方式访问。

2、静态方法不能直接访问成员变量和成员方法。成员方法可以访问成员变量和静态变量

垃圾回收机制:

虚拟机进行垃圾回收时,回收的是没有被变量指向的对象。该过程程序员无法控制。但是可以通过调用System.gc(),加快垃圾回收的速度。

变量按作用域分,分为三种:

1、局部变量,存放在栈空间中,书写在方法或语句块中。语句块一结束,变量空间马上释放。所以,局部变量不能跨方法或语句块使用。

2、成员变量(属性):存放在堆中,书写在方法外,类中。随对象产生而产生,随对象销毁而消失。

3、静态变量(类变量):存放在数据段中,书写在方法外,类中。加上static修饰符。常驻内存,不会消失。

重载概念:

重载发生在同一个类中,两个方法的方法名相同,参数列表不同(参数类型、参数个数参数位置),和返回类型无关。调用方法时。根据方法的参数来决定执行哪个方法。

包:

就是文件夹,通过package定义该类所在的包。

包的作用:

1.可以组织相关的类

2.可以做到信息隐藏。即去掉public后,类不能被其他包调用

如果一个包中的类,要想访问别的包中的类,可以通过import,导入该类。下面两种包中的类无需导入可以直接使用。

1.本包中的类

2.、java.lang包中的类

时间: 2024-12-28 01:14:34

面向对象——概念(成员变量、静态变量、成员方法、静态方法、垃圾回收机制、重载、包)的相关文章

python中垃圾回收机制和对象变量的指向问题,深拷贝

变量.对象和引用 一个变量也就是变量名,当代码第一次赋值时就创建了他,之后的赋值将改变已创建的变量名的值. 变量类型,变量中没有类型之说,类型存在于对象中,变量只是在一个特定的时间对对象的引用. 变量使用,变量出现在表达式中会立即被对象所替代,所有变量在使用前就应该对其明确赋值. 例如 a = 3 为例 python将执行3个步骤完成这个请求 1.创建一个对象来代表3 2.创建一个一个变量a,如果他还没创建的话, 3.将变量与新的对象相连接 变量-引用-对象 对象的垃圾回收机制 当变量名被赋予了

java 父类子类成员变量,静态变量,构造器创建先后顺序

关于java中父类子类,成员变量,静态变量,构造器创建的先后顺序,在面试中经常会问到该类型的问题 所以用以下代码进行测试: public class Test { public static void main(String args[]) { Father f = new Son(); } } class Father { public Father() { System.out.println("Father Construct"); } static int fatherStat

初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM,字节码 两个命令: javac helloworld.java:将Java文件编译为字节码的.class文件 java helloworld:运行Java程序...??暂时这么认为 数据类型: 普通数据类型:int a=3; 对象数据类型:使用关键字new,String s=new String("

编程语言类别;运行Python程序的方式;变量和常量;Python程序的垃圾回收机制;

---恢复内容开始--- 一.编程语言分类: 1.机器语言:直接用二进制的0和1和计算机(CPU)直接沟通交流,直接操作硬件. 优点:不需转换,计算机能直接读懂,执行速度快. 缺点:二进制代码复杂多样,理解甚难,开发效率低. ps:站在奴隶的角度说奴隶能够听得懂的话 0000 代表  加载 (LOAD) 0001代表 存储(STORE) 暂存器部分事例 0000  代表暂存器 A 0001  代表暂存器  B 存储器部分事例 000000000000  代表地址为 0的存储器 000000000

(编程语言+python+变量名+垃圾回收机制)*知识点

编程语言 从低级到高级的发展的过程 1.机器语言 计算机是基于电工作的.(基于高.低电平 1010010101011) 如果用机器语言表现一个字符的意思需要多段代码的行.但是计算机读取的快. 所以机器语言的 优点:执行速度够快 缺点:开发效率非常低 2.汇编语言 汇编语言的属性,汇编语言通过英文字符组成 优点:执行效率相较于机器语言略低 缺点:开发效率相较于机器语言略高 举个例子: ; hello.asm section .data ; 数据段声明 msg db "Hello, world!&q

接口,构造器与垃圾回收机制,对像的生命周期。非静态方法与静态方法。

java不充许多继承是,为了避免“致命方块”的出现例如 B继承A,C继承A. C和C里面都有play()方法 .现在D继承了B,C 想想D.play()调用 的是哪个play()呢,这就是问题所在. 所以java提供了接口来解决此问题. 问:接口并不是真正的多重继承,因为你无法在它里面实现程序代码,不是吗?如果是这样,那还要接口做什么? 答:多态,多态,多态.接口有无比的适用性,若你以接口取代具体的子类或抽象的父类作为参数或返回类型,则你就可以传入任何有实现该接口的东西.这么说吧,使用接口你就可

Java 垃圾回收机制概念梳理

本文摘自我们几周后即将出版的Garbage Collection Handbook一书的样章.同时也让你能熟悉下垃圾回收的基础知识——这选自该书的第一章. 乍一看,垃圾回收所做的事情应当恰如其名——查找并清除垃圾.事实上却恰恰相反.垃圾回收会跟踪所有仍在使用的对象,然后将剩余的对象标记为垃圾.牢记了这点之后,我们再来深入地了解下这个被称为“垃圾回收”的自动化内存回收在JVM中到底是如何实现的. 手动管理内存 在介绍现代版的垃圾回收之前,我们先来简单地回顾下需要手动地显式分配及释放内存的那些日子.

对CLR基本原理概念&垃圾回收机制的简单理解

PS,之前有说过C语言的函数&变量的一些基本概念,说得可能不是很好,先也把C#的.里相关的也说下,已成一统. 而说函数变量,其实主要就是GC,而GC又是CLR的主要内容,故就有了此文. CLR基本原理: 把这几个概念一说基本就知道了,其实就是为了跨语言.跨平台,和JAVA的JVM类似 1.MSIL,中间语言,就是独立于所在平台系统的.net的特殊代码.里面含有相关元数据信息,常用的反编译工具想ILspy等就是靠他吃饭的. 2.CLR,公共语言运行时,其实就是把VB.VC.C#等不同语言编译成同一

JVM虚拟机(四):JVM 垃圾回收机制概念及其算法

垃圾回收概念和其算法 谈到垃圾回收(Garbage Collection)GC,需要先澄清什么是垃圾,类比日常生活中的垃圾,我们会把他们丢入垃圾箱,然后倒掉.GC中的垃圾,特指存于内存中.不会再被使用的对象,儿回收就是相当于把垃圾"倒掉".垃圾回收有很多中算法:如 引用计数法.标记压缩法.复制算法.分代.分区的思想. 垃圾收集算法 引用计数法:就是个比较古老而经典的垃圾收集算法,其核心就是在对象被其他所引用计数器加1,而当引用时效时则减1,但是这种方式有非常严重的问题:无法处理循环引用