「java没有struct」java没有生成class文件

博主:adminadmin 2023-01-21 02:45:09 340

本篇文章给大家谈谈java没有struct,以及java没有生成class文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

在Java中有没有类似C中struct形式的存在?

写一个类就可以了。

你可以把Java的类理解成C里面的结构体再加上带一个this参数的方法指针。

其实Java的类就是那么回事。在内存里走的就是struct+带this的方法指针.

java里面有没有结构体

{

    //1

    //2

    //3

    if(b) berak;//如果b为true那么,代码4就不会被执行,进而继续执行代码5

    //4

}

//5

java和c++的区别

1. 变量和类型

1.1 Java没有无符号整数。(无符号右移在Java中强制用三个右尖括号表示)。

1.2 Java有内置类型String,而C++没有。C++的std::string是可变的,类似于Java的StringBuffer。

1.3 C++的整型随机器的位数而变化,但是Java不会。(C++的int在16位机器上16位,32位级以上为32位。long在32位及以下为32位,64位机器上为64位。)

1.4 Java字符串在内存中以Unicode存储,C++与源码的编码相同。

1.5 Java中不存在指针。Java的引用是功能弱化的指针,只能做“调用所指对象的方法”的操作。

1.6 Java的Stream对象(除了PrintStream)功能较单一,只能按字节读写,需要Reader或者Writer的辅助。C++的任何流都可以按字节、字符串、整形的方式读或者写。

1.7 Java是少数几种不能用双等号比较字符串的语言。

1.8 Java的泛型参数不允许是基元类型。(坑)

1.9 Java强制局部变量初始化。

2. 类机制

2.1 Java是完全面向对象的,所有方法都必须写在类中。

2.2 Java强制异常规约。

2.3 Java单根继承,所有对象都继承自Object。并且提供接口机制。

2.4 Java在覆盖时默认为虚函数。

2.5 Java没有默认参数。

2.6 Java中没有运算符重载,和转换函数。

2.7 Java无引用传值。(标准库中一般用Boxing代替。)

2.8 Java没有Struct或者Union。

2.9 Java可以委托构造,而C++14才加入这个特性。

2.10 Java的对象(包括数组)存放于堆上,用new实例化。C++可以选择存放于栈上或者堆上。

2.11 Java可以定义abstract类和final类,即必须被继承,或者无法被继承。C++直到C++1?才支持这个特性。

2.12 Java强制一个文件中只能有一个public的类/接口,并且文件路径强制为它的包名和类名。

3. 其它语言特性

3.1 Java没有delete运算符,由于有gc托管,无需delete。

3.2 Java没有typedef,以及任何和它作用相同的语法。

3.3 Java没有宏。(另一方面这也是种好处,宏是另一个万恶之源)。

3.4 Java使用点运算符做C++用::运算符的事情。而Java的::运算符可以将一个静态函数或者带着对象的动态函数变成一个闭包(Java8)。

3.5 Java的lambda表达式在Java8中被引入,C++是从C++11。

3.6 C++11中引入了range循环,Java是从Java5。

3.7 C++在查找名字时只查找当前代码文件中那行以上的部分。而Java的查找范围是整个项目。(这就是为什么C++需要include而Java不用。)

3.8 Java的标准库比较丰富(尤其是带GUI)。C++如果要实现相同的功能,除了第三方库之外,可以调用系统的api。

3.9 Java在8之前,switch不支持字符串。C++从11起支持短字符串的Switch(长度4字节之内,会映射成int来判断)。

3.10 由于Java是半编译半解释的,运行速度略慢。jvm启动速度不是一般的慢。

java没有struct的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java没有生成class文件、java没有struct的信息别忘了在本站进行查找喔。