head first Java第一章
Java的工作方式
- 编写源代码
- 编译器运行源代码并检查错误
- 编译器产生字节码
- Java虚拟机(JVM)读取执行字节码
因为JVM在执行,所以可以跨平台,这就是Java酷的地方
我需要做的事
- 编写源代码,存为
xx.java
- 执行javac程序编译
xx.java
- 编译没有错误就会产生
xx.class
这个文件,由字节码组成的 - 启动JVM执行
xx.class
,JVM将这个字节码转化为平台能理解的形式
题外话
Java的sun公司已经被oracle公司收购了,我一直以为oracle只是个数据库,原来是赞助金州勇士队的甲骨文公司,勇士队的主场就是甲骨文球馆(我又把学习带到了我擅长的领域,勇士总亚军)。
一些概念
-
强类型语言
强类型语言也称为强类型定义语言。是一种总是强制类型定义的语言,要求变量的使用要严格符合定义,所有变量都必须先定义后使用。
java、.NET、C/C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。
与其相对应的是弱类型语言:数据类型可以被忽略的语言。它与强类型定义语言相反,一个变量可以赋不同数据类型的值。
-
动态绑定
动态绑定是指在执行期间(非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。
动态绑定(后期绑定)是指:在程序运行过程中,根据具体的实例对象才能具体确定是哪个方法。
动态绑定是多态性得以实现的重要因素,它通过方法表来实现:每个类被加载到虚拟机时,在方法区保存元数据,其中,包括一个叫做方法表(methodtable)的东西,表中记录了这个类定义的方法的指针,每个表项指向一个具体的方法代码。如果这个类重写了父类中的某个方法,则对应表项指向新的代码实现处。从父类继承来的方法位于子类定义的方法的前面
Java中integer与boolean两种类型并不相容.
int x = 1;
while(x){}//这种写法是在Java中是错误的,只能使用boolean类型
李晓晗
更新于2019-7-15 中午
参考资料: