java基础知识
-
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。一个类可以有很多方法,逻辑运算、数据修改以及所有动作都是在方法中完成的。(所以除了定义变量其他语句都需要写在方法里,在我工作2年的时候我还纳闷语句为啥不能直接写在类里)
-
静态方法不能调用非静态成员(变量和方法),编译会报错
-
默认构造方法的访问修改符和类的访问修改符相同(类为 public,构造函数也为 public;类改为 private,构造函数也改为 private)。一旦你定义了自己的构造方法,默认构造方法就会失效。
-
假设P为父类,C为子类,
P p=new C();//这是进行上转型
对子类C进行向上转型之后,使用父类对象p去调用方法,只能调用父类有的方法;
C c=(C)p;//这是进行下转型
向下转型必须是在已经向上转型的基础上进行,进行下转型后,对象c能够调用C类的所有方法,类似C=new C()。
-
thows和thow
-
throws 声明异常
当一个方法产生一个它不处理的异常时,那么就需要在该方法的头部声明这个异常,以便将该异常传递到方法的外部进行处理。使用 throws 声明的方法表示此方法不处理异常。
-
throw 拋出异常
当 throw 语句执行时,它后面的语句将不执行,此时程序转向调用者程序,寻找与之相匹配的 catch 语句,执行相应的异常处理程序。如果没有找到相匹配的 catch 语句,则再转向上一层的调用程序。这样逐层向上,直到最外层的异常处理程序终止程序并打印出调用栈情况。
-
区别:
- throws 用来声明一个方法可能抛出的所有异常信息,表示出现异常的一种可能性,但并不一定会发生这些异常;throw 则是指拋出的一个具体的异常类型,执行 throw 则一定抛出了某种异常对象。
- 通常在一个方法(类)的声明处通过 throws 声明方法(类)可能拋出的异常信息,而在方法(类)内部通过 throw 声明一个具体的异常信息
-
-
char本来就是ACSII码,实质上就是数字,数字怎么比较他就怎么比较,直接==;
char型变量存放的其实是对应的字符码的值,即存的是int型的数。即charNum = ‘1’ 与int类型的intNum = 1进行比较,实际上是将 charNum1 = ‘1’ 的acs码:49 与 1 进行比较,因此肯定不相等,返回false。