1.JAVA语言的最大特点
可移植性(平台无关性),一次编译随处运行。
可移植性分两个层次:源代码级可移植性和二进制代码的可移植。
大部分的语言都支持源代码级的可移植性(编译器是平台有关的)
JAVA语言不仅支持源码可移植性,其源代码编译之后生成的字节码同样具有可移植性。
2.了解JAVA和C程序编译运行方式的区别
编译:Java编译程序将源程序翻译为JVM可执行代码——字节码(.class文件寂码文件是一种和任何具体机器环境及操作系统环境无关的中间代码,它是一种二进制文件,是Java源文件由Java编译器编译后生成的目标代码文件,它必须由专用的Java解释器来解释执行。与C/C++的编译有所不同。C编译器编译后,所生成的代码将在某一特定硬件平台运行,因此编译时会通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译器却将这些符号引用信息保留在字节码中,由解释器在运行过程中创文内在布局,然后通过查表来确定一个方法所在的地址。这样就有效地保证了Java的可移植性和安全性。
执行:字节码的执行由Java解释器完成。执行过程分三步,代码的装入、代码的校验和代码的执行。代码的装入是由类装载器(class loader)完成的,类装载器负责装入运行一个程序需要的所有代码,包括程序代码中的类所继承的类和被其调用的类,而后解释器便可确定整个可执行程序的内存布局;接着,进行代码的校验,由字节码校验器对被装入的代码进行检查,校验器可发现操作数栈溢出、非法数据类型转化等多种语法错误;通过校验后,代码便可以执行了。
3.理解JVM的作用
JVM就是Java里的一个虚拟机,可以把它当成一个虚构的计算机。而JVM就是一台已经有了许多功能和结构的计算机帮助我们完成中间过程,让我们写代码的效率更高。
JVM中类的装载是由类加载器和它的子类来实现的,类加载是java运行时一个重要的系统组件,负责在运行时查找和装入类文件的类。
4.Java自动内存管理机制
JVM提供垃圾回收器,自动回收不用的内存空间,进行垃圾清除。
Java与C最大的区别就是Java不可以改变内存,而C通过操作是可以的,所以后序也会介绍道Java的安全性。
但我觉得大概就是那么回事啦*-*
5.java中的注释
//单行注释(这个可以用来调试代码)
/* */ 单行或多行注释
/** */文档级注释 ,会在类的帮助文档中存在
6.生成类的帮助文档
javadoc 文件名.java
在学习Java中一定要学会看Java帮助文档,因为用得多也就那几个而已。
Java帮助文档在线版
ps.尽量看英文版的,因为里面有最新的资料。
7.Java语法基础
(其实语法跟C类似)下一章才会介绍道与C的最大区别
布尔型数据占1位,值为true或false,实际内存分配一个字节
12.3表示double类型数据,12.3f表示float型数据
运算符+:
当+号左右两边是数值类型数据时做算术运算
当+号左右两边存在字符串的时候,做字符串连接操作。
数据类型转换:
将一种类型的变量赋给另一种类型的变量时,只要满足以下条件,就会发生自动类型转换:两种类型兼容;目标类型大于源类型。
自动类型转换又叫隐式转换,自动类型转换是安全的。是小范围向大范围转换
强制转换又叫显式类型转换。如果被转换的值的数据类型大于其目标类型,就会丢失部分信息,有可能会损失精度,所以强制类型转换是不安全的。是从大范围到小范围
(byte,short,char)–int–long–float–double
表达式数据类型提升原则:整型、实型、字符型数据可以进行混合运算。运算时,不同类型的数据先转换成同一类型后再参与运算,转换的原则是位数少的类型转换成位数多的类型,称为自动类型转换 。
练习:
九九乘法口诀表
public class MutiplicationTable
{
public static void main(String[] args)
{
//外循环控制行数
for(int i=1;i<10;i++)
{
//内循环控制每行表达式个数
for(int j=1; j<=i; j++)
{
System.out.print(" "+i+"*"+j+"="+(i*j));
}
//一行结束换行
System.out.println();
}
}
}