一、四种权限修饰符

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. 怎么让Excel显示时间时候能把秒显示出来

    Excel显示时间一般只显示年月日小时分钟怎么能够把秒也显示出来既如下显示 2007-04-11 12:00:00 将单元格格式设为"自定义",在"类型"框中输 ...

  2. [React] Prevent Unnecessary Rerenders of Compound Components using React Context

    Due to the way that React Context Providers work, our current implementation re-renders all our comp ...

  3. leetcode02-Add Two Numbers之beats98.68%Java版本号

    我的leetcode之旅,该篇章主要完毕使用Java实现算法. 这是第二篇Add Two Numbers 所有代码下载: Github链接:github链接,点击惊喜; 写文章不易.欢迎大家採我的文章 ...

  4. April Fools Day Contest 2014 H. A + B Strikes Back

    H. A + B Strikes Back time limit per test 1 second memory limit per test 256 megabytes input standar ...

  5. Gif验证码类

    package com.paic.bics.common.utils.vcode; import java.awt.AlphaComposite; import java.awt.Color; imp ...

  6. python 【第一篇】初识python

    人生苦短,我用python Python是我喜欢的语言,简洁.优美.容易使用.所以我总是很激昂的向朋友宣传Python的好处. python起源 1989年,为了打发圣诞节假期,Guido开始写Pyt ...

  7. 纯css3实现美化复选框和手风琴效果(详细)

    关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉   ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用bef ...

  8. 中国剩余定理模板&俄罗斯乘法

    void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1LL;y=0LL;} else {ex_gcd(b,a%b,d, ...

  9. 4.3 Writing a Grammar

    4.3 Writing a Grammar Grammars are capable of describing most, but not all, of the syntax of program ...

  10. Spark SVM分类器

    package Spark_MLlib import java.util.Properties import org.apache.spark.mllib.regression.LabeledPoin ...