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中普通的类是不允许被声明为静态的,但是有一 ...
随机推荐
- IDEA打包javaFX及踩坑解决
开门见山的说,先打包,再说坑. File-->Project Structure --> Artifacts-->(此处点加号)JAR-->From modules with ...
- Windows10 office 点击链接提示您的组策略阻止我们为您完成此操作。设置ChromeHTML也无效.
问题: win10环境点击office 中的网络链接时 出现了如下报错(一般在卸载了系统预装的其他浏览器后出现问题) 解决方案: 1.设置默认浏览器(已经设置可跳过) 控制面板->设置小图标 ...
- Intel CPU平台和架构介绍
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 服务器主板上数据传输流依次为CPU .内存.硬盘和网卡, ...
- C++进阶-3-6-map/multimap容器
C++进阶-3-6-map/multimap容器 1 #include<iostream> 2 #include<map> 3 using namespace std; 4 5 ...
- 101_Power Pivot DAX 累计至今,历史累计至今
焦棚子的文章目录 一.背景 DAX中已经有诸如YTD,QTD,MTD时间智能函数.用起来也比较方便. 但很多时候需要看历史累计至今的数据,需要自己根据实际情况写dax. 今天抛砖引玉,写一个示例. 二 ...
- 【系统】查看windows系统是否永久激活
查看windows系统是否永久激活 查看激活时间 slmgr.vbs -xpr 查看激活详情 slmgr.vbs -dlv
- CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks阅读笔记
CIAGAN: Conditional Identity Anonymization Generative Adversarial Networks 2020 CVPR 2005.09544.pdf ...
- Unity-UGUI-无限循环列表
前言:项目准备新增一个竞技场排行榜,策划规定只显示0-400名的玩家.我一想,生成四百个游戏物体,怕不是得把手机给卡死?回想原来在GitHub上看到过一个实现思路就是无限循环列表,所以就想自己试试.公 ...
- 广义SAM
参考 还有首先你要会SAM吧~ 用途 相比与单串SAM,广义自动机能存储的是多个字符串. 有两种写法,第一种是离线利用trie树结构,第二种是在线伪广义SAM 离线+Trie 首先构建出trie树. ...
- Docker容器安装RabbitMQ
Docker容器安装RabbitMQ 准备资料 erlang的rpm安装包 https://github.com/rabbitmq/erlang-rpm/releases rabbitmq的rpm安装 ...