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 ...
随机推荐
- KeSetEvent
KeSetEvent https://bbs.pediy.com/ dll inject dll注入
- Dinic二分图匹配 || Luogu P3386
题面:[模板]二分图匹配 思路:Dinic实现二分图匹配,要建一个超级源点(S)和超级汇点(T),分别定为N+M+1和N+M+2 然后S去和N中的数建正边和反边,正边权值为1,反边权值为0:M中的数去 ...
- Python核心技术与实战——六|异常处理
和其他语言一样,Python中的异常处理是很重要的机制和代码规范. 一.错误与异常 通常来说程序中的错误分为两种,一种是语法错误,另一种是异常.首先要了解错误和异常的区别和联系. 语法错误比较容易理解 ...
- IP地址转二进制
例如216这个数 216 = 1 * 128 +1 * 64 + 0 * 32 + 1 * 16 + 1 * 8 + 0 * 4 + 0 * 2 + 0 * 1 提取乘号之前的数字我们得到所代表的二进 ...
- java 中的编码(二)
UTF-16编码规则: 按照UTF-16编码规则计算下Unicode码位为 U+10002 (十进制:65538)的字符的UTF-16编码表示. U+10002落在 [U+10000, U+10FFF ...
- JSON提取器
如果返回的数据是JSON格式的,我们可以用JSON提取器来提取需要的字段,这样更简单一点 Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path ...
- adb打开系统设置的命令
adb命令打开手机设置页面 设置主页面adb shell am start com.android.settings/com.android.settings.Settings 安全adb shell ...
- Web防止button按钮点击多次
BtnPass.Attributes.Add("onclick", "javascript:if(document.getElementById('IsSubmited' ...
- java上传大文件(局域网环境)
文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...
- POJ 3261 Milk Patterns ( 后缀数组 && 出现k次最长可重叠子串长度 )
题意 : 给出一个长度为 N 的序列,再给出一个 K 要求求出出现了至少 K 次的最长可重叠子串的长度 分析 : 后缀数组套路题,思路是二分长度再对于每一个长度进行判断,判断过程就是对于 Height ...