Java基础知识杂锦(三)

[b]1.外部类,内部类,局部内部类[/b]
外部类:只能用public,default修饰符
内部类:可以用所有修饰符,此时内部类相当于外部类的一个成员变量
局部内部类:即方法中定义的类,只能用abstract,final,default修饰符,相当于一个局部变量。
代码示例:
public class Main
{
int MainInt;
public static void main(String[] args) {
int localInnerInt=0;
//局部内部类,与局部变量localInnerInt地位相同
final class FinalLocalInnerClass{
}
}
//内部类,与成员变量MainInt地位相同
private class PrivateInnerClass{
}
}


[b]2.成员变量,局部变量[/b]
成员变量有初始值。局部变量没有初始值。
代码示例:
public class Main
{
//MainInt无须赋值,其初始值为0
int MainInt;
public static void main(String[] args) {
int localInt=0;
//localInt必须赋值,否则代码会无法通过编译
System.out.println(localInt);
}
}


[b]3.赋值语句也有返回值[/b],详见代码
public static void main(String[] args) {
boolean flag=false;
if(flag=true){
System.out.println("true");
}
else{
System.out.println("false");
}
}

猜猜看,代码输出什么结果。编译错误,因为if里面不允许赋值语句?
答案是输出 true。
因为JAVA的赋值语句也有返回值,且其返回值为所赋的值。
我们把true值赋给了flag,所以flag=true也将返回一个boolean类型的值。

[b]4.ThreadLocal[/b]
通过线程所持有的ThreadLocalMap类为每个线程提供一个独立的变量副本,解决变量并发访问的冲突问题。
以空间换时间来保证线程安全。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值