编译器的性能和安全性评价标准
‘壹’ java的技术特点是什么
JAVA的技术特点是什么?
Java由美国SUN公司(被oracle公司收购)发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。
那么Java这么高的评价它的特点有哪些,下面我来为题主解答:
一、跨平台/可移植性
这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。
Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class; 最后利用虚拟机(解释器,java)解释执行。如下图所示:
二、安全性
Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。比如Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的。
三、面向对象
面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!Java则是完全的面向对象语言。
四、简单性
Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
五、高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
六、分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
七、多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
八、健壮性
Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
以上几种特性你了解到啦吗? 记得给个赞!
当然这些还没完,Java除啦这些特性还有一些其他的特点我也来给你讲一讲!!
1.java的风格类似C++,从某种意义上讲,java是C++的一个变种。但是java摒弃了C、C++中的容易引发错误和难以理解的指针,结构,以及内存管理等;
2.java是一种强类型的语言,比C/C++检查还要严格,java区分大小写字母;
3.java禁止非法访问内存,因为java没有指针,内存的申请和释放;
4.对于不同的操作系统,会有不同的java虚拟机,这也就决定了java的可移植性;
5.java提供了自动垃圾回收机制gc,有效避免了C、C++的内存泄漏问题;
记得给个赞!
‘贰’ 如何评价jdk21
Oracle提供JDK 21,为开发人员、用户和企业服务,确保至少8年的长期支持,适应组织灵活的应用程序部署需求。针对Java生态系统内的反馈和使用情况,Java 11的长期支持延长至2032年1月,Oracle提供至少8年的支持与更新。
Java 21引入了数千项性能、稳定性和安全性更新,以及15项关键改进,涵盖六个预览功能与一个孵化器功能,这些特性被细分为六个类别,针对长期Java技术项目和硬件支持。
以下是Java版本从7到21的特性概览:
Java 7 特性
- 支持String类型的Switch
- 改进数字字面量
- 增强异常处理
- 泛型推断优化
- NIO2.0新IO支持
- 引入JSR292与InvokeDynamic
- Path接口更新
- fork/join计算框架
Java 8 特性
- 收集器与java.util.stream.Collectors
- IntStream,LongStream,DoubleStream
- Collectors.joining()详解
- Runnable Lambda表达式
- Base64编码解码
- Lambda表达式(上、中、下)
- 方法引用
- 接口(interface)默认方法与静态方法
- 集合遍历forEach()方法
- 可选值java.util.Optional类
- Nashorn JavaScript
- 新日期时间API(上、中、下)
- 流Stream(上、下)
- 函数接口
Java 9 特性
- 模块化与环境配置
- REPL(JShell)
- 改进JavaDocs
- 多版本共存JAR
- 集合不可变实例工厂方法
- 接口(interface)的私有方法
- 增强进程管理API
- 增强流(Stream)API
- try-with-resources语句
- 增强@Deprecated注解
- 内部类的方块操作符
- Option类
- 多分辨率图像API
- CompletableFutureAPI(上、中、下)
- 其他特性
Java 10 特性
- 基于时间的发布版本控制
- 局部变量类型推断
- 新API与选项
- 删除的功能与选项
- 增强的JIT编译器
- 应用程序类数据共享
- 增强的垃圾收集
- Unicode语言标签扩展
- 堆分配
- JDK多个代码仓库合并
- 根证书
- 线程本地握手
Java 11 特性
- 标准HttpClient
- 免编译启动
- 增强String的API
- 集合转换为数组
- 文件API
- Optional类
- Predicate接口
- Lambda中使用var
- 嵌套类的使用
- 删除-弃用的API
以上概述展示了Java版本从7到21的发展与改进,提供了开发者所需的工具与特性,以适应不断变化的技术需求与环境。