草庐IT

VARIABLES

全部标签

ios - Swift 变量初始化

我对swift中的变量初始化有疑问。我有两种方法来初始化变量(作为Objective-C中类的“属性”)。哪一个是最正确的?classClass{varlabel:UILabel!init(){...label=UILabel()...}}或classClass{varlabel=UILabel()init(){…}} 最佳答案 实际上,您有5种方法来初始化属性。没有正确的方法,根据需要选择。基本上总是将像UILabel这样的对象声明为常量(let)。5种方式是:在声明行中初始化letlabel=UILabel(frame:...在

variables - 计数器作为for-in-loops中的变量

当通常使用for-in-loop时,计数器(在本例中为number)在每次迭代中都是一个常量:fornumberin1...10{//dosomething}这意味着我无法在循环中更改number:fornumberin1...10{ifnumber==5{++number}}//doesn'tcompile,sincetheprefixoperator'++'can'tbeperformedontheconstant'number'有没有办法将number声明为变量,而不用在循环之前声明它,或者使用普通的for循环(带初始化、条件和增量)? 最佳答案

java - 如何理解 "The variable does not participate in invariants with other state variables when using volatile keyword"?

摘自《Java并发实践》第26页:仅当满足以下所有条件时,您才能使用volatile变量:对变量的写入不取决于其当前值,或者您可以确保只有一个线程永远更新该值;该变量不参与与其他状态变量的不变量;和在访问变量时,不需要出于任何其他原因进行锁定。如何理解“使用volatile关键字时变量不与其他状态变量参与不变量”? 最佳答案 “不变”的简单定义:在对象的生命周期内始终为真的条件。Volatilevariablesdonotsharetheatomicityfeaturesofsynchronizedblocks.这就是为什么您不能在

java - 在 Java 中使用静态变量和方法的好处

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。在Java中使用静态变量和方法有哪些好处?

java - 覆盖接口(interface)的变量?

正如我从各种Java书籍和教程中读到的,在接口(interface)中声明的变量是常量,不能被覆盖。我写了一个简单的代码来测试一下interfaceA_INTERFACE{intvar=100;}classA_CLASSimplementsA_INTERFACE{intvar=99;//testvoidprintx(){System.out.println("var="+var);}}classhello{publicstaticvoidmain(String[]args){newA_CLASS().printx();}}然后打印出来变量=99var是否被覆盖?我完全糊涂了。感谢您的任

java - 实例变量声明的放置

我看到一些开发人员将实例变量声明放在类的末尾,但我大多看到它们放在顶部。我能想到的这样做的唯一原因是风格偏好,或者可能以某种方式使它们更容易在IDE中使用。选择这种风格是否有更合理的理由? 最佳答案 因为“编程为‘接口(interface)’,而不是‘实现’。”(GangofFour1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜欢在类的底部声明实例变量。该理论认为类的用户更感兴趣的是他们可以用类(方法)做什么

java - Lambda 表达式和变量捕获

请向我解释lambda表达式如何使用和修改其封闭类的实例变量,但只能使用其封闭范围的局部变量。(除非是final还是effectivefinal?)我的基本问题是,在范围的上下文中,类的实例变量如何从lambda中修改,而局部变量则不能。 最佳答案 首先,我们可以看一下JLS,其中说明如下:Anylocalvariable,formalparameter,orexceptionparameterusedbutnotdeclaredinalambdaexpressionmusteitherbedeclaredfinalorbeeffe

java - 为什么传递给 runnable 的变量需要是最终的?

如果我有一个变量intx=1,比如说,我在主线程中声明了一个runnable,并且我想将x传递给runnable的run()方法,它必须声明为final。为什么?finalintx=0;// 最佳答案 因为语言规范就是这么说的。AccordingtoGuySteele,此选择背后的基本原理是程序员希望方法中的声明intx=0导致堆栈分配存储,但如果您可以返回newmyRun()从方法(或以其他方式让myRun持续超过函数的返回)并且你可以在之后修改它,然后x必须堆分配而不是让您期望的语义。他们本可以这样做,事实上其他语言也这样做了。

Java 本地 vs 实例变量访问速度

所以我的问题是关于Java中的可变访问速度。今天在我的“CS”(如果你可以这样调用它)中,老师给出了一个与以下列表类似的例子:publicclassListExample{privateNodehead;privateNodetail;privateclassNode{/*...*/}publicvoidappend(Tcontent){if(!isEmpty()){Nodedummy=newNode(content);head=dummy;tail=dummy;head.setNext(head);//orthisdummy.setNext(dummy);}else{/*...*/}

java - 公共(public)静态变量和私有(private)静态变量之间的区别

classEmployee{//salaryvariableisaprivatestaticvariableprivatestaticdoublesalary;//DEPARTMENTisaconstantpublicstaticfinalStringDEPARTMENT="Development";publicstaticvoidmain(Stringargs[]){salary=1000;System.out.println(DEPARTMENT+"averagesalary:"+salary);}}这个java程序包含一个静态变量。但是我无法理解公共(public)静态变量和私有