为什么不是';在Java中不可能使用变量名吗?

为什么不是';在Java中不可能使用变量名吗?,java,pointers,Java,Pointers,例如,假设我想创建5个变量,如下所示: int a1 = 1; int a2 = 2; int a3 = 3; int a4 = 4; int a5 = 5; 为什么不能使用循环执行此操作: for(int i=0;i<5;i++) int "a"+i = i; // syntax is just an example for(int i=0;i在Java中使用动态变量命名是无法实现的,这在语法上是无效的。有更好的方法可以实现这一点,比如使用数组: int[] a = new

例如,假设我想创建5个变量,如下所示:

int a1 = 1;
int a2 = 2;
int a3 = 3;
int a4 = 4;
int a5 = 5;
为什么不能使用循环执行此操作:

for(int i=0;i<5;i++)
    int "a"+i = i; // syntax is just an example

for(int i=0;i在Java中使用动态变量命名是无法实现的,这在语法上是无效的。有更好的方法可以实现这一点,比如使用数组:

int[] a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;

for(int i=0; i<5 ;i++) {
   a[i] = i;    
}
int[]a=新的int[5];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;

对于(int i=0;i,在Java中使用动态变量命名是无法完成的,这在语法上是无效的。有更好的方法可以做到这一点,比如使用数组:

int[] a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;

for(int i=0; i<5 ;i++) {
   a[i] = i;    
}
int[]a=新的int[5];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;

对于(int i=0;i,在Java中使用动态变量命名是无法完成的,这在语法上是无效的。有更好的方法可以做到这一点,比如使用数组:

int[] a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;

for(int i=0; i<5 ;i++) {
   a[i] = i;    
}
int[]a=新的int[5];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;

对于(int i=0;i,在Java中使用动态变量命名是无法完成的,这在语法上是无效的。有更好的方法可以做到这一点,比如使用数组:

int[] a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;

for(int i=0; i<5 ;i++) {
   a[i] = i;    
}
int[]a=新的int[5];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;
对于(int i=0;i
还是因为它的实施会带来更多的问题而不是好处

是的,你的说法基本上是对的。局部变量在很大程度上是关于最高效率的,任何允许它们在运行时被反射地引用的机制都无法与实际系统的性能相匹配,在实际系统中,局部变量名仅用于“连接点”在机器代码级别,变量很可能是CPU寄存器或硬编码堆栈偏移量

能够引用局部变量也会引起概念上的问题:它会使局部变量成为第一类变量,因此可以从方法返回这样的引用。显然,从方法返回局部变量是一个定义不清的概念

还是因为它的实施会带来更多的问题而不是好处

是的,你的说法基本上是对的。局部变量在很大程度上是关于最高效率的,任何允许它们在运行时被反射地引用的机制都无法与实际系统的性能相匹配,在实际系统中,局部变量名仅用于“连接点”在机器代码级别,变量很可能是CPU寄存器或硬编码堆栈偏移量

能够引用局部变量也会引起概念上的问题:它会使局部变量成为第一类变量,因此可以从方法返回这样的引用。显然,从方法返回局部变量是一个定义不清的概念

还是因为它的实施会带来更多的问题而不是好处

是的,你的说法基本上是对的。局部变量在很大程度上是关于最高效率的,任何允许它们在运行时被反射地引用的机制都无法与实际系统的性能相匹配,在实际系统中,局部变量名仅用于“连接点”在机器代码级别,变量很可能是CPU寄存器或硬编码堆栈偏移量

能够引用局部变量也会引起概念上的问题:它会使局部变量成为第一类变量,因此可以从方法返回这样的引用。显然,从方法返回局部变量是一个定义不清的概念

还是因为它的实施会带来更多的问题而不是好处

是的,你的说法基本上是对的。局部变量在很大程度上是关于最高效率的,任何允许它们在运行时被反射地引用的机制都无法与实际系统的性能相匹配,在实际系统中,局部变量名仅用于“连接点”在机器代码级别,变量很可能是CPU寄存器或硬编码堆栈偏移量


能够引用局部变量也会导致概念上的问题:它会使局部变量成为一流的,因此可以从方法返回这样的引用。显然,从方法返回局部变量是一个定义不清的概念。

因为Java是强类型语言。

Java编程语言是一种强类型语言,这意味着每个变量和每个表达式都有一种在编译时已知的类型。强类型有助于在编译时检测错误


因为Java是强类型语言。

Java编程语言是一种强类型语言,这意味着每个变量和每个表达式都有一种在编译时已知的类型。强类型有助于在编译时检测错误


因为Java是强类型语言。

Java编程语言是一种强类型语言,这意味着每个变量和每个表达式都有一种在编译时已知的类型。强类型有助于在编译时检测错误


因为Java是强类型语言。

Java编程语言是一种强类型语言,这意味着每个变量和每个表达式都有一种在编译时已知的类型。强类型有助于在编译时检测错误


你想要达到的目标有点棘手

Map<String, Integer> arrayLikeMap = new HashMap<>();
for(int i = 1; i <= 5; i++) {
    arrayLikeMap.put("a"+i, i);
}
Map arrayLikeMap=newhashmap();

对于(inti=1;i来说,你想要实现的目标有点棘手

Map<String, Integer> arrayLikeMap = new HashMap<>();
for(int i = 1; i <= 5; i++) {
    arrayLikeMap.put("a"+i, i);
}
Map arrayLikeMap=newhashmap();

对于(inti=1;i来说,你想要实现的目标有点棘手

Map<String, Integer> arrayLikeMap = new HashMap<>();
for(int i = 1; i <= 5; i++) {
    arrayLikeMap.put("a"+i, i);
}
Map arrayLikeMap=newhashmap();

对于(inti=1;i来说,你想要实现的目标有点棘手

Map<String, Integer> arrayLikeMap = new HashMap<>();
for(int i = 1; i <= 5; i++) {
    arrayLikeMap.put("a"+i, i);
}
Map arrayLikeMap=newhashmap();
对于