计算机语言中,各种语言都有自己的优势与劣势。本人是在大学期间就学习Java的,听到了过多Java不好的地方,但是Java在近20年里何以独步天下呢?Java语言和其他的语言之间到底有什么区别呢?

学习Java之后,对Java有了比较多的了解。也比较喜欢Java语言其中的乐趣。Java语言是现在比较流行的语言。它具有编程简单、面向对象、解释执行、安全、与平台无关、可植性、高性能等许多的特点。下面针对自己对语言之间的了解所写。关于Java与其他语言之间的区别。

一、 Java和C:

1、两者编程思想不同,C语言是一种过程式语言,较为简单直观,它是Java,C++等高级语言的基础。而Java语言是一种面向对象语言。

2、Java语言的安全性更好,Java语言很看重程序的安全性。java不允许程序员直接进行指针操作。指针可以说是C语言中最灵活的一个数据类型,也是最容易出错的。java就避免了这些问题的产生。

3、Java可以通过多线程来同时执行多个任务。线程是程序内一个单一的顺序控制流程。C语言在某个时刻只能执行一个任务,而Java可以通过多线程来同时执行多项任务。

二、 Java和C++:

1、Java语言不需要程序对内存进行分配和回收。Java丢弃了c++中很少使用的、很难理解的、令人迷惑的哪些特点,如操作重载、多继承、自动强制类型转换。特别的,Java语言不使用指针也没有指针。在Java语言中,内存的分配和回收都是自动执行的,程序员无需考虑内存碎片的问题。

2、Java语言中没有指针的概念,引入真正的数组。不同于C++中利用指针实现的“伪数组”,Examda,Java引入了真正的数组,同时将容易造成麻烦的指针从语言中去掉,这将有利于防止在c++程序中常见的因为数组操作越界等指针操作而对系统数据进行非法读写带来的不安全问题。

3、Java用接口(Interface)技术取代C++程序中的多继承性。接口与多继承有同样的功能,但是省却了多继承在实现和维护上的复杂性。

三、 Java和c#:

1、在面向对象世界里,一切都是对象Java和C#都是面向对象的语言,它们都遵守面向对象的概念,这也使得这两种语言很像,至少看起来是这样.但在具体实现上,这两种语言还是有很大差别的.作为面向对象的语言,Java先于C#面世.一切皆是对象,Java遵守得很好――所有的类都继承自Object,一点儿问题没有!然而同时,Java认识到很多时候我们需要做一些简单计算:2+3=5、(2==3)=false...这些频繁使用的简单的不能再简单的小东西,我们有必要封装起来做成一个个对象再去操作它们吗?回答是,没有必要!于是,Java引入了简单类型,或者叫基本类型,同时引入了值类型的概念.换言之,Java的值类型就是这几个简单类型,而且它们是脱离Object之外的概念,它们不是面向对象的元素.Java便成了面向对象+boolean、byte、short、int、long、char、float、double这八个简单类型。

2、Java更加注重面向对象,更加注重标准化和完美化.于是,Java有了Eclipse,有了JSP、Serverlet、EJB,有了Spring、Structs、Hibernate...C#更加注重实用性和易用性,它封装的更多一些.于是C#有了VisualStudio,有了、WinFormApp、CommandLineApp、WCF、WPF、WF、EntityFramework...比较而言,Java更开放,朋友很多;C#更封闭,但微软很给力。

3、2010年1月,Oracle收购了Sun,把MySQL和Java纳入囊中,让广大开发者不禁对MySQL和Java的前景产生担忧..2008年,C#刚兴起的时候,Java已经发展得如火如荼了.但后来C#一直发展挺快,向Java借鉴的同时,也不断创新,引入自己的新东西,如:对值类型的大胆改造,引入Linq、Lumda表达式,等.Java和C#都是在发展的.Java计划也将引入Lumda语法,看来Java也开始放下架子,和C#相互学习了.开放还是封闭、依靠社区还是自己开发,Java和C#选择的道路不同,但都将更强大且易于使用。

java语言与其他语言的区别是_浅谈Java语言和其他语言的区别相关推荐

  1. 在java中补零的作用是什么_浅谈Java中的补零扩展和补符号位扩展

    今天,魏屌出了一道题,题目如下: 定义一个大头序的byte[]a={-1,-2,-3,-4},转换成short[]b.问b[0]和b[1]分别是多少? 乍一看,这题不难,无非就是移位操作,再进行组合. ...

  2. java什么是适配器类?作用是什么?_浅谈Java适配器模式

    假期刚结束不久,也没什么好写的,今天就水下文章,讲讲设计模式对开发时的影响,做开发到现在,感觉设计模式对开发的影响还是挺大的. 这次就简单谈谈适配器模式.可能适配器模式感觉比较鸡肋,但是用到的地方还挺 ...

  3. java虚拟机类加载机制浅谈_浅谈Java虚拟机(三)之类加载机制

    在<浅谈Java虚拟机>这篇文章中,我们提到了JVM从操作系统方面来说,可以将其看做是一个进程,分别有类加载器子系统,执行引擎子系统和垃圾收集子系统.这一篇文章就简单的来谈一下类加载器子系 ...

  4. java方法区对象类型_浅谈Java内存区域与对象创建过程

    一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...

  5. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  6. scale和java比较_浅谈java中BigDecimal的equals与compareTo的区别

    这两天在处理支付金额校验的时候出现了点问题,有个金额比较我用了BigDecimal的equals方法来比较两个金额是否相等,结果导致金额比较出现错误(比如3.0与3.00的比较等). [注:以下所讲都 ...

  7. java的向下转型_浅谈Java向下转型的意义

    一开始学习 Java 时不重视向下转型.一直搞不清楚向下转型的意义和用途,不清楚其实就是不会,那开发的过程肯定也想不到用向下转型. 其实向上转型和向下转型都是很重要的,可能我们平时见向上转型多一点,向 ...

  8. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  9. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

最新文章

  1. 随机生成6位图片验证码
  2. win2012 R2的ntp时间同步设置解析
  3. Java泛型:类型擦除
  4. PCMCIA接口采集卡系列
  5. 颜宁课题组再发Cell!1个月时间内4篇顶刊!
  6. Flask爱家租房--房屋管理(获取主页幻灯片展示的房屋基本信息)
  7. POJ 1639 Picnic Planning:最小度限制生成树
  8. VMware15.5安装Linux虚拟机(Centos7)图文教程
  9. MATLAB 读取文件及数据
  10. C# 生成word文档(NPOI.XWPF)
  11. View绘制详解(四),谝一谝layout过程
  12. 网易邮箱服务器怎么注册,免费网易域名邮箱申请教程(图)
  13. ubuntu下终于安装好了nvidia的gt540显卡驱动
  14. 编码通信与魔术初步(六)——经典魔术《傅氏幻术》赏析和《我的心灵感应》...
  15. 低功耗蓝牙(BLE)开发——如何妥善处理包大小(MTU)限制
  16. FaceNet 人脸比对框架 部署+测试
  17. Axure 设计原型图 使用总结
  18. 2020年6月24日训练总结(codeforces辛路历程)
  19. 基于springboot开发的停车场管理系统-计算机毕业设计
  20. linux进程的使用xps,linux kernel 网络协议栈之xps特性详解

热门文章

  1. C++实用技巧:公交换乘算法
  2. [讲座论坛] 竹资源培育与中国竹产业
  3. 《信号与系统》奥本海姆第二版中文版勘误
  4. 思科将以6.35亿美元收购网络安全公司OpenDNS
  5. shell - grep输出的值赋值给变量,shell逻辑非(或者)的判断,和if-else
  6. 拆分list的通用方法
  7. 妙手回春,AI修复让老旧视频重焕新生
  8. 百度地图只显示你想要的部分
  9. java利用循环打印AVA_ava.util.ArrayList在foreach循环遍历时可以删除元素
  10. mysql month函数值类型_MySQL常用函数(分类别整理)