- A+
自学是一种方法,但是自学成才的百分之一吧!这样的人很少,小编建议大家如果经济条件容许的话,最好是可以报个培训吧,不管是效率还是就业都会快很多!经济条件苦难的话就选择自学吧!自学的人很多,但是真学会了的没几个!自学过程中一定要坚持!不要轻易放弃。
我相信:付出总有回报,时间稍纵即逝。
关于Java跨平台
和C++相比,很重要的一点就是:C++编译生成的是纯二进制的机器指令, 而Java编译生成的是非纯二进制的字节码。而这种Unicode字节码是不依赖特定的计算机硬件架构而存在的--这就意味着只要有JVM环境,你的字节码就可以在任何平台上运行。其次,Java字节码的二进制数据以固定的格式进行存储和传输,消除了字节顺序的干扰。
Java为什么能跨平台?因为字节码实在虚拟机上运行的,而不是编译器,是因为JVM能跨平台安装,所以相应Java字节码便可以在任何平台上运行。只要JVM自身的代码能在相应平台上运行,即JVM可行,则Java的程序员就可以不用考虑所在的程序要在哪里运行,反正都是在虚拟机上运行,然后变成相应的机器语言,而这个转变并不是程序员应该关心的。
编程语言进化
机器语言
由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为及机器指令,全部机器指令的集合构成计算机的机器语言。
机器语言属于低级语言。
编出的程序全是些0和1的指令代码,直观性差,还容易出错,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
机器语言是微处理器理解和使用的,尽管机器语言好像是很复杂,然而它是有规律的。
存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。
高级语言分类
高级语言所编制的程序不能直接被计算机识别,必须经过转换才可以执行。
按照转换方式可以将他们分为两类
-
编译型
-
解释型
编译型
编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,就必须先修改源代码,再重新编译新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新编译,直接使用编译的结果就可以了。程序执行效率高,依赖编译器,跨平台性差些,如C,C++等。
编译型VS解释型
编译型
-
把源代码编译成机器语言的可执行程序;
-
执行 可执行程序文件;
优点
-
执行速度快,不再需要源代码,不依赖语言环境,因为执行的是机器码文件;
-
执行速度快,因为程序代码已经翻译成了是计算机可以直接理解的机器语言;
缺点
-
每次修改了源代码,需要重新编译,生成机器码文件;
-
跨平台性不好,不同操作系统,调用底层的机器指令不同,需为不同平台生成不同的机器码文件;
解释型
-
用户调用解释器,执行源代码文件;
-
解释器将源代码文件边解释成机器指令,边交给cpu处理;
优点
-
天生跨平台,因为解释器已经做好了对不同平台的交互处理,用户写的源代码不需要考虑平台差异性,可谓,一份源代码,所有平台都可直接执行;
-
随时修改,立刻见效,改完源代码后,直接运行看效果;
缺点
-
运行效率低,所有的代码均需经过解释器边解释边执行,速度比编译型慢很多
-
代码是明文
小节
机器语言
优点是最底层,速度最快,缺点是最复杂,开发效率最低
汇编语言
优点是比较底层,速度最快,缺点是复杂,开发效率最低
高级语言
编译型语言执行速度快,不依赖语言环境运行,跨平台差
解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行