java.基础
一切为了提高代码的复用性,扩展性,维护性,可移植性,健壮性,可读性,效率...
1.String[] args 这个字符串数组是保存运行main函数时输入的参数的
2.java函数,先静态后动态,先成员后构造
3.java中输出字符数组的值,直接System.out.println(数组名);
4.构造方法:a.构造方法可以有多个,b.作用:仅仅给成员变量赋初值,c.在创建对象时,已经自动调用,d.构造函数不能被重写,可以重载。
5.this不能省略的情况:当前类中成员变量和当前类方法中的局部变量同名时,不能省略,(若不使用this,变量使用就近原则,将会变为->当前类方法中的局部变量赋值(自己给自己赋值,没有意义)。)
6.this(参数);表示调用该类的构造方法,参数根据调用情况而定;this只能在方法里面用。
7.子类重写父类方法,则访问权限要大于父类(其他类访问此类的方法);在重写中派生类和超类中方法:引用数据类型时,派生类方法返回值类型(看声明方法的类名)小于或等于超类方法的。
8.函数方法数据能写死,就不需要传参数,
9.java里面的内存是用JVM(JVM虚拟机)管理的,jVM把内存分为3块(堆,栈,方法区),
10.堆:new出来的对象(包括成员变量中的实例变量),栈:局部变量(包括方法参数)(不一定装的是地址),方法区:class字节码文件(包括方法,静态变量)
11.数组类型可以是引用类型,像基本类型一样。
12.引用类型数组初始化必须都得手动赋值,避免空指针异常。
13.java规定:构造派生类之前必须先构造超类,若派生类中没有调用超类构造函数,会使用默认( super(); )关键字调用超类的无参构造方法来初始化值,也可以通过super(X,X)调用超类的有参构造函数。
14.对象在创建的时候,就已经执行了该对象的类的构造方法。
15.向上造型(语法):a.超类型的引用指向派生类的对象,b.点出的东西是看超类的内容。小结:有多种派生类有相同的方法,可以利用超类建一个引用类数组使用向上造型,可以提高代码的可读性。
16.重写和重载的区别:重写(重写的方法):在运行期绑定,看声明的对象的方法(new);重载(重载的方法):在编译期绑定,看参数引用的类型。//重写看new,重载看引用。
17.访问控制修饰符:public:所有类;protected:本类,派生类,同包类;无修饰词:本类,同包类;private:本类。
18.成员变量:实例变量和静态变量;实例变量访问通过new的对象来访问;静态变量是属于类的,通过 '类名点' 来访问,静态变量在方法区中,只有一份。
19.static变量使用:意义:属于类,存在方法区中,只有一份;何时用:所有对象所共享的数据(图片,音频,视频等);
20.static方法使用:没有隐式this访问,在静态方法中不能访问实例成员,能访问静态成员(因为他属于类,可以通过类访问,不通过对象);何时用:当方法的操作仅于参数有关,与对象无关的时候
21.static块:何时用:加载/初始化静态资源。
22.static final:何时用:数据永远不变,经常使用。final 和static final注意的点:static强调在方法区中只有一份;final定义的基本类型的值是不可改变的,但是fianl定义的引用对象的值是可以改变的
23.重写可以解决抽象方法,abstract 和 final不能同时修饰。
24.匿名内部类若想访问外部变量,则变量必须是final修饰,jdk1.8之前有这样的要求。
25.1.)接口里面只能包含常量和抽象方法;利用implements关键字实现接口;接口的变量是public static final,方法是public abstract
2.)接口中的变量和方法默认都是public类型的,实现类必须加public;先继承后实现的顺序;理解:把接口当超类来用。
26.多态中理解:看 引用对象 a =new 对象,引用对象一般是抽象类/接口(超类),先看a的内容,然后看a的内容是否被new 出来的对象继承,然后看是否重写,是就用对象的内容;如果是被new 出来的对象实现,只看new出来的对象中是引用对象的内容(方法)部分。
27.java中所有的抽象方法,对象都是多态的(表现出来是靠向上造型)
28.强制转换引用类型:a.引用所指向的对象,就是转换的类型;b.引用所指向的对象,继承了该类或实现了该接口。可以用<xx instanceof 转换类型>来判断。
29.实例变量有默认值,局部变量没有默认值。
30.浮点数默认是double,float后要加-f;
31.java中的参数传递是值传递
32.alt+/快捷键
33.Java中boolean型和其他类型(包括整型)不能互转,C++中可以,整型可以用来做逻辑判断。