一、四种权限修饰符

1、访问控制修饰符

    1. 作用: 用于控制被修饰变量、方法、类的可见范围. 
      public 的访问级别是最高的,其次是 protected、默认和 private. 
      成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
      存在继承关系时,父类不可以是 private,因为子类无法继承 
      顶层类可以处于公开或默认级别,顶层类不能被 protected 和 private 修饰. 
      局部变量不能被访问控制修饰符修饰 . 

      总结: 在不同包下面能够访问的权限修饰符只有: pulbic 与protected,但是 protected 必须要有继承的关系才能够访问。

2、abstract 修饰符

抽象类不能被实例化. 
抽象类中可以没有抽象方法,但包含了抽象方法的类必须被定义为抽象方法. 
如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类. 
抽象类不能被定义为 private、final、和 static 类型. 
没有抽象的构造方法. 
抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法. 
非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现.

3、final 修饰符

final 变量必须被显式初始化,并且只能被赋值一次值 
final 修饰基本类型变量的时候, 该变量不能重新赋值 
final 修饰引用类型变量的时候, 该变量不能重新指向其他对象 
final 修饰的方法为最终的方法, 该方法不能被重写 
private 类型的方法都默认为是final方法,因而也不能被子类重写 
final 修饰的类为最终的类, 不能被继承

4、static 修饰符

    1. 如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份. 
      在静态方法中不能直接访问实例方法和实例变量. 
      在静态方法中不能使用 this 和 super 关键字. 
      静态方法不能被 abstract 修饰. 
      静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问. 
      静态函数可以直接访问静态的成员,但是不能够直接访问非静态成员.,非静态函数可以访问静态和非静态成员. 
      当类被加载时,静态代码块只能被执行一次。类中不同的静态方法代码块按他们在类中出现的顺序被依次执行. 
      当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是 static 或 abstact 修饰符,接着就是其他的修饰符

注意:以下修饰符一起用是无意义的,会导致编译错误: 
abstract 与 private 
abstract 与 final 
abstract 与 static

二、内存结构

栈(stack):存放临时变量及对象的引用

堆(heap):每新建一个对象就占用一个空间,对象存在堆中,常量池也在堆中

Java提要的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. Java基础知识提要

    1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等   2. 简单写出Java特 ...

  3. 1.2.4 Java Annotation 提要

    (本文是介绍依赖注入容器Spring和分析JUnit源码的准备知识) Java Annotation(标注) java.lang.annotation.Annotation是全部Java标注的父接口. ...

  4. Java并发1——线程创建、启动、生命周期与线程控制

    内容提要: 线程与进程 为什么要使用多线程/进程?线程与进程的区别?线程对比进程的优势?Java中有多进程吗? 线程的创建与启动 线程的创建有哪几种方式?它们之间有什么区别? 线程的生命周期与线程控制 ...

  5. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

  6. 「2014-3-13」Javascript Engine, Java VM, Python interpreter, PyPy – a glance

    提要: url anchor (ajax) => javascript engine (1~4 articles) => java VM vs. python interpreter =& ...

  7. 深入分析Java Web技术内幕(修订版)

    阿里巴巴集团技术丛书 深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书.技术大牛范禹.玉伯.毕玄联合力荐!大型互联网公司开发应用实践!) 许令波 著   ISBN 978-7-121- ...

  8. 大型网站系统与Java中间件实践

    大型网站系统与Java中间件实践(贯通分布式高并发高数据高访问量网站架构与实现之权威著作,九大一线互联网公司CTO联合推荐) 曾宪杰 著   ISBN 978-7-121-22761-5 2014年4 ...

  9. 学习 java命令

    依稀记得自己第一次编译*.java文件,第一次运行*.class文件.但是六七年过去了,现在运行java写的程序更多的是用tomcat这种web容器.最近有个小需求,写一个监控zookeeper集群的 ...

随机推荐

  1. 联想M7400打印机加粉墨了还是显示没有粉墨

     联想M7400打印机加粉墨了还是显示没有粉墨?想必有很多的办公人士发现这个难题吧.其实很简单的! 先说下打印机的原理,打印机粉墨一边用的时候系统也在计数,当我们打印机加好墨后但打印机是不知道已经加好 ...

  2. MapReduce获取分片数目

    问题 MapReduce Application中mapper的数目和分片的数目是一样的,可是分片数目和什么有关呢? 默认情况下.分片和输入文件的分块数是相等的.也不全然相等,假设block size ...

  3. 浅谈cookie,sessionStorage和localStorage区别

    在客户端存储数据可以使用的技术有如下四种: Cookie技术:浏览器兼容性好,但操作比较复杂,需要程序员自己封装,源生的Cookie接口不友好 H5 WebStorage:不能超过8MB,操作简单: ...

  4. 安卓数据传递之---putextra与putextras

    一.public Intent putExtra (String name, double[] value) 设置方法 intent.putExtra("aaa", "b ...

  5. ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2

    ubuntu上跑python连接pg,报错  ImportError: No module named psycopg2 root@pgproxy1:~# python /home/zxw/PGWri ...

  6. 两种常见的UITabBarController+UINavigationController模式分析比较

    绝大部分软件都采用了UITabBarController+UINavigationController的设计模式,这是一种很主流很经典的设计方式,而另外一种UINavigationController ...

  7. 从编译器源代码中提取ARMv8的指令编码

    2012年11月份的资料,之前ARMv8手冊还没公布,我想办法从编译器的binutils中提取出了全部ARMv8指令的二进制编码,之前不能随便发,如今相当于解禁了^_^. 问题1:提取ARMv8的指令 ...

  8. 网站访问分析对SEO的好处

    统计剖析,应该说是每个SEO都必需要擅长的技艺.至于网站统计的剖析,根据自己的一些经验,与大家分享一下相关技巧.(发表于 2012-3-24 23:12) 申请一个统计帐号很容易,现在有很多的统计服务 ...

  9. python开发【第1篇】【基础知识】

    1.python解释执行原理 python代码——字节码——机器码——计算机 每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言,最后才能在硬件上运行. 2.python编码 unic ...

  10. eventkeyboardmouse

    http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml