1、谈谈你过去学习编程语言的方法、经验和教训。
主要是多敲代码。在初学C语言之时,理论课和实践课都是在机房上课的,给我创造了一个很好的亲自动手操作的机会。不管是多么简单的程序,当时都有老师带着亲自在电脑上敲一遍。因此我对C语言的语法和代码相对比较熟悉。然而在学数据结构的时候课上学的几乎都是理论,而课下我没有达到一定的训练量,导致对数据结构的语法理解很透彻,但是代码不是很熟悉。
其次要学会抓大放小。在学习一个新的语言时要对这门语言有个宏观的把握,类似思维导图,然后再去学习相应的适量的细节,不要钻牛角尖。关键字有很多,但是常用的不多;STL库丰富多彩,也不是一时半会就都能掌握的,况且常用的也不多,遇到需要的当场查询也是来的及的,不必增加不必要的负担(大佬的话当我放p)。
最后就是深入了解代码运行机制。由于我学习C、C++、Python时几乎都只停留在了表面应用层次,就是只会用但是不懂它的底层逻辑,在这一点上我的Java老师就做的很好,不但讲解语法,还将它的底层逻辑,让我对编程语言有了新的认识,仿佛打开了一个新世界的大门。
2、高级语言的编译型和解释型语言的编译执行过程有什么区别?
编译型语言的编译执行过程是通过编译器将所有的源代码编译成可执行程序(机器码),编译一次后,脱离了编译器也可以运行,并且运行效率高。
解释型语言的编译执行过程是由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码,一边执行一边转换,效率很低。
3、Java语言都有哪些特点?与C, C++, Python有何不同?
- 简单
- 面向对象
- 分布式
- 解释型
- 健壮
- 安全
- 与体系结构无关
- 可移植
- 高性能
- 多线程
- 动态执行
4、Java实现跨平台的原理是什么?
所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。
源文件(.java)—>字节码文件(.class)(二进制文件)—> 解释—>Unix,Win,Linux等平台。
5、JDK、JRE、JVM分别是什么的简称,它们之间有何联系和区别?
JDK:Java Development Kit
JRE:Java runtime environment
JVM:Java Virtual Machine
联系:DK包含JRE,JRE又包含JVM。也可以说JDK是JRE和Java的开发工具。JRE包含了JVM和Java语言的核心类库。
区别:JDK用于开发,是给开发人员用的,JRE用于运行java程序,JRE和JVM是给普通用户使用的。如果只是运行Java程序,可以只安装JRE,无需安装JDK。



