小白Java学习笔记(源自itcast-刘意java视频)

本笔记基于itcast刘意老师的视频授课内容。

--------------------------------------------------------------


2016年3月18日23:47:22



针对多个对象共用同一个内存空间,用static。改一个,其他的对象也自动改了。因为共享一个。


静态的特点:
1.随着类的加载而加载。
2.优先于对象而存在。


------------------------------
2016年3月19日15:19:22


代码块:
用{}括起来的代码,叫做代码块。
分类:
1.局部代码块
在方法中用{}括起来的代码。
作用:限定变量的生命周期,及时释放内存,提高运行效率。
2.成员代码块 -- 构造代码块
在类中,方法外,用{}括起来的代码。
作用:把所有构造方法中相同的内容给抽取出来,定义到构造代码块中,将来在调用每个构造方法的时候,回去自动调用该构造代码块。
构造代码块的执行,先于构造方法。
3.静态代码块
在类中,方法外。用{}括起来的代码。只不过,加了static修饰。
作用:在整个系统中只加载一次的代码。一般做整个系统的初始化。

静态代码块-->构造代码块-->构造方法。


------------------------------
2016年3月19日20:00:59


构造方法间的关系:
子类的构造方法都会首先去执行父类的构造方法。
默认执行的父类的无参构造方法。

------------------------------
2016年3月20日09:49:42


方法重载和方法重写的区别:
A:方法重载
方法名相同,参数列表不同。跟返回值类型无关
B:方法重写
方法声明一模一样。

方法重写的注意事项:
A:子类中的重写父类中的方法,访问权限不能更低。
B:父类中的私有方法,不能被重写
C:静态只能重写静态。(其实静态的内容算不上重写,因为静态的内容是跟类相关的,而我们研究的重写其实是跟对象有关的)


多态:
变量:编译看左边,运行看左边。
方法:编译看左边,运行看右边。


如果一个方法,没有发放体,那么该方法必须定义为抽象方法。abstract.


接口中的成员特点:
a:成员变量
只有常量。并且是静态常量。
接口中的成员变量有默认修饰符:
public static final
b:构造方法
接口没有构造方法!
c:成员方法
全部都是抽象的,不能带有主体。
接口中的成员方法有默认修饰符:
public abstract


接口和接口之间可以多继承。


接口和抽象类的设计理念的区别
抽象类被继承体现的是:is a的关系。抽象类中一般定义的是整个继承结构的共性功能。

接口被实现体现的是:like a的关系。接口中一般定义的是整个继承结构的扩展功能。


------------------------------------------------
2016年3月21日14:40:08


常量的值在构造方法完毕后,该值必须是明确的。


可以在哪些地方给final赋值:
A:在定义的那一刻给赋值
B:构造方法中
在构造方法完毕前给值。


本类中能访问:
private(Y)
默认(Y)
protected(Y)
public(Y)


同一个包下的类中能访问:
private(N)
默认(Y)
protected(Y)
public(Y)


不同包下的类中能访问:
private(N)
默认(N)
protected(Y)
public(Y)


不同包下的无关类中能访问:
private(N)
默认(N)
protected(N)
public(Y)


修饰符总结:
成员变量构造方法 成员方法
private Y Y Y
默认 Y YY Y
protected Y Y Y
public Y Y Y Y
final Y Y Y
static Y Y
abstract Y Y


形式参数是引用类型的时候:
如果是一个具体类的类名,要的是该类的或者其子类对象。
如果是一个抽象类名,要的是该类的子类对象。
如果是一个接口名,要的是该接口的实现类的对象。


返回值是引用类型的时候:
如果是一个具体类的类名,返回的是该类的或者其子类对象。
如果是一个抽象类名,返回的是该类的子类对象。
如果是一个接口名,返回的是该接口的实现类的对象。


为什么内部类访问局部变量,必须被final修饰?
A:防止在使用后数据发生改变
B:加final是为了延长变量的生命周期


匿名内部类:
本质是继承了类或者实现了接口的子类匿名对象。


---------------------------------------------
2016年3月23日16:19:21


如果是字符串变量相加:
先开空间,再想家存储。
如果是字符串常量相加:
先加,在常量池里面找,如果有就返回常量池里的地址。否则,就创建新的存储空间。


----------------------------------------------
2016年3月25日18:54:10


获取当前时间的毫秒值:
A:Date getTime()
B:System currentTImeMillis()
设置当前时间的毫秒值:
A:Date Date(long time)
B:Date setTime(long time)


-------------------------------------------------
2016年3月26日09:30:28


java提供了另外一种容器,集合
集合:
1.长度可以发生改变
2.只能储存对象类型,引用类型。
3.可以储存任意类型的对象


数组:
1.长度固定
2.可以储存基本类型,也可储存对象类型
3.只能储存同一种类型的元素


boolean removeAll(Collection c):移除集合中指定的一个集合的元素。删除一个就叫删,返回true。


boolean containsAll:判断集合中是否包含指定的一个集合的元素。全部包含才叫包含,返回true。


------------------------------------------------
2016年3月28日22:47:46


List的特点:元素有序,可以重复。
Set的特点:元素无序,唯一。

你可能感兴趣的:(小白Java学习笔记(源自itcast-刘意java视频))