学习java 第二日

本文探讨了Java和C++中数组初始化的不同方式及内存管理的区别。在Java中可以直接初始化数组并返回,而在C++中则需要通过指针操作。文章通过具体代码示例展示了两种语言中数组初始化的方法,并讨论了它们在内存管理上的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在c++中毫无疑问和内存进行一个交互的过程

而在java中则是对象;

先说问题 java 之中 

int []text=new int[5];

for(int i=0;i<5;i++)

{

          text[i]=i+1;

}

和直接赋初值一样的

int []text={1,2,3,4,5};

但是在c++中

int *text=new int[5];

for(int i=0;i<5;i++)

{

          text[i]=i+1;

}

可以

但是直接赋初值变不行了

然后赋初值访问即

public class text {
    private int []text;

	public int[] getText() {
		return text;
	}

	public void setText() {
		int []text= new int[5];
		for(int i=0;i<5;i++)
		{
			text[i]=i+1;
		}
		this.text =text;
	}
    public void show()
    {
    	for(int i=0;i<5;i++)
    	{
    		System.out.println(text[i]);
    	}
    }
    public static void main(String[] args) {
		 text brr=new text();
		 brr.setText();
		 brr.show();
		}
}

这样的代码是可以打印出 1 2 3 4 5;同样c++也可以打印出1 2 3 4 5;

c++代码如下

#include <iostream>
using namespace std;
class text
{
public:
	void init()
	{
		int *brr = new int[5];
		for (int i = 0; i < 5; i++)
		{
			brr[i] = i + 1;
		}
		arr = brr;
	}
	void show() {
		for (int i = 0; i < 5; i++)
		{
			cout << arr[i];
		}
	};
private:
	int *arr;
};

int main()
{
	text a;
	a.init();
	a.show();
	return 0;
}

但是 如果直接赋初值便会报错

#include <iostream>
using namespace std;
class text
{
public:
	void init()
	{
		int brr[5] = { 1,2,3,4,5 };
		arr = brr;
	}
	void show() {
		for (int i = 0; i < 5; i++)
		{
			cout << arr[i];
		}
	};
private:
	int *arr;
};

int main()
{
	text a;
	a.init();
	a.show();
	return 0;
}

 打印出-858993460-858993460-858993460-858993460-858993460请按任意键继续. . .

总结java 之中没有内存的说法 都是对象经过我的调试发现每个对象的后面都会有一个id 判断相等是通过id; 

而在c++里面不是 是通过内存的地址 准确的来说是通过一个二进制;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值