1、abstract

  abstract修饰类,表示抽象的意思,抽象类可以含有非抽象变量和成员变量,也可以有普通方法和构造方法,但是不能被实例化(接口),但是可以被子类继承。

public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {
...
}

  abstract修饰方法,表示抽象方法,抽象方法必须位于抽象类中,并且不能有具体实现。

abstract public E get(int index);

2、break

  break在switch中用于跳出switch块,停止switch向下穿透的现象。

case value:expression;
break;

  break在循环中用于跳出循环。

while(...){
...
break;
}

  break也可以在后面接标签,用来跳出一些嵌套比较复杂的循环中。

flag:
for(...){
for(...){
break flag;
}
}

3、continue

  continue用于在循环中跳过本次循环。

while(...){
...
continue;
}

  continue也可以在后面接标签,在一些嵌套比较复杂的循环中跳过一次循环。

flag:
for(...){
for(...){
continue flag;
}
}

4、final

  • 修饰变量:将变量变为常量,在初始化变量后不能再改变值。
  • 修饰方法:被final修饰的方法不能被子类重写。
  • 修饰类:被final修饰的类不能被继承。

5、finally

  finally在try/catch语句块中处理一些后续的工作。例如关闭网络连接和输入输出流等。如果在try/catch中使用return,则finally会撤销这个return,无论如何都会执行finally中的语句。

6、goto

  Java中的保留关键字,没有实际意义,但是不能用做变量名。在C中表示无条件跳转语句。

7、instanceof

  instanceof用于判断类与对象的关系

  a instanceof b

8、private

  私有的,被private修饰的变量和方法只能在此类中访问,其他类或者其他包中的类也无法访问。

9、protected

  受保护的方法和变量只能给子类和基类访问。

10、public

  公有的,其他子类父类或者其他包的类均能访问。

11、return

  返回方法的数据,并结束方法。

12、static

  static修饰的代码块主要存放于堆的方法区。

  静态变量:依附在类中的变量,可以被类的所有的实例共用。

static int a = 0;

  静态方法:依附在类中的方法。静态方法只能访问类中的静态变量和静态方法。

publlic static void b(){
...
}

  静态块:在类加载的时候执行块中的语句,块中不能访问非静态变量。

static{
...
}

  静态内部类:用static修饰内部类。

13、super

  引用父类的的成员:

super.xxx

  变量或方法重名时用super调用父类的成员或方法。

  调用父类的构造方法:

super(xxx);

14、synchronzied

  synchronized关键字用于保证线程安全。由这个关键字修饰的方法或者代码块保证了同一时刻只有一个线程执行该代码。

synchronized(obj){...}

  当一个线程访问同步代码块时,检查obj是否有锁,如果有就挂起。如果没有就获得这个obj的锁,也就是把其他线程锁在了外面。当代码执行完毕时释放该锁,其他线程获得锁继续执行代码。

15、this

  指向当前对象:this.xxx

  形参和成员名字重名时时用this区分。

  引用构造函数。

16、transient

  类接上序列化接口后,可以通过transient关键字将某些变量变得无法序列化。

transient int a = 1;

17、volatile

  volatile关键字修饰的变量在多线程中保持同步。相比synchronized效率要高,不会阻塞线程。但只能保证数据的可见性,不能保证数据的原子性。例如在处理i++的时候另外一个线程修改i的值,那么i的值将会发生错误,这是原子性导致的。

volatile int a;

最新文章

  1. Maven常用插件
  2. 如何使用github搭建个人博客
  3. 修改RectTransform的宽度和高度
  4. FLUSH TABLES WITH READ LOCK
  5. data abstractions 数据抽象
  6. java正则表达式取括号里面的内容
  7. Ubuntu Geany中文乱码
  8. openfire的smack和asmack
  9. 基于cygwin构建u-boot(三)make错误忽视
  10. 正则表达式、find、grep、awk、sed
  11. 企业级Docker私有仓库部署(https)
  12. Fiddler-抓取手机app请求
  13. echarts + timeline 显示多个options
  14. arduino 522样本中文注释
  15. ABP框架系列之八:(Introduction-介绍)
  16. maven编译项目报错,提示找不到符号或程序包XXX不存在
  17. python协程之动态添加任务
  18. Spring Cloud Eureka 注册中心 服务消费者 服务提供者之间的关系以及高可用之间的联系
  19. 原生js--鼠标事件
  20. Selenium之Css Selector使用方法

热门文章

  1. Java并发编程实战 02Java如何解决可见性和有序性问题
  2. Zipper 杭电 1501
  3. 10.添加script标签,判断onload是否完成
  4. react: typescript project initialize
  5. 天池Docker学习赛笔记
  6. ApiPost如何在预执行脚本里添加请求参数?
  7. nginx 配置大吞吐量
  8. 一些软件的 Basic Auth 行为
  9. 获取 ProgramData 之类的环境变量(文件夹路径)的值
  10. 利用python画出动态高优先权优先调度