JAVA的基础知识拾遗

日常开发中很多时候不会在意这些问题,知道某些时刻,看到这些知识,才发现,好多东西需要拾起来,温故而知新,也许是目前最大的感受!

知识1: public ,protected ,private的区别
在java中类,类的属性以及类的方法前面可以加上修饰符进行权限控制;
private--》default--》protected--》public
(类内部) (同一包中) (子类中) (其它类)

知识2: this 和super
this:
用于解决变量的命名冲突和不确定性问题,关键字this用于代表该类中的一个对象,常出现在方法和构造方法中;
1:返回调用当前方法的对象的应用;
2:构造方法中调用当前类中的其他构造方法;(使用this调用其他构造方法时,必须放在构造方法的开始处,否则编译不通过)
3:方法参数名和成员变量名相同时,区分参数名和成员变量名;

super:
super代表父类的实例,在子类中,使用super可以调用父类的方法,属性和构造方法;
1:调用父类构造方法;super(); super(param);
2:调用父类的方法和属性;super.show();

知识3: static 和final
static:
修饰方法,属性,自由块和内部类;通过“类名.成员”形式调用;
修饰属性时具有静态属性;被多个当前类的对象共享;

final:
修饰类:不能被其他类继承,如String和Math;
修饰成员变量:为常量;
修饰方法:该方法在子类中不能被重写;


知识点4: 成员变量与局部变量
局部变量: 方法体内的变量,必须初始化才能用,可以被final修饰,存于栈内存中;
成员变量: 类中的变量,可以不用显性初始化,系统会初始化默认值;可以加上private等修饰符,存于堆内存中;


知识点5:值传递与引用传递

由于变量类型有简单类型变量和引用类型变量,简单类型变量直接存在栈内存中,而引用类型变量由引用空间(栈内存)和存储空间(堆内存);存储空间存放实际值,而引用空间存放指向存储空间的地址;
因此,简单变量变量之间赋值为值传递;
引用变量变量之间赋值为引用空间传递;修改a的值会影响b的值,因为两者指向同一个存储空间;


知识点6: 运算符(不支持重载)


[img]http://dl2.iteye.com/upload/attachment/0090/1719/d6e06f1e-5d32-34d8-a711-4d0d06bde993.jpg[/img]


知识点7: x+=y与x=x+y之间的区别
x+=y为java提供的扩展赋值运算符,与x=x+y结果是一样的,但在有些情况不通用;

short s=3;
s+=1; 编译通过; 会进行强制类型转换;类似的运算符都一样;
s=s+1; 编译不通过;



知识点8:==和equal的区别

==是一个关系运算符,用于判断两个简单变量的值是否相同,或者两个引用变量的引用地址是否相等;
equal是一个方法,用于判断引用变量引用地址所指向的存储空间的值是否相等;

注意 : 建议使用equal()判断两个字符串是否相等,该方法为Object类中的方法,字符串为空时无法调用;


知识点9: String a=new String("abc") 和 String a="abc"

这是java中两种不同的方法来生成字符串;两者的存储机制也不同;
Java为String类型提供了缓冲池机制,当使用引号定义对象时(String a="abc"

),java环境现在缓冲池中寻找相同内容的字符串,存在就直接应用,不存在就把字符串放到缓冲池中; String a="tom"; String b="tom" ; 变量a和b在缓冲区使用同一存储对象;

使用String构造方法定义对象时,会创建一个新的对象;a和b是不同存储对象;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值