JAVA总结--java基本语法
static :静态的~
static :静态变量、静态方法;
被修饰的成员变量或者方法独立于该类的任何对象,只要该类被加载,被修饰的成员变量或者方法就存在并可以使用。
用public修饰的static成员变量和成员方法本质是全局变量和全局方法;
static变量前可以有private修饰,表示这个变量可以在类的静态代码块中,或者类的其他静态成员方法或中非静态成员方法使用,但是不能在其他类中通过类名来直接引用;
public或private是访问权限限定,static表示不要实例化就可以使用;
静态变量或者静态方法仅仅会初始化一次,静态变量会被所有所有的对象共享使用;
同时,不推荐实例化的对象,去访问或者操作静态字段。
类名.静态方法名(参数列表...)
类名.静态变量名
static :静态代码块、static代码块;
在类中,不在方法体内,任意位置,一处或者多处,JVM加载类时会执行这些静态的代码块,按顺序执行,且只执行一次。
static :static class、静态内部类;
非静态内部类是不可以声明静态成员的(属性和方法);
非静态内部类,可以随意的访问外部类中的成员变量与成员方法,即便是私有的也可以,但静态内部类对外部类的访问是有局限的,如不能访问外部类的非静态成员与变量;
final:最终的~
final:final类、final方法
final类,不能被继承,不会有子类,意味着其成员方法没有机会被覆盖,默认都是final的。
final方法,若某一方法,想被子类使用,但是不想被子类覆盖,可以写成final方法
final:final变量(常量)
用final修饰的成员变量表示常量,值一旦给定就无法改变!
static final用来修饰成员变量和成员方法,可简单理解为“全局常量”“全局方法”
对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
对于方法,表示不可覆盖,并且可以通过类名直接访问。
但是,如果用在了集合等容器上,不可以改变容器变量本身,但可以修改容器中存放的对象!
transient:短暂的~
transient的变量不会被自动序列化(Serializable)进行持久化;但可以被非自动序列化(Externalizable)的进行持久化;
Externalizable:Serializable接口的子类,重写writeExternal()和readExternal(),必写无参数构造函数,
序列化: 将数据结构或对象转换成二进制串的过程
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
volatile:易变的~
volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值;当成员变量发生变化时,强迫线程将变化值回写到共享内存;强制维持变量的同一个值
原理:volatile关键字就是提示VM,对于这个成员变量不能保存它的私有拷贝,而应直接与共享成员变量交互;线程有自己的内存,自己的私有拷贝;
instanceof 与 isInstance
obj.instanceof(class)判断该对象是否是该类或其父类的对象;class.inInstance(obj)这个对象能不能被转化为这个类;
在本质使用上没有区别,只是,一个是操作符,一个是类的方法。
JAVA总结--java基本语法的更多相关文章
- java(二、基础语法和基本数据类型)
Java 基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如,一 ...
- Java基础之基础语法
前言:Java内功心法之基础语法,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 一个Java程序可以认为是一系列对象的集合,而这些对象通过调 ...
- java与c#的语法对比
1,命名空间与包 C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace) Java中与此对应的东西叫做包(package) 2,类的访问控制方面的不同 C#只有两种:publ ...
- java 复习整理(一 java简介和基础语法)
现在公司用的是封装太多东西的平台开发,觉着之前学的东西很多都忘了,所以想好好总结回顾一下.之前总是想学很多编程语言像python.s6.node.react,但现在越来越体会到编程语言只是一个开发的工 ...
- Java的12个语法糖【转】
本文转载自公众号 Hollis 原创: 会反编译的 Hollis 侵权删 本文从 Java 编译原理角度,深入字节码及 class 文件,抽丝剥茧,了解 Java 中的语法糖原理及用法,帮助大家在学 ...
- Java同C#的语法不同之处
Java同C#的语法不同之处... [注:转载而来但原出处不详:若是您原创请联系我]1,命名空间与包 C#为了把实现相似功能的类组织在一起,引入了命名空间的概念(namespace) Java中与此对 ...
- Java中的标签语法(类似于C语言goto循环体)
Java中的标签语法(少用) 101到150的质数 此法类似于C语言中的GOTO循环 public static void main(String[] args) { int count=0; //标 ...
- Java基础2-基本语法
复习 jvm : 虚拟机 --> sandbox jre : jvm + 核心类库 jdk : jre + 工具,javac java path: 操作系统搜索路径 classpath: jav ...
- [Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等)
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html 谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大 ...
- 【Java】Java XML 技术专题
XML 基础教程 XML 和 Java 技术 Java XML文档模型 JAXP(Java API for XML Parsing) StAX(Streaming API for XML) XJ(XM ...
随机推荐
- git log混乱之混乱操作
好几个分支 然后就混乱了 git log信息一坨屎 git 删除某次指定的提交 git reset只是在本地仓库中回退版本,而远程仓库的版本不会变化. 以删除master分支为例 #新建一个备份的分支 ...
- Python内置函数之filter map reduce
Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...
- c++ string转char*
1.如果要将string转换为char*,可以使用string提供的函数c_str() ,或是函数data(),data除了返回字符串内容外,不附加结束符'\0',而c_str()返回一个以‘\0’结 ...
- table表格 td设置固定宽度
table宽度自适应,而且部分TD是固定宽度. 只需要将固定宽设死,留下一列不设置宽度,将table宽度设置为100%. table-layout:fixed 作用不是很清楚 <table wi ...
- jenkins 邮箱通知设置
https://blog.csdn.net/boonya/article/details/77335074 https://blog.csdn.net/lovedingd/article/detail ...
- 链接收藏:bullet物理引擎不完全指南
这个也是博客园的文章,编辑得也很好,就不copy了,结尾还有PDF: https://www.cnblogs.com/skyofbitbit/p/4128347.html 完结
- Go实现分布式外部排序
Go实现分布式外部排序 项目路径: https://github.com/Draymonders/go_external_sort 默认读入文件: small.in 默认输出文件:small.out ...
- 《SQL Server 2012 T-SQL基础》读书笔记 - 8.数据修改
Chapter 8 Data Modification SQL Server 2008开始,支持一个语句中插入多行: INSERT INTO dbo.Orders (orderid, orderdat ...
- O(1)得到螺旋矩阵的值
LL ind(LL x, LL y, LL n){ LL qs = n / , q = min(n - y + , min(n - x + , min(x, y))) - ; && y ...
- 用 MuGo 搭建 Go Engine 在 KGS 对战
MuGo 是一个开源的 Go Engine,下棋能力大概在 10k - 2k 左右. 用 MuGo 搭建 Go Engine 并在 KGS 对战的步骤如下: 1. 安装 TensorFlow 因为 M ...