java编程总结_Java编程基础总结(一)

一、局部变量和成员变量

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、变量传递。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值