JavaSE基础知识(5)—面向对象(5.6 static关键字)
一、说明
static属于一种修饰符,可以用于修饰 属性、方法、初始化块、内部类
用static修饰的成员,称为静态成员
不用static修饰的成员,称为普通成员
二、静态属性的特点
1、生命周期
静态属性随着类的加载而加载,随着类的消亡而消亡。生命周期较长
普通属性随着对象的创建而加载,随着对象的消亡而消亡。生命周期较短
2、加载次数
静态属性只加载一次!在内存中只有一份!
普通属性可以加载多次!在内存中可以有多份!
3、存储位置
静态属性存储在方法区
普通属性存储在堆
4、【应用】
静态属性被所有对象共享的,其中一个对象对其更改,影响另一个对象。
普通属性被对象所独享的,其中一个对象对其更改,不影响另一个对象。
5、调用
静态属性和对象无关,所以又称为类属性,可以通过类名直接调用的
普通属性和对象有关,所以又称为实例属性,只能通过对象调用
6、什么时候将属性设计成静态属性?
当所有对象共享该属性,则可以将属性设计成静态的
比如:圆周率、利率
三、静态方法的特点
1、静态方法和普通方法一样都是当类加载时,将方法信息加载到方法区。
静态方法中没有this参数
普通方法中需要有this参数
2、谁能调用?
静态方法可以直接通过类名调用
普通方法必须通过对象调用,因为需要隐式的将对象传递给this
3、方法内可以调用谁?
静态方法中只能直接调用静态成员,不能直接调用普通成员
普通方法中可以直接调用静态成员和普通成员
4、静态方法中不能使用this和super
5、静态方法没有重写之说
四、总结
1、静态成员都是随着类的加载而加载,而且只加载一次
2、静态成员在内存中只有一份
3、静态成员都和对象无关,可以直接通过类名调用
4、静态成员中只能直接访问静态成员,不能直接访问普通成员!(静态属性除外)
5、调用静态成员时,会触发类的加载
【补充】类的加载时机:
1、创建对象
2、调用静态成员
3、加载子类时
4、反射
JavaSE基础知识(5)—面向对象(5.6 static关键字)的更多相关文章
- JavaSE基础知识总结
最近回顾了一下Java的基础知识,决定写成博客梳理一遍,主要是JavaSE部分最基础的知识,适合考前突击,学后回顾,不适合作为初学材料. 简单的列个目录吧: 一.数据类型和运算符 二.流程控制与数组 ...
- C#基础知识之面向对象以及面向对象的三大特性
在C#基础知识之类和结构体中我详细记录了类.类成员.重载.重写.继承等知识总结.这里就记录一下对面向对象和面向对象三大特性的广义理解. 一.理解面向对象 类是面向对象编程的基本单元,面向对象思想其实就 ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- javascript的基础知识及面向对象和原型属性
自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...
- C# 篇基础知识3——面向对象编程
面向过程的结构化编程,例如1972年美国贝尔研究所推出的C语言,这类编程方式重点放在在定函数上,将较大任务分解成若干小任务,每个小任务由函数实现,分而治之的思想,然而随着软件规模的不断扩张,软件的复杂 ...
- JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
- 面向对象编程(七)——Static关键字
Static变量
- Java基础学习总结(10)——static关键字
一.static关键字 原来一个类里面的成员变量,每new一个对象,这个对象就有一份自己的成员变量,因为这些成员变量都不是静态成员变量.对于static成员变量来说,这个成员变量只有一份,而且这一份是 ...
- JavaSE基础知识(5)—面向对象(抽象类和接口)
一.抽象类 1.理解 用abstract关键字定义的类,称为抽象类用abstract关键字定义的方法,称为抽象方法意义:当设计父类时,发现该父类根本不需要创建对象,并且里面有不好描述的方法.这个时候往 ...
随机推荐
- C#动态给Word文档填充内容
//filePath:word文档的路径:strOld:需要替换的内容:strNew:替换的新内容: //注意:strOld中的字符数量要与新的strNew中的一一对应 public static v ...
- c语言函数参数类似继承的传递
函数的参数如果是一个父结构的指针, 这个结构包含在另一个子结构中, typedef struct test_node_one test_node_one_t; typedef struct test_ ...
- 通过ClickOnce本地打包发布WPF应用程序
环境: 1)VS 2015 Windows10 x64 .net framework 4.5.2 要点: 1)安装模式和设置选择可以脱机使用. 2)系统必备组件中安装位置选择与应用程序相同位置下载系 ...
- Exp2 后门原理与实践 20164311
实验一:使用netcat获取主机操作Shell,cron启动 1.Windows获得Linux Shell (1)打开本机win10的cmd.exe,使用命令 ipconfig 查看win10的IP地 ...
- 字符型转换为字符串ToString
字符型转换为字符串 // C 货币 2.5.ToString("C"); // ¥2.50 // D 10进制数 25.ToString("D5"); // 2 ...
- springboot学习随笔(二):简单的HelloWorld
接上章搭建好springboot环境后,开始开发入门级HelloWorld 一.构建简单的springboot项目 1.新建项目,选择Spring/Spring Starter Project 2.N ...
- XenApp6.5产品BUG
外网登录报错,手机登录报错问题解决: XenApp6.5产品BUG, 在WI服务器的两个web站点中修改defalut.ica文件中添加一行,CGPAddr=即可. 路径:C:\inetpub\www ...
- Java面试题 BAT 大公司面试题整理总结!
本文只列出了问题,答案还是需要需要自己的总结,很多时候自己总结出来的语言在面试时比硬背的效果好很多. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的 ...
- ThreadLocal总结
一.问题抛出 SimpleDateFormat是非线程安全的,在多线程情况下会遇见问题: public static void main(String[] args) { ExecutorServic ...
- SVN命令行操作
参考 https://wenku.baidu.com/view/511a7d29ed630b1c59eeb5f3.html 1, 将文件checkout到本地目录 svn check out http ...