Java 学习笔记(一)


======================================================
注:本文源代码点此下载
======================================================

从c#转向java是否是一种倒退?

经过一段时间的学习

偶发现c#确实是克隆了java的很多东西,但是在某些方面,c#

作了很大的改进

1. java的基本类型(值类型)

只有以下几种

byte(8) char(16)boolean(-) short(16) int(32) long(64) float(32) double(64)

java 没有无符号类型

对应的引用类型为

byte (8) character(16) boolean(-) short(16) integer(32) long(64) float(32) double(64)

位于java.lang 包中

2. java 文件

每一个java 文件里面最多存在一个public的类,如果存在的话,其名称必须跟文件名完全相同。当然也可以没有public类。

3. 关于类的访问权限

普通的类只能声明为public或者package权限,但是内部类可以声明为private和protected的,内部类里面可以访问外部类的private成员

未在顶部声明 package 的类会被认为属于所在目录的默认package,能够访问当前目录package 类和成员。

4. 构造器

在类没有构造方法时,编译器会为其生成一个默认的无参public构造方法;但是一旦类中存在一个任意形式的构造函数,编译器就不会再做这件事情

5. 访问方法基类

java 的 super 关键字等同于 c#的base 关键字,用于访问基类。使用 super(可选参数) 可以调用基类的构造方法,但是它必须被放在派生类的构造方法的第一行。对于派生类的构造方法可以省略此行,这时调用基类的默认构造方法,单是一旦基类不存在默认构造方法或者其修饰符为private,则不能省略,此时应该调用其他非private构造方法。

6. 构造顺序

1) 按从上往下的顺序执行基类的 静态成员的初始化

2) 按从上往下的顺序执行派生类的 静态成员的初始化 (此处非常重要)

3) 按从上往下的顺序执行基类的 非静态成员的初始化

4) 执行基类的构造方法

5) 按从上往下的顺序执行派生类的 非静态成员的初始化

6) 执行派生类的构造方法

这个顺序跟c#有天壤之别

在非封闭类的构造函数里面最好不要调用非private方法和非final方法,因为如果该方法被重写,将导致调用还未构造的对象的方法,结果可能不同于预期

7. final关键字

java 的final关键字比c#的功能更强。

由final修饰的值类型域变量不能在初始化以后修改

由final修饰的引用类型域变量不能在初始化以后修改引用,但可以改变其域成员的值

final修饰的成员变量可以在声明时初始化或者在构造函数中初始化,而且必须在这两种情况之一中初始化

参数也可以使用final修饰,作用一样

final修饰的方法不能被重写(重写导致编译错误)

private成员是自动final的

final修饰的类不能被继承,相当于sealed

8. java 和 c# 的不同

java 没有提供override 关键字 因为java 没有virtual 关键字,java 的方法默认就是 virtual的。而 c#的方法和属性默认是final的,除非你明确声明为 virtual 或者 abstract ,这将带来性能上的提升,因为默认final的成员不需要进行运行时迟绑定的判断。

java的原始类型(值类型)并非从object继承,只能通过包装成对象来实现转化成引用类型。

java可以使用实例来访问其静态成员,而c#不能。

java 不能指定实现那个接口的方法 ,假如两个接口都有同名的方法,则全部被实现。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值