无意间看到youtube上的一组java基础的视频,顺便做了笔记,整理如下:
出处:
作者:Edward Shi
视频链接:https://www.youtube.com/watch?v=IQE9jHaEhRM&list=PLvyIyKZVcfAnGitjgY7xwL61GK0J39Pp7&index=1
1、java基本特性
- 1)java是面向对象的语言
- 2)跨平台
- 3)有容错机制
- 4)支持多线程
2、类中有多少/种变量
- 1)局部变量
- 2)实例变量:class里,方法外
- 3)类变量:static修饰
3、构造函数constructor
默认有个空参数构造函数。
4、权限范围access modifier
- private:私有成员,只能是类内部
- protected:保护成员,内部或者继承才可以
- public:公开,没有限制
5、string stringBuffer stringBuilder
- String:是不可改变的。为什么?因为考虑到多线程的情况。线程安全
- stringBuffer:可改变,线程安全
- stringBuilder:可改变,线程不安全
6、Finalize Finally Final
- Finalize:方法。对象销毁时调用,垃圾回收时。当对象不可达时调用,一般不建议写这个方法。
- Finally:异常处理。try catch finally异常处理无论如何都会走。但是如果提前被return了就不走了。
- Final:修饰符,类/变量/方法。不能被改变、不能被集成。构造函数永远不能变成final。
7、Exception异常处理
- CheckedException:不能被预见的异常,比如:不知道文件到底有没有打开。
- RuntimeException:可以通过变成避免的异常,比如空指针。
8、Throw Throws
- Throws:方法申明的末尾,可以跑出多个异常。
- throw:方法中实现。
- 自定义异常:必须继承,比如:extend RuntimeException
9、Overload Overrride
- Overrride:重写。重写super class的方法。
- Overload:重载。方法名字相同,参数不同
10、java三大特性
- Inherritance(继承):一个对象继承另一个对象。extands
- Polymorphism(多态):对象的多种形式。Parent aa = new Child();
- Encapsulation(封装):数据的隐藏。好处:使用者调用的时候不会改变本身。
11、抽象类Abstract Class、Interface
- Abstract Class:抽象类。特性:不能用new去实例化,抽象类可定义抽象方法,只能声明不能实现,实现类必须实现继承的所有方法。
- Interface:接口,方法集合。特性:不能实例化,没有构造函数,接口里面的方法都是抽象方法。
相同点:
- 1)都是抽象,都不能实例化;
- 2)实现类都必须实现接口或者抽象类里面的方法。
不同点:
- 1)抽象函数中可定义变量,而接口中只能定义static/final的成员变量;
- 2)实现接口用implements,实现抽象类用extends;
- 3)一个类可以实现多个接口,但只能实现一个类;
- 4)接口强调特定功能,抽象类强调所属关系。
12、static静态块
类加载的时候就已经执行,就执行一次,不是初始化的时候加载。不能够引用类中的变量;
13、Garbage Collection垃圾回收机制
清除内存机制。但它也不一定保证能够清除所有的内存,比如:1)如果创建对象的速度大于清除速度;2)创建的对象不属于垃圾回收机制的要处理的对象时也不会清除。
附:google java编程规范:
作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html