- 简单易学;
- ⾯向对象(封装,继承,多态);
- 平台⽆关性( Java 虚拟机实现平台⽆关性);
- 可靠性;
- 安全性;
- ⽀持多线程( C++ 语⾔没有内置的多线程机制,因此必须调⽤操作系统的多线程功能来进⾏多线程程序设计,⽽ Java 语⾔却提供了多线程⽀持);
- ⽀持⽹络编程并且很⽅便( Java 语⾔诞⽣本身就是为简化⽹络编程设计的,因此 Java 语⾔不仅⽀持⽹络编程⽽且很⽅便);
- 编译与解释并存;
为什么java的安全性比较高
1、语言层次的安全性主要体现在:
- Java取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并且使用指针也容易数组越界。
- 垃圾回收机制:不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
- 异常处理机制:Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。
- 强制类型转换:只有在满足强制转换规则的情况下才能强转成功。
- 底层的安全性可以从以下方面来说明
- Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
2、在运行环境提供了四级安全性保障机制:
字节码校验器 -类装载器 -运行时内存布局 -文件访问限制