static 和 final(java)
static:
1.1static修饰成员变量:
- 使用static修饰的成员变量不在对象的数据结构,而是类的基本信息(参数)
- 使用static修饰的成员可以直接使用,类名.成员的方式访问,而不需要再new对象了;
- 使用static修饰的成员存储在方法区(方法区中的成员独一份),static修饰的成员只有一份;
- static 中无this;
public class TestStatic {
static int age = 0;//存储在方法区 且独一份
int score = 0;
public TestStatic() {
age += 1;
score += 1;
}
public static void main(String[] args) {
new TestStatic();//age : 1 score : 1
new TestStatic();//age : 2 score : 1
System.out.println(TestStatic.age);//2
System.out.println(new TestStatic().score);//score : 1 age:3
}
}
1.2 static修饰方法:
- static修饰的方法使用类名区调用,他不涉及对象的操作;
- static一把用在工厂方法或者类中;
- static方法不能调用非satic方法
1.3 static块和非static块:
static {
//静态代码块
}
{
//非静态代码块
}
静态代码块是属于类的一部分,在类加载期间就会执行完毕,一般用来加载静态资源(图片,音频等)
1.4 总结:
静态修饰的成员可以直接使用类名去调用
静态修饰的成员会优先加载,在类的加载期间就完成了加载
静态修饰方法不能调用非静态成员,但非静态方法可以调用静态的成员
静态修饰的成员存储在方法区中,且独一份
final:
2.1 final修饰变量:
- final修饰的成员变量不可变;
- 初始化的方式只有两种:
- 声明时初始化和构造方法初始化
2.2 final修饰方法:
final修饰的方法不能被重写,意义:造成不经意的重写:
public final void show(){}//final关键字和public关键字顺序无关可以互换
2.3 final修饰类;
- final修饰的类不能被继承;
- 常见的final修饰的类由String,Math等等;
- 意义:防止滥用继承,可以保护不被继承修改,降低对系统造成的危害
2.4 常量:
- 常量:static final修饰的变量
- 常量的命名规范为全大写;
- 特点:初始化时只能通过在声明时初始化,否则会编译错误
- 常量在编译时,会被提花为实际存储的值
static 和 final(java)的更多相关文章
- java笔记——Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- java中static 和 final 的一些使用规则
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- java基础1.0::Java面向对象、面向对象封装、抽象类、接口、static、final
一.前言 一直以来都是拿来主义,向大神学习,从网上找资料,现在就把自己在工作中和学习中的所理解的知识点写出来,好记星不如烂笔头,一来可以作为笔记自己温习,二来也可以给走在求学之路的同学们一点参考意见, ...
- java里的static和final
本节介绍JAVA里static和final的作用和使用方法以及一些需要注意的问题. 一.static static表示"全局"或"静态",用来修饰成员变量和成员 ...
- Java关键字static、final
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- Java中static、final用法小结
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- Java关键字static、final使用小结
static 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的 ...
- Java之关键字static和final的使用
static 在Java中声明属性.方法时,可使用关键字static来修饰. 1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或 ...
- Java中static、final用法
一.final 1.final变量: 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引 ...
- Java中的static、final关键字
static static 的含义是静态的,是一个静态修饰符,一般来说,被static修饰的有以下几种,类.变量.方法.代码块. static修饰类 Java中普通的类是不允许被声明为静态的,但是有一 ...
随机推荐
- XCTF练习题---CRYPTO---告诉你个秘密
XCTF练习题---CRYPTO---告诉你个秘密 flag:TONGYUAN 步骤解读: 1.观察题目,下载附件 2.打开附件,内容好像有点像十六进制,先进行一下十六进制转换,得到一串字符 网址:h ...
- ReLabel:自动将ImageNet转化成多标签数据集,更准确地有监督训练 | 2021新文
人工标注数据集中普遍存在噪声,ReLabel能够自动且低成本地将原本的单标签数据集转化为多标签数据集,并且提出配合random crop使用的高效LabelPooling方法,能够更准确地指导分类网络 ...
- Windows常用cmd命令总结
cmd是command的缩写,即命令提示符. 运行操作: 使用"Win+R"快捷键召唤出运行窗口,再在运行中输入cmd即可. 1.ping 用法: 常用举例: ping www.g ...
- Keepalived入门学习
一个执着于技术的公众号 Keepalived简介 Keepalived 是使用C语言编写的路由热备软件,该项目软件起初是专门为LVS负载均衡设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后 ...
- 前端面试 -HTTP系列
http和https 的区别? 端口 经济 安全性 响应速度 http 80端口 不需要 明文传输,安全性差 页面响应速度快,使用tcp的3次握手 https 443端口 费钱SSL需要ca 证书 S ...
- windows 文件hash校验,字符串加密,base64转换工具
对下载的文件使用hash校验验证文件完整性 1 import hashlib 2 def md5(): 3 md5_value = hashlib.md5() 4 with open('C:\Inte ...
- 一个 "开箱即用" 个人博客全栈系统项目!vue+node+express+mysql+sequlize+uniapp
" MG'Blog " 一个 "开箱即用" 个人博客全栈系统项目! 探索本项目的源码 » 前台预览 · 管理端预览 v1.0.2 小程序预览 v1.0.2 介绍 ...
- C/C++ 单元自动化测试解决方案实践
vivo 互联网服务器团队 - Li Qingxin C/C++ 开发效率一直被业内开发人员诟病,单元测试开发效率也是如此,以至于开发人员不愿花时间来写单元测试.那么我们是不是可以通过改善编写单元测试 ...
- 基于bat脚本的前端发布流程设计与实现
写在前面 本文大致向读者介绍了楼下几点知识,希望在编写bat脚本时候能够帮到读者,如果能够有所启迪,那就更好了. bat脚本的相关知识和案例编写 用windows自带的命令压缩文件 windows和l ...
- 云开发中的战斗机 Laf,让你像写博客一样写代码
各位云原生搬砖师 and PPT 架构师,你们有没有想过像写文章一样方便地写代码呢? 怎样才能像写文章一样写代码? 理想的需求应该是可以在线编写.调试函数,不用重启服务,随时随地在 Web 上查看函数 ...