Java语言的特点:
1.简单高效,基本Java系统所占空间极小。
2.纯面向对象。
3.平台无关性与可移植性
Java采用多种机制来保证可移植性,其程序不经修改或经少量修改就可在不同操作系统运行。两大主要措施:①Java既是编译型又是解释型语言,编译成的字节码文件(.class文件)由Java虚拟机在不同操作系统上解释执行;②Java数据类型在任何机器上都是一致的,它不支持特定于具体硬件环境的数据类型,同一数据类型在不同操作系统中占据相同的空间大小。
4.稳定性和安全性
Java摒弃了不安全的指针数据类型,另外Java运行环境还提供字节码校验器、运行时内存布局和类装载器、文件访问限制等多种安全措施,保证字节码文件加载的安全和访问系统资源的安全。
5.多线程并且是动态的
多线程使应用程序可以同时进行不同的操作和处理不同的事件。在多线程机制中,不同的线程处理不同的任务,互不干涉,不会由于某一任务处于等待状态而影响其他任务的执行,这样就很容易实现网络上的实时交互操作;Java在执行过程中,可以动态加载各种类库,这一特点使之非常适合于网络运行,同时也非常有利于软件的开发,即使更新类库也不必重新编译使用这一类库的应用程序。
6.高性能
Java字节码转换成机器码非常简便和高效,弥补了解释型语言执行效率较低于直接执行机器码的缺陷。
7.分布式
对于数据分布,Java提供了一个URL对象,利用此对象可以打开并访问网络上的对象;对于操作分布,Java的客户机/服务器模式、RMI远程方法调用等可以把计算从服务器分散到客户端,以提高整个系统的执行效率,避免瓶颈制约,增加动态可扩展性。
Java跨平台实现的原理:
Java将源程序编译成字节码文件——扩展名为.class。这个二进制代码文件与具体操作系统的机器指令无关,其运行必须借助解释执行系统动态翻译成所在操作系统的机器码(由运行环境当中的Java虚拟机完成解释执行工作)。因此,只要对程序进行一次编译,就可在不同的操作系统上运行。但需要注意的是当在程序中调用其他语言编写的代码块时,会使Java程序的跨平台性能受到限制或破坏。
JDK、JRE、JVM的区别:
JDK:Java Development Kit
含义:Java开发工具包
JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
JRE:Java runtime environment
含义:Java运行环境
JRE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
JVM:Java Virtual Machine
含义:Java虚拟机
JVM是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。只有JVM.class文件还不能执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
过去学习编程语言的方法、经验和教训:
学习C/C++语言的时候会经常做编程题,学习Python的时候主要是照着老师给的代码进行练习。我觉得经验就是一个字——练。之前还是练得太少了,但练习的同时也应该多思考一下代码的实现原理,并总结编程方法。