zoukankan      html  css  js  c++  java
  • java与C++不同之处(java不支持特性)

    java 不支持默认参数。(避免与重载混淆。)

    java 类没有析构函数。delete不是关键字。(垃圾自动回收机制)

    java 不支持操作符重载。所以对象比较只能老老实实实现comparable接口,然后用compareTo去比较了。想要用<去比较java对象是不可能的。

    java 局部变量(方法内变量)不支持static。

    java 不支持泛型数组。原因是擦除。

    java 泛型用擦除实现,不支持调用泛型类型方法。

    java 类不支持多重继承。接口可以。

    java 不支持引用符号(&),虽然它对象是按引用传递,但也只是如此而已。普通类型不可声明为引用。(引用可以用数组来模拟)

    java 不支持指针。

    java String不是以''结束。C是,C++ char *[]表示的字符串也是,但C++ std::string不是以''结束。事实上,String封装了length, 就没有必要再以''这种实际中容易引起混淆的标志结尾了。

    java 不支持方法默认参数,想要模拟C++默认参数效果,可用方法overloading实现。

    java boolean不可转化为其它基本数据类型。其他类型也不能转化为boolean。强制转型也不行。这其实是好事。因为这意味着在if,while等判断式中,除了boolean,其它基本类型都会出错。也规避了==和=引起的错误。

    java char默认2字节。C++是1字节。这对处理中文有极大好处。虽然保存UTF-8还是不够......

    java 没有sizeof()操作符。因为不需要。所有基本类型都是平台统一。当然boolean除外。

    java 没有unsigned int等类型。想声明无符号整数,是不可能的。不过也不是很必要,毕竟现在内存大了,少一个bit也没什么。

    java 中ArrayList<Long> arraylist = new ArrayList<Long>(10),会分配空间,但size不变,所以调用arraylist.set(1,0)会越界.....C++不会。但提前分配空间是有意义的,只是set会检查size,所以悲剧发生了.....

    而这些C++都支持。

    待续。

  • 相关阅读:
    关于gulp的压缩js和css
    关于vant的定制主题问题
    关于jquery-Validate
    关于bootstrap-table插件的问题
    Windows下sass无法编译
    Hibernate基础知识整理(三)
    Hibernate基础知识整理(二)
    Hibernate基础知识整理(一)
    学习Hibernate之Eclipse安装hibernate tools插件
    JDBC连接池的cvalidationQuery设置 (参考)
  • 原文地址:https://www.cnblogs.com/zqiguoshang/p/6410368.html
Copyright © 2011-2022 走看看