1.简单性
Java语法是C++语法的⼀个“纯净版本”。这⾥没有头⽂件、指针运算(甚⾄指针语法)、结构、联合、操
作符重载、虚基类等等。不仅如此,Java开发环境远远超出⼤多数其他编程语⾔的开发环境。
2.面向对象
什么是⾯向对象? 这⾥我们⽤⽊匠打⼀个⽐⽅,⼀个“⾯向对象”的⽊匠始终关注的是所制作的椅⼦,第
⼆位才是所使⽤的⼯具;⽽⼀个“⾮⾯向对象的”⽊匠⾸先考虑的是所使⽤的⼯具。
在Java的世界⾥,⼀切皆对象。
Java的⾯向对象特性与C++旗⿎相当,与C++的主要不同点在于多重继承。在Java中,取⽽代之的是更简
单的接⼝概念。⽽且与C++相⽐,Java提供了更丰富的运⾏时⾃省功能。
3.分布式
Java有丰富的例程库,⽤于处理像HTTP和FTP之类的TCP/IP协议。Java应⽤程序能够通过URL打开和访
问⽹络上的对象,其便捷程度就好像访问本地⽂件⼀样。
4.健壮性
Java与C++最⼤的不同在于Java采⽤的指针模型可以消除重写内存和损坏数据的可能性(对于曾经花费 ⼏个⼩时来检查由于指针bug⽽引起内存冲突的⼈来说,⼀定很喜欢Java的这⼀特性)。不仅如此, Java编译器能够检测许多在其他语⾔中仅在运⾏时才能够检测出来的问题。
5 .安全性
Java适⽤于⽹络/分布式环境。为了达到这个⽬标,在安全性⽅⾯投⼊了⼤量的精⼒。使⽤Java可以构防病毒、防篡改的系统 从⼀开始,Java就设计成能够防范常⻅的各种攻击: 运⾏时堆栈溢出。蠕⾍和病毒常⽤的攻击⼿段。 破坏⾃⼰进程空间之外的内存。 未经授权读写⽂件
6. 体系结构中⽴
编译器⽣成⼀个体系结构中⽴的⽬标⽂件格式,这是⼀种编译过的代码,只要有Java运⾏时系统,这编译后的代码就可以在许多处理器上运⾏。Java编译器通过⽣成与特定计算机体系结构⽆关的字节码令来实现这⼀特性。精⼼设计的字节码不仅可以很容易的在任何机器上解释执⾏,⽽且还可以动态地译成本地机器代码。
7.可移植性
与C/C++不同,Java规范中没有“依赖具体实现的地⽅”。基本数据类型的⼤⼩以及有关运算都做了明确说明。例如,Java中的int永远是32位的整数,⽽在C/C++中,int可能是16位整数、32位整数,也可能 是编译器提供商指定的其他⼤⼩。在Java中,数据类型具有固定的⼤⼩,这消除了代码移植时令⼈头的主要问题。
8.解释型
Java解释器可以在任何移植了解释器的机器上执⾏Java字节码。由于链接是⼀个增量式且轻量级的过 程。所以开发过程也变得更加快捷,更加具有探索性。
9. ⾼性能
尽管对解释后的字节码性能已经⽐较满意,但在有些场合下可能需要更加⾼效的性能。字节码可以(运⾏时刻)动态的翻译成对应运⾏这个应⽤的特定cpu的机器码。
10. 多线程
Java在当时很超前。它是第⼀个⽀持并发程序设计的主流语⾔。多线程可以带来更好的交互响应和实⾏为。并发程序设计绝⾮易事,但是Java在这⽅⾯表现出⾊,可以很好的管理这个⼯作。
11. 动态性
Java与C/C++相⽐更加具有动态性。它能够适应不断发展的环境。库中可以⾃由的添加新⽅法和实例变 量,⽽对客户端没有任何影响。在Java中找出运⾏时类型信息⼗分简单(反射的特性,后续会学到)
Java与电脑的运行以及数据的处理
安装 JDK Java Development Kit
JRE Java Runtime Environment
虚拟机 cpu(Java虚拟机 Java Virtual Machine) 简称 JYM
虚拟机扮演的是翻译官的角色
public class HelloWorld{
public static void main(String[]args){
System.ot.println("你好世界");
}
}
冯诺依曼体系架构