现在的位置: 首页 > 综合 > 正文

Java编程基础总结(一)

2013年08月06日 ⁄ 综合 ⁄ 共 1368字 ⁄ 字号 评论关闭

   一、局部变量和成员变量

        1、局部变量,一般是指在方法体内部定义的变量,其作用域是在方法块内部有效。局部变量必须先初始化,才能使用,否则程序无法编译。

        2、成员变量,是指在类中定义的变量,也就是属性,其作用域是在整个类中有效。成员变量在定义时可以不指定初始值,系统可以按默认原则初始化。初始化的具体原则如下图所示:

成员变量默认初始值
成员变量类型 默认初始值
Byte 0
Short 0
Int 0
Long 0L
Boolean false
Float 0.0f
Double 0.0d
Char '\u0000'
其他类型(引用类型) null
   

        3、二者的区别:

        (1)、public、protected、private、static等修饰符可用于修饰成员变量,但不能修饰局部变量。两者都可以使用final修饰。

        (2)、成员变量存储在堆内存中,局部变量存储在栈内存中。

        (3)、作用域不同,成员变量在整个类中有效,局部变量在方法体中有效,在方法体之外不可见。

        (4)、成员变量可以默认初始化,局部变量必须显示初始化。

    二、“+”操作符在Java内部是如何实现字符串连接的。

        Java不支持运算符重载,但在java内部提供了一些特殊运算符,它们具有重载的特征。例如“+”在实现字符串连接时,操作数可以是两个字符串,也可以是一个字符串和一个其他类型。请看如下的一个例子:

String a = "a";
String b = "b";
String c = a + b;
String d = c + 1;
// 将上述代码编译后再反编译,结果如下
String a = "a";
String b = "b";
String c = (new StringBuilder(String.valueOf(a))).append(b).toString();
String d = (new StringBuilder(String.valueOf(c))).append(1).toString();

        从上述代码不难发现,“+”在实现字符串连接过程中,实际上是借助了StringBuilder类及其append()方法。

        String类代表大小固定的字符串,一旦声明定义后,内容和大小将不可改变。String类中提供的所有字符串操作方法,都是操作结果创建了一个新的String对象并返回。

        为了考虑效率问题,在底层Java采用了StringBuilder类,该类代表大小可变的字符串,利用StringBuilder类的append()和insert()方法可以在原字符串基础上修改。append()和insert()方法被重载过多次,可以接收多种类型的参数。

    三、变量之间传值时可分为值传递和引用传递,那么它们有何区别。

        1、存储机制。

        简单类型变量是直接在栈内存中开辟存储空间存储变量值。

        引用类型变量是由引用空间和存储空间两部分构成,引用空间在栈内存中,存储空间在堆内存中,存储空间负责存储变量值,引用空间负责存放存储空间的首地址。引用变量中存放的是地址值,通过地址值可以定义存储位置并修改存储信息。

        2、变量传递。

        当变量与变量之间赋值时,引用类型变量和简单变量都属于值传递,不同的是简单变量传递的是内容本身,而引用变量传递的却是引用地址。

抱歉!评论已关闭.