学习了java有一段时间了,回头想了想自己学到了哪些技术知识,似乎从来都没有梳理过,今天心血来潮,整理一下吧!因为不擅长做总结,所以记录的比较零碎,请大家不要介意。
一:bye和char的区别与联系
byte 8个bit 因为是有符号的所以取值范围(-128~127) ;char和short 16个bit,char是无符号的取值范围(0~65535) ;int和float 都是32个bit ;long和double都是64个bit 。
byte和char的区别:
1.Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127的数;
2.char可以表中文字符,byte不可以;
3.char、byte、int对于英文字符,可以相互转化。
二、标识符的组成
字母,数字,下划线,$,不能以数字开头,不能使用关键字和保留关键字。(ps:关键字是指java中已经定义的具有特定功能的标识符,不能用作普通标识符)
三、定义的位置不同
1.成员变量直接定义在类内部,局部变量是定义某个方法体内部;
2.作用域不同,成员变量适用于整个类和与该类相关的类,局部变量只适用于该方法内部;
3.初始值不同:成员变量可以不显式初始化,它们可以由系统设定默认值,局部变量没有默认值,所以必须设定初始赋值;
4.不同方法可以有重名的局部变量;
5.如果类变量和局部变量重名,局部变量更有优先级。
四:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。
Java中static方法不能被覆盖, 因为方法覆盖是基于运行时动态绑定的,static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。 而静态修饰符,正如大家所知,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。所以这样做有什么意义呢?
在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制)
五:静态变量和静态方法
1.静态变量可以直接被类和对象调用;
2.静态方法中不能直接调用非静态变量和非静态方法,可以通过创建对象调用;
3.普通方法中可以直接调用,类中的静态和非静态变量;
六、抽象类总结
1.包含抽象方法的类一定抽象类,定义了抽象类(abstract class A)不一定有抽象方法,抽象类中也可以定义普通方法;
2.抽象类必须用public或protected修饰;
3.抽象类不能用来创建对象;
4.如果一个类继承了抽象类则子类必须实现父类的所有抽象方法方法。