18

(易忘篇)java基本语法难点3

 4 years ago
source link: http://www.cnblogs.com/mango-peel527/p/13052510.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本博客随笔主要记录本人学习过程中的知识,欢迎大家一同学习,有不对的地方很高兴读者能详细指出,感激不尽!

JVM内存结构

编译完源程序以后,生成一个或多个字节码文件。

我们使用JVM中的类的加载器和解释器对生成的字节码文件进行解释运行。意味着,需要将字节码文件对应的类加载到内存中,涉及到内存解析。

miAzmiY.png!web

虚拟机栈:即为平时提到的栈结构。我们将局部变量存储在栈结构中。

堆:我们将new出来的结构(比如:数组、对象)加载在对空间中。补充:对象的属性(非static的)加载在堆空间中。

方法区:类的加载信息、常量池、静态域。

封装性的体现

下面列举4种体现,还有许多其它体现:

  • 将类的属性xxx私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值。
  • 不对外暴露私有的方法。
  • 单例模式中(将构造器私有化)。
  • 将类设置为缺省的,使其不在包外被调用。

可变个数形参的方法

具体使用:

  1. 可变个数形参的格式:数据类型 ... 变量名。
  2. 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,... 。
  3. 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载。
  4. 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。
  5. 可变个数形参在方法的形参中,必须声明在末尾。
  6. 可变个数形参在方法的形参中,最多只能声明一个可变形参。

java的值传递机制

  1. 针对于方法内变量的赋值:
    如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
    如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
  2. java中参数传递机制:
    值传递
    如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。
    如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值。

关键字:this

  1. 可以调用的结构有: 属性、方法和构造器。
  2. 关于this调用属性、方法:
    this理解为: 当前对象当前正在创建的对象
    2.1 在类的方法种,我们可以使用“this.属性”或“this.方法”的方式,调用当前对象属性或方法。但是,
    ① 通常情况下,我们都选择省略“this.”,特殊情况下,如果 方法的形参和类的属性同名 时,则我们必须显示出来。
    ② 使用“this.变量”的方式,表面此变量是属性,而非形参。
    2.2 在类的构造器中,我们可以使用“this.属性”或“this.方法”的方式,调用当前正在创建的对象属性或方法。但是
    ① 通常情况下,我们都选择省略“this.”,特殊情况下,如果 构造器的形参和类的属性同名 时,则我们必须显示出来。
    ② 使用“this.变量”的方式,表面此变量是属性,而非形参。
  3. this调用构造器:
    ① 我们在类的构造器中,可以显式的使用"this(形参列表)"方式,调用本类中指定的其他构造器。
    ② 构造器中不能通过"this(形参列表)"方式调用自己。
    ③ 如果一个类中有n个构造器,则最多有 n - 1构造器中使用了"this(形参列表)"。
    ④ 规定:"this(形参列表)"必须声明在当前构造器的首行。
    ⑤ 构造器内部,最多只能声明一个"this(形参列表)",用来调用其他的构造器。

JDK中的主要包介绍

ZVFv2ym.png!web

import的使用

import:导入

  1. 在源文件中显式的使用import结构导入指定包下的类、接口。
  2. 声明在包的声明和类的声明之间。
  3. 如果需要导入多个结构,则并列写出即可。
  4. 可以使用"xxx.*"的方式,表示可以导入xxx包下的所结构。
  5. 如果使用的类或接口是java.lang包下定义的,则可以省略import结构。
  6. 如果使用的类或接口是本包下定义的,则可以省略import结构。
  7. 如果在源文件中,使用了不同包下的同名的类,则必须至少一个类需要以全类名的方式显示。
  8. 使用"xxx.*"方式表明可以调用xxx包下的所结构。但是如果使用的是xxx子包下的结构,则仍需要显式导入。
  9. import static:导入指定类或接口中的静态结构:属性或方法。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK