废话连篇

Java和C++都是世界范围内通用的两种语言,关于两种语言之间的差异和优劣的问题从来没有中断过。就差异问题而言,随着两种语言的不断成熟,差异性也越来越明显,各个大神都有各自的见解和说法,在这里我就不再赘述。就语言的优劣性而言,我认为语言之间没有优劣性而言,相信很多程序员的认知也是一样的,要不也不会有‘PHP是世界上最好的语言’这种无伤大雅的玩笑了,当然不可否认PHP确实是一门非常好的语言。其实我感觉任何语言之间都是有相通性的,无论一门语言被设计出来做什么,无论其编码风格,结构设计,都脱离不了‘以人为本’这个目的。

好了,废话不多讲,接下来直入正题。

设计思想

就C++和Java而言,C++的设计能够让人更好的理解计算机,也能让计算机更好的理解人。当然,C++作为C的一个超集,为了向后兼容C,使语言本身的复杂度大大的增加,程序员在使用C++的时候不得不去花很多的时间去理清楚这层关系。但是这并不妨碍C++的效率性,反而为C++获得更高的效率提供了很大的帮助,一个好的程序员能够借助这些特点设计出很优美的程序,大大提高程序的执行效率和使用范围,当然这对程序员本身的要求是非常高的。这点在我看来,C++相对于Java来说,确实是要优美的多。

C++和Java都是一种杂合语言。之所以不说二者都是面向对象语言,是因为二者都不是纯粹的面向对象语言。(C++要向后兼容C的设计使得C++不是一个完全面向对象的语言。Java的八种基本数据类型和Java兼容C的设计,也使得Java不是一个纯粹的面向对象的语言,当然Java对八种数据类型提供了封装类,这点不说了。)但是面对Java时并不妨碍我们以一种绝对的面向对象的思想去考虑一个问题。Java的设计特点就是程序向自然万物的延伸,万物皆可被当作对象来看,缺什么程序员就创造什么。所以也有一种说法‘Java是一系列对象的集合’,这种说法确实没错。这种思想上完全面向对象的设计确实给Java带来了很大的便利,程序员不需要像在C++中一样考虑那么多关于程序底层的问题,上手非常快,所以选择Java作为第一语言的人非常的多。

物质守恒

在我看来,物质是守恒的,程序也一样需要考虑资源枯竭的问题。Java的程序员就像是一个造物主,程序本身是造物主的领地,领地内缺什么造物主就补充什么,不需要考虑资源枯竭的问题,因为程序底层的设计就是资源守恒的,没有用的时候就自动回收再利用。而C++的程序员则更像是一个领主,C++的程序本身是领主们的上帝,程序员想要改造自己的领地时需要向上帝申请资源,程序员用过这些资源后,必须还给上帝,保证上帝的资源守恒。

这一段说得比较绕,其实简单点就是垃圾回收和内存分配的问题。C++创建一个对象需要合理分配内存,分配存在时间。而Java完全不需要去考虑这两者,一切都可以自动完成,当然这样牺牲了很多效率,这也是Java执行效率低的一个主要原因。

有人说Java像是一个高配自动挡的汽车,开着舒服。C++像是全能手动挡的汽车,让人体会到操控的乐趣,就上面这两点来看确实是这样。

……未完待续……

java引言_Java C++(引言一)相关推荐

  1. 从0开始学java视频_Java全套学习视频放送,从零开始一步步掌握Java技能!

    在近几年,Java技术岗的工作需求随着时代的发展而越来越大,这个岗位不仅让众多人眼红,也是很多企业正常运行的一个关键所在,大部分人都想跳槽转型做Java程序员,那么想要做一名合格的Java程序员,少不 ...

  2. java 并_java并发编程(一)

    java并发编程(一) 引言 多线程的知识点是一个庞大的体现,对此也是一知半解.一直想系统的深入的学习多线程的知识,奈何一直没有找到机会,好吧,其实就是懒.最近在项目中接触到一个多并发的项目,在项目中 ...

  3. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  4. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  5. Java 贪吃蛇游戏引言

    欢迎关注公众号: 贪吃蛇小游戏是一款十分经典的小游戏,适合用于新手的练习,花了近两个月的时间,终于可以运行出比较完善的贪吃蛇了,相比于CSDN中的大神,花个几天的时间就可以做出Java版本的贪吃蛇小游 ...

  6. java 和%_java% c

    javac不是内部或外部命令,但是java.java-version指令正常 javac不是内部或外部命令,但是java.java-version指令正常 今天遇到这个问题,云笔记博客同时Mark一下 ...

  7. 普罗米修斯监控java项目_java学到什么程度可以出去实习?

    把基础的知识学完,然后再学个框架,比如常见的SSH,SSM之类的,自己能用这个框架做个简单的项目,就可以了 简单的来说就是把下方的视频教程学完就可以找工作了(需要完整的资料可以找up) Java零基础 ...

  8. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  9. java 原子量_Java原子量 - Rickxue的个人空间 - OSCHINA - 中文开源技术交流社区

    所谓的原子量即操作变量的操作是"原子的",该操作不可再分,因此是线程安全的. 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题.在Java5之前,可以通过vola ...

最新文章

  1. c语言文件fputs和fgets,文件的读写问题,fputs和fgets问题!!!!
  2. .NET 4.6的RyuJIT编译器中又发现两个严重的Bug
  3. CTFshow 命令执行 web54
  4. 5-1 Django的路由层(urlconf)
  5. BZOJ 4819 Luogu P3705 [SDOI2017]新生舞会 (最大费用最大流、二分、分数规划)
  6. 数据结构与算法——哈希表与字符串
  7. sizeof,strlen用法详解
  8. 学用软件:laTex软件初体验
  9. mosquitto源码分析(五)
  10. RDP协议详细解析(三)
  11. AttributeError: 'Request' object has no attribute 'is_xhr' 报错的解决办法
  12. 从1亿个ip中找出访问次数最多的IP
  13. 第二篇: Silverlight -- 下载与安装
  14. php 获取301跳转后真实的url
  15. 九度OJ 1050:完数
  16. VS Code彻底卸载已安装插件
  17. 什么是网桥?何为网桥?防火墙的端口防护是指什么?
  18. Excel if及ifs函数用法
  19. 钢材缺陷检测系统-ui界面
  20. 【算法leetcode每日一练】266. 访问所有点的最小时间

热门文章

  1. Struts2 s:iterator 用法
  2. 两个整数集合的交集 ———— 腾讯2014软件开发笔试题目
  3. CGI、FastCGI和php-fpm的概念和区别
  4. 杂项-Server:Serv-U
  5. Gradient Boosting Decision Tree学习
  6. 跨站脚本攻击之反射型XSS漏洞【转载】
  7. SQLServer中Case when的一个意外问题
  8. 大数据_Flink_数据处理_流式数据源测试---Flink工作笔记0010
  9. 大数据之-Hadoop本地模式_执行Grep官方案例---大数据之hadoop工作笔记0021
  10. Netty工作笔记0010---Channel应用案例1