过去学习编程语言的方法、经验和教训
过去学习了C/C++和Python,以下是我的一些经验与教训:
- 学习的时候看教材,但不局限于教材,要与相关参考书籍相结合,教材的版本可能比较老旧,要注意知识的更新,多看一些讲得更加具体、全面的书,例如在学习C++的过程中,《C++ Primer Plus》就给了我很大的帮助。
- 切勿只看书不实践,要将理论与实际相结合,勤写代码才是快速提升对语言掌握能力的最佳方法。纸上谈兵并不可取,实践出真知。
- 可以找相关的视频、博客进行观看学习,别人的讲解有时候可以让你豁然开朗,可以减少许多不必要的时间浪费。
- 遇到不会的问题,要积极查阅各种资料,利用能利用的资源,现在各种资源鱼龙混杂,要有一定的鉴别能力,不要别人说啥就是啥,要有质疑的能力。
高级语言的编译型和解释型语言的编译执行过程的区别
编译型语言
- 编译型语言是一次性把源文件编译成机器语言,生成可执行文件,运行时不需要重新编译,一次编译永久执行。执行效率高,但跨平台性差。
- 编译型语言编译器处理流程:
源代码→ 预处理器→ 编译器→ 目标代码→ 链接器→ 可执行程序→执行。
解释型语言
- 解释性语言源代码不需要预先编译,在运行时,边解释边运行。执行效率低,但跨平台性好。
- 解释型语言解释器处理流程:源代码→解释器中间代码(字节码)和机器指令→执行。
Java语言的特点,与C/C++, Python的异同
与C/C++的区别
-
Java语言是C++语言的一个“简化”版本。有垃圾自动回收机制,没有头文件、指针运算、虚基类等。 -
Java的面向对象比C++更彻底,一切皆对象,Java与C++的主要不同点在于多继承,在Java中,取而代之的是接口概念。 -
Java适用于网络/分布式环境。从一开始,Java程序能够防范各种攻击,其中包括: 运行时堆栈溢出。 破坏自己进程空间之外的内存。 未经授权读写文件。 -
可移植性更强,Java编译器通过生成与特定计算机体系结构无关的字节码指令,不仅可以在任何机器上解释执行,而且可以动态地翻译成本地机器代码,跨平台能力强,一次编译处处运行,只要装有不同平台对应的JVM,便可在不同操作系统上解释执行。 -
Java与C/C++相比更具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量。
与Python的区别
- Java和Python之间最大的区别之一就是两种语言处理变量的方式。Java强迫你在第一次声明变量时就定义其类型并且不允许你在后面的程序中更改它的类型,是静态类型。而Python不许声明时定义变量类型,可以改变一个变量的类型,是动态类型。
- Java的可移植性更强与上文同理。
- Python有非常丰富的库,程序的开发效率高。
JDK、JRE、JVM是什么,它们之间的联系和区别
JDK
- JDK,全称Java Development Kit,是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的Java应用程序。JDK是整个Java开发的核心。
JRE
- JRE,全称Java Runtime Environment,是指Java的运行环境,是可以在其上运行、测试和传输应用程序的Java平台。
JVM
- JVM,全称Java Virtual Machine(Java虚拟机),是一种用于计算设备的规范,它是一个虚构出来的计算机,引入JVM后,Java语言在不同平台上运行时不需要重新编译。JVM是Java跨平台的核心。
关系
- JDK包含了Java的运行环境(即JRE)和Java工具。JRE包含了一个Java虚拟机(JVM)以及一些标准的类别函数库。总的来说,JDK、JRE、JVM三者都处在一个包含关系内,JDK包含JRE,而JRE又包含JVM。
|