数组定义的时候没有new(java类方法中数组为什么可以不用new初始化)

本文目录
- java类方法中数组为什么可以不用new初始化
- 为什么教材里说JAVA数组声明后必须用new分配内存,实际上不用new也可以
- 直接定义数组和用new定义数组区别是什么解决方法
- C++ 用new定义数组和直接定义数组
- 教材里说JAVA数组声明后必须用new分配内存,实际上不用new也可以,这是为什么呢用于不用有什么区别
- java中定义数组,类名[] 引用={} 后面没有new数组的个数,直接用了!引用[0]=n
- java中声明数组不用new,为什么数组依然在堆里面还有这样有什么坏处
- java 数组一定要new吗
java类方法中数组为什么可以不用new初始化
这是一种动态的创建,与new创建没有本质区别,动态创建就是不限定长度,用多少就创建多长,new 创建的话必须限定长度,即先在内存中空间。这是我认为的,供参考。
为什么教材里说JAVA数组声明后必须用new分配内存,实际上不用new也可以
加new是分配在内存堆中,不加是分配在栈中,栈的空间小,运行速度快,所以一般大数据量的数组都存放在堆中
int a={100,200,300};
这个是java中提供一种创建数组对象并同时赋予初始值的简化书写方式!
直接定义数组和用new定义数组区别是什么解决方法
按照thinking in java上的说法
int a={1,2,3}叫聚集初始化
int a {1, 2, 3}叫动态聚集初始化
具体区别看看下面代码:
- Java code
- import java.lang.reflect.*;
- public class Test78 {
- public static void main(String args) {
- int { 1, 2, 3 };
- a = new int { 4, 5, 6 }; //可以在任意地方创建和初始化数组对象
- print(new int { 7, 8, 9 }); //可以在任意地方创建和初始化数组对象
- int b = { 1, 2, 3 }; // 前一种形式的简写形式
- // b = { 4, 5, 6 }; 必须在定义时候使用
- }
- //打印数组的方法
- public static void print(Object o) {
- Class cl = o.getClass();
- if (!cl.isArray())
- return;
- Class componentType = cl.getComponentType();
- int length = Array.getLength(o);
- System.out.print(componentType.getName() + " = { ");
- for (int i = 0; i 《 length; i++) {
- System.out.print(Array.get(o, i));
- if (i != length - 1)
- System.out.print(",");
- System.out.print(" ");
- }
- System.out.println("}");
- }
- }
C++ 用new定义数组和直接定义数组
以m*n举例:第一种方法:int **a = new int*;
第二种方法:int* a = new int是第i行第j列元素。
以整型为例:const int M = 10, N = 5;//10行5列。int ** a;a = new int *;for(int i = 0; i 《 M; i ++)
C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。
扩展资料:
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。
每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
教材里说JAVA数组声明后必须用new分配内存,实际上不用new也可以,这是为什么呢用于不用有什么区别
new 一个对象出来,比如
SomeClass sc=new SomeClass();
这个时候已经为sc这个对象分配了指向 new SomeClass() 所创建的内存空间。
即对这个对象sc进行了实例化。
而SomeClass sc=null,则sc对象未进行实例化,是一个空的对象,未能指向任何内存空间。
(转)
java中定义数组,类名[] 引用={} 后面没有new数组的个数,直接用了!引用[0]=n
private String mTitle = { "name", "sex", "age", "address", "email" };
这样么?可以的,这样的数组长度就是数据个数
java中声明数组不用new,为什么数组依然在堆里面还有这样有什么坏处
你打印的是数组z的内存地址。
数组声明可以用new,比如 int; 声明一个有10个元素的数组,这是默认式
要想打印数组的元素,这样写
for(int i=0;i《array.length;i++)
{
System.out.println(array);
}
这是动态式
int a ;
a = new int ;
a = 0 ;
a = 1 ;
a = 2 ;
这是静态式
int a = {0,1,2} ;
没什么区别,看个人需要
java 数组一定要new吗
你的疑惑可能是来自 C++ 吧
在 C++ 中,可用以下语句使用数组:
int arr = {1, 2, 3}; // 临时数组,其数据位于栈中,函数返回后,就无效了
在 Java 中,则对应以下方式:
int arr = {1, 2, 3}; // 数组对象引用,其数据位于堆中,函数返回后,也不会立即失效
总结:
Java 中除了基本类型数据 (数值和单个字符) 外都使用对象,包括数组
Java 对象都有一个引用计数,记录其被引用的次数,为 0 时就可能会失效
Java 自带一个垃圾回收线程,每隔一段时间就会遍历所有对象,当对象引用计数为 0 时,就会释放其占用的内存,对象也就无效了
因此,Java 中方法是可以返回对象的引用的,外部也可以直接接收这引用

更多文章:
ajax提交form表单数据到servlet(HTML与Servlet的连接)
2025年12月7日 10:30
批量转换ascii(如何把txt 批量从utf8转换为ascii,最好有工具)
2025年11月18日 04:30
postgresql 创建用户(postgresql如何用新创建的用户登录呢)
2026年1月28日 16:30
工程师一个月能赚多少钱(造价工程师一般月收入是多少 需求量大吗)
2026年7月4日 11:00
delphi led扩展屏显示开发(用DELPHI模拟LED屏下的那种文字特效怎么做)
2025年12月17日 14:30
download是什么意思可以删除吗(Download什么意思,Download的文件夹能删了吗,)
2026年7月27日 03:15
trousers后面单复数(The+trousers用不用三单)
2026年5月7日 03:00
linux是自由软件吗(Linux是自由软件,什么是自由软件,它包含哪些含义)
2026年4月14日 08:15
springmvc答辩问题(我的毕业设计是JSP+mysql+Tomcat搭建的一个管理系统,答辩老师问我是怎么设计的,我应该)
2025年11月16日 05:00














