为什么要使用Java开发?

1、面向对象和面向过程的区别

  • 面向过程:面向过程比面向对象性能高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能作为考量的重要指标时,例如:单片机、嵌入式开发、linux\Unix开发一般采用的是面向过程。
  • 面向对象:面向对象开发易维护,易复用,易扩展。因为面向对象有封装、继承、多态性的特征,可以设计出低耦合、高可用的代码。但是性能比面向过程低。
  • 注:①、面向过程也需要分配内存、计算内存偏移量;java性能差的主要原因:java语言是半编译语言,最终执行代码不是cpu可以直接执行的二进制机械码。②、面向过程语言大部分是直接编译成机械码在电脑上运行,但是一些面向过程的脚本语言性能不一定比java好。

2、Java语言的特点

  • 简单易学
  • 面向对象(封装、继承、多态性)
  • 平台无关性(一次编译,到处运行)
  • 可靠性
  • 安全性(java的沙箱安全模型,①、类加载器结构,双亲委托机制;②、class文件校验器,class文件之间的协调一致;四趟扫描,类加载器检验内部结构,确认是否遵循java开发语义,检验全部字节完整性,检验引用的类、常量、方法是否存在;③、java虚拟机内置的安全特性,类型安全的引用转换;结构化的内存访问(无指针算法);gc收集器;数组边界检查;空指针检查;④、安全管理器和java api)
  • 支撑多线程(c++没有多线程机制,需调用系统的多线程功能来设计多线程程序,java语言提供了多线程的支持)
  • 支持网络编程并且很方便(java诞生就是为了简化网络编程设计的)
  • 编译与解释并存(java代码都是需要编译的,编译后的.class文件,java代码编译后不能直接运行,由jvm解释运行;现在jvm为了效率,都有一些JIT优化,将.class文件二进制代码编译成本地代码直接运行)

3、jvm、jdk和jre

  • jvm    java虚拟机(jvm)是运行java字节码的虚拟机。jvm有针对不同的操作系统的特定实现,目的就是实现一次编译,到处运行。字节码(.class文件)它不做任何特定的处理器,只面向jvm所以无需重新编译就可在各种操作系统上运行,解决了传统解释型语言执行效率低的问题,也保留了解释型语言的可移植性的特点。
    • HotSpot采用惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分资源的只有那么一小部分代码,通过JIT来编译优化,JVM会根据执行的情况作出相应的优化,执行的越多,速度越快。 
    • 注:jdk9引入了一种新的编译模式AOT(Ahead of Time Compilation),它直接将字节码编译成机器码,便面了JIT预热等的开销。jdk支持分层编译和AOT协作使用。AOT编译的质量比不上JIT的。
  • jdk 是Java Development Kit, java开发环境(编译器(javac)、工具(javadoc和jdb))和运行环境(JRE的一切),能够创建和编译程序。
  • jre是java运行环境。运行编译的java程序和java虚拟机,java类库,java命令、基础构件。

4、oracle jdk 和 openjdk的对比

  • 功能大致接近,oracle jdk增加了几个部分
  • 部署代码,oracle的java插件和java WebStart的实现。源代码派对组件,如图形光栅化器;开源的第三方组件,如Rhino;文件,第三方字体等。
  • 稳定性更高,持续新版本更新,响应性和JVM性能更好。

5、java和C++的区别

  • 都是面向对象语言,都支持封装、继承、多态。
  • java不提供指针来直接访问内存,程序内存更加安全。
  • java类是单继承的,c++是多继承的;java的接口可多继承。
  • java有自己的内存管理机制,不需要程序员手动释放无用内存。
  • java里的一切是对象,对象的字符串有长度,因此不需要增加一个字节来存放结束符。C语言会使用‘/0’来表示字符串或数组的结束。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring是一个开源的Java开发框架,它提供了一种简化Java应用开发的方式。 Spring框架的主要目标是提供一种轻量级的、非侵入性的解决方案,用于构建企业级应用。它通过提供一系列的模块化组件和工具,帮助开发者更容易地进行应用的开发和集成。 Spring框架的简化开发主要体现在以下几个方面: 1. 依赖注入(Dependency Injection):Spring通过依赖注入机制,将对象之间的依赖关系从代码中解耦出来,使得代码更加灵活、可维护和可测试。开发者不再需要手动管理对象的创建和销毁,而是由Spring容器来负责管理。 2. 面向切面编程(Aspect-Oriented Programming):Spring支持面向切面编程,通过将通用的横切关注点(如事务管理、日志记录等)从业务逻辑中抽离出来,实现了更好的代码复用和模块化。 3. 企业级功能支持:Spring提供了许多企业级应用开发常用的功能模块,如事务管理、安全认证、远程调用等。这些功能模块可以方便地集成到应用中,减少了开发者的工作量。 4. 松耦合和可测试性:Spring框架采用松耦合的设计思想,使得各个组件之间的耦合度降低,易于替换和测试。开发者可以通过使用接口和依赖注入来实现模块之间的解耦。 总之,Spring框架通过提供一种简化、灵活和可扩展的开发方式,帮助开发者更高效地构建Java应用,并且提高了应用的可维护性和可测试性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值