Java与C++

优点:
(1)跨平台(大部分平台上都有Java虚拟机),许多平台(计算机+操作系统)上都有各自的Java虚拟机(java VM),Java虚拟机不跨平台,要分别编写。编译生成的中间代码,由统一的Java虚拟机指令组成。
(2)代码可移动(与HTML相结合)。
(3)完全面向对象。
(4)编出来的程序不易出错(没有指针,内存垃圾自动回收,不会产生内存泄漏)。

Java与C++的区别:
(1)完全面向对象:无全局变量、无结构和联合、自动回收内存垃圾。
结构体:
C++:
struct student
{
 char name[9];
 char sex[2];
 short age;
}stud1,stud2;
struct student stud={"...","..",18};
stud1.name="...";
....

Java:
class Student
{
 private String name;
 private String sex;
 private short age;
 public void setName(String name){
  this.name=name;
 }
 public String getName(){
  return name;
 }
 ......
}
共用体(联合体):
union data
{
 char ch;
 short n;
 int m;
}value;
(类似于CS和js中的var,以及Java中的Object的作用)


(2)没有指针。(对象的引用)
C++:
int i=40;
int *p=&i;
*p==40;
p==&i;
既然Java中没有指针,是不是在C++中用指针处理的问题在Java中就处理不了了呢?

当然不是
在C++中数组实质就是指针的一个应用,将指针隐藏于数组的内部的一个应用,只不过它的地址是连续变化的
而在Java中对指针的处理中,提供了一很多就类似于数组的处理方式的集合类来处理此类问题。
(3)没有多继承。(接口interface)
C++:class A:[public,private] B,[...] C,...
Java: class A extends B implements B,C,...
(4)解释执行。

语法:
1.Java中有而C++中没有:byte(8bit)
2.布尔类型:C++中bool, Java中boolean
3.常量:C++用const, Java用final
4.输出函数:C++用cout/printf,Java用System.out.println


 

原文地址:https://www.cnblogs.com/mingforyou/p/2281037.html