java基础知识总结(一)

孔夫子曾经说过:学而不思则罔,思而不学则殆。陶行知老先生也说过:要知行合一。自我认为,学习一项新的知识的时候,不能只是简单的学习简单的书本知识,应该学会总结,思考和反思以及类比。写这文章,希望能对所学的知识做一个反思和总结。
这边文章主要介绍以下方面:
1.java 中的数据类型
2.java中的关键字,修饰符以及其它
3.java三大特性

1.java 中的数据类型
在java中,数据类型分为两种 一种是简单类型 一种是对象类型
简单类型:btye 1B short 2B int 4B long 8B float 4B char 2B boolean
string用+连接 表示字符串拼接
在简单数据类型的运算中,会经常涉及类型的转化。eg:
int a,float b 显然a和b不是同一个类型的 若果a=b那么就会发生类型转换,遵循以下规则 低类型向高类型转 自动转换,高类型向低类型转,强子类型转化。
在进行类型运算时 会发生自动类型提升 eg:a+b 有double -->double ,有Float-->Float,有long-->long.
eg:short a = 3; a=a+3 这就会发生自动类型提升 转为int,而a+=3,这个是不会发生类型转换的

2.java中的关键字,修饰符以及其它
this:引用,表示当前对象,当前实例变量和局部变量命名冲突时,用this表示实例变量。用在构造方法中,this(...),调用本类其他构造方法。
super:引用,表示父类对象。访问被覆盖属性或调用被覆盖方法。用在构造方法中,指定调用父类的哪一个构造方法,必须放在第一位。如果系统中午this(...),系统会默认添加super(),所以父类的无参构造方法必须实现。、

修饰符:

private:能修饰 属性:私有,方法:本类内部可用,构造方法:不能被继承。
public:能修饰,属性:公开,方法:公开,构造方法:公开,类:所有子类可以继承。
protected:能修饰:属性:本类+同包+不同包的子类,方法:本类+同包+不同包的子类,构造方法:本类+同包可用+不同包的子类,类:不同包可继承。
default:能修饰:属性:本类+同包,方法:本类+通包,构造方法:本类+同包可用,类:同包子类可用继承。
构造方法不能被继承。

关键字:

static:静态,可修饰 属性,方法,初始化代码块。、

属性:类变量,全类公有,允许用类名直接访问。
类变量时在类加载时分配内存空间并且初始化的。
类加载:当jvm第一次使用一个类时,需要通过classPath找到这个类对应的.class文件。把这个文件中包含的类的信息读入jvm并保存起来。一般来说,一个类只会加载一次。
类加载时机:创建类的对象,访问类的静态成员,加载子类必须先加载父类。

方法:静态方法,允许用类名直接调用,在静态方法中只能访问类的静态成员。静态方法可以被子类的静态方法覆盖,而且没有多态。对引用调用其静态方法,仅相当于对引用类型调用静态方法。

初始化代码块:静态初始化代码块,在类加载的时候执行一次。

final:可以修饰变量,方法 ,类

变量:常量。一旦赋值,不能改变。
对于final属性,系统是不会提供默认值,若果是final实例变量可以在初始化或构造方法中赋值。如果是final类变量,可以在初始化属性或是静态代码块中赋值

方法:final方法不能被子类覆盖

类:final类不能被继承

abstract:可以修饰 类,方法

类:抽象类只能声明引用,不能创建对象。

方法:只用声明,没有实现。
如果一个类中有抽象方法,这个类必须是抽象类。而抽象类中未必有抽象方法。
之类继承抽象类,如果子类不希望也成为抽象类,就必须实现父类中声明的所有抽象方法。
利用abstract可以把方法声明抽象到父类中,而方法实现保留在子类,更好的体现了“共性放在父类”的原则。

3.java三大特性

封装:对象的边界,对对象的内部起到保护作用(数据隐藏)
public protected private 修饰符可对边界进行限定。
这样方法可以实现声明公开,实现隐藏。

继承:extends 子类能够访问父类的属性和方法。父类经所有的共性抽象出来,子类继承后去分别实现。构造方法不能被继承。方法覆盖 方法修饰符需要相同或更宽。

多态:分为编译时多态和运行时多态
编译时多带是指方法的重载,子类与父类的方法名相同而参数不同叫做方法的重载。
多态是指子类对象可以放入父类引用,子类可以看做是父类的对象。
这样的话会有以下作用:
1.对象类型不变
2.只能对引用调用其引用类型声明的方法。
3.运行时,根据对象实际类型找子类覆盖之后的方法。
之类引用赋值给父类引用可以直接赋值
父类引用赋值给子类引用,必须强制类型转换
因为父类强制类型转换后可能和子类一样,所以可以使用instanceof进行判断 引用instanceof(是不是)类名
使用多态,将不同子类对象统一看做父类对象,屏蔽了不同子类的差异。
多态的常见用法:
1.用在方法参数上,形参可以看做是父类的引用。实参可以穿子类对象。
2.用在方法的返回值上。返回的可以是父类。之后的到再进行转换。

你可能感兴趣的:(java基础知识总结(一))