final、static、集合
时间:2019-09-22
本文章向大家介绍final、static、集合,主要包括final、static、集合使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Objects
概念:优化Object类中方法的工具类,这个工具类是空指针容忍(允许)的。
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
final关键字
final修饰符表示最终的
适用场景:
- 变量:变量变常量,常量不能被赋值
- 对象:对象不能被赋值
- 方法:方法不能被重写
- 类:类是最终类,不能被继承
static关键字
概述:被静态所修饰的成员是本类所有对象的共享数据(在内存中只有一份)
特点/注意点:
- 随着类的加载而加载,随着类的释放才被释放
- 推荐直接使用类名/接口名来调用静态成员
- 静态成员是优先于构造函数存在的。(构造方法是在创建对象的时候第一个创建的。但是静态是在创建类的时候就创建了。)
- 静态成员只能访问(调用)静态成员,非静态的成员可以访问静态的也可以访问非静态的(静态的只能访问静态的数据。所以在main中直接调用的一定是静态的。)
- 静态不能和this共存(静态不能和this共存因为this指的是当前对象,static和对象没有关系,是和类的层次有关系。static加载的时候对象还不存在。你无法对一个未存在的东西进行操作。包括super、成员方法等对象中的东西。)
- 静态只能修饰成员不能修饰局部(即只能存在类中修饰一些成员,不能在方法或者作用域中使用,也不能在静态中使用静态方法属于局部。)
静态代码块
- 存在于类中,是最优先执行,永远没有比它快的。比构造还先执行。
- 在内存中只有一份,只执行一次。(每次在方法区加载类的时候都会加载静态方法到方法区。当类死亡的时候静态才会死亡。所以对象的创建不会加载静态,创建多少都不会。只有类的加载才会,然而类的声明周期内不知道可以创建多少个对象,然而静态方法依然在类不死它不死。)
有两个静态的时候会按顺序执行。
- 格式:
static{ //静态代码块 }
- 作用:
- 读取配置文件,配置文件要最先加载
- 为当前类的静态成员初始化。
使用场景
- 共享数据
- 工具类中的方法
额外
- super只能在构造函数中使用不能在成员方法中使用,不能在静态中使用。
原文地址:https://www.cnblogs.com/macht/p/11567560.html
- iOS如何实现多个环境一次打包
- 从原理到策略算法再到架构产品看推荐系统 | 附Spark实践案例
- MobX 在 React Native开发中的应用
- RCTEventEmitter使用
- Google V8 引擎
- 揭秘前端字符的戏精之路
- 跨语言嵌入模型的调查
- React Native如何消除启动时白屏
- 如何在Python中将TimeDistributed层用于Long Short-Term Memory Networks
- react native 调用原生UI组件
- Android侧滑删除另一种实现,SwipeListView补充
- React Native调用原生组件
- React Native调用原生UI组件
- js不好学并不是因为它难,而是因为它容易混淆
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 你分得清MySQL普通索引和唯一索引了吗?
- 基于Dubbo的CRUD案例
- 在javaEE中,实现用户登陆功能的实现
- JavaEE中,实现登录时进行校验验证码的功能
- JavaEE中为删除数据操作与退出操作添加确认提示框
- JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发
- JavaWeb中的异卵双胞胎——监听器与过滤器
- JavaEE中的el 表达式以及JSTL详解
- 基于Jsp和Servlet的简单项目
- 基于Servlet实现的简单登陆练习
- JavaScript初识
- 聊聊dubbo-go的DubboInvoker
- 如何在云开发Cloudbase中使用MySQL数据库
- Kubernetes笔记之基本概念
- 腾讯云语音识别之一句话识别