为了账号安全,请及时绑定邮箱和手机立即绑定

Java:定义术语初始化、声明和分配

Java:定义术语初始化、声明和分配

天涯尽头无女友 2019-07-27 15:15:47
Java:定义术语初始化、声明和分配我发现,主语是由动词来定义的,但动词是没有定义的!那么你是如何定义它们的呢?循环定义初始化:若要初始化变量,请执行以下操作。这可以在申报时进行。任务:若要为变量赋值,请执行以下操作。它可以在任何地方完成,只有一次使用最终标识符。声明:若要将值声明为变量,请执行以下操作。[更新,试图理解lambda calc的主题]D(x type) = (λx.x is declared with type) A(y D(x type)) = (λy.y is assigned to D(x type)) %Then after some beta reductions we get initialization.D(x type) me human                   // "me" declared with type "human"A(y (D(x type) me human)) asking      // "asking" assigned to the last declaration%if the last two statemets are valid, an initialization exists. Right?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

赋值*丢弃变量的旧值,代之以新值

初始化这是一种特殊的任务:第一种。在初始化对象具有null值和基元类型具有默认值,如0false..可以与声明一起完成。

声明声明说明变量的类型及其名称。变量只能声明一次。编译器使用它来帮助程序员避免错误,例如将字符串值赋值给整数变量。在读取或赋值变量之前,必须声明该变量。



查看完整回答
反对 回复 2019-07-29
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

String declaration;String initialization = "initialization";declaration = "initialization"; //late initialization - will initialize the variable.
    // Without this, for example, in java, you will get a compile-time error if you try 
    // to use this variable.declaration = "assignment"; // Normal assignment. 
    // Can be done any number of times for a non-final variable




查看完整回答
反对 回复 2019-07-29
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

声明不是将“值”声明为变量,而是声明类型变量。


赋值只是将一个值存储到一个变量。


初始化是将值赋值给变量。在申报时.


这些定义也适用于字段。


int i;  // simple declaration

i = 42  // simple assignment


int[] arr = { 1, 2, 3 };

// declaration with initialization, allows special shorthand syntax for arrays


arr = { 4, 5, 6 }; // doesn't compile, special initializer syntax invalid here

arr = new int[] { 4, 5, 6 }; // simple assignment, compiles fine

但是,应该指出,“初始化”对于“变量的第一次赋值”也有一个更为宽松的定义,无论它发生在何处。


int i; // local variable declaration

if (something) i = 42;

System.out.println(i);

  // compile time error: The local variable i may not have been initialized

然而,这汇编了:


int i; // the following also compiles if i were declared final

if (something) i = 42;

else i = 666;

System.out.println(i);

这里i可以通过简单的赋值从两个可能的位置“初始化”。因为这个,如果i是一个数组,您不能对此构造使用特殊的数组初始化器简写语法。


因此,基本上“初始化”有两个可能的定义,取决于上下文:


在最狭窄的形式下,这是一个任务与声明相结合的时候。

它允许,除其他外,特殊的数组速记初始化器语法。

更普遍的情况是,当第一次给变量赋值时。

它允许,除其他外,分配给final变量在多个地方。

编译器将尽最大努力确保这些分配中的一项能够发生,从而“初始化”final变量

还有JVM上下文类和实例初始化,OOP上下文对象初始化等。




查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 377 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信