首页 > 其他分享 >作用域

作用域

时间:2023-06-07 16:04:44浏览次数:26  
标签:变量 作用域 int 实例 static Integer Math

12、静态变量和实例变量的区别?

在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。

在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

例如,对于下面的程序,无论创建多少个实例对象,永远都只分配了一个staticVar变量,并且每创建一个实例对象,这个staticVar就会加1;但是,每创建一个实例对象,就会分配一个instanceVar,即可能分配多个instanceVar,并且每个instanceVar的值都只自加了1次。

public class VariantTest{

        public static int staticVar = 0;

        public int instanceVar = 0;

        public VariantTest(){

                staticVar++;

                instanceVar++;

                System.out.println(“staticVar=” + staticVar + ”,instanceVar=” + instanceVar);

        }

}

备注:这个解答除了说清楚两者的区别外,最后还用一个具体的应用例子来说明两者的差异,体现了自己有很好的解说问题和设计案例的能力,思维敏捷,超过一般程序员,有写作能力!

13、是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。也就是说,当一个static方法被调用时,可能还没有创建任何实例对象,如果从一个static方法中发出对非static方法的调用,那个非static方法是关联到哪个对象上的呢?这个逻辑无法成立,所以,一个static方法内部发出对非static方法的调用。

14、Integer与int的区别

int是java提供的8种原始数据类型之一。Java为每个原始类型提供了封装类,Integer是java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,例如,要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。在JSP开发中,Integer的默认为null,所以用el表达式在文本框中显示时,值为空白字符串,而int默认的默认值为0,所以用el表达式在文本框中显示时,结果为0,所以,int不适合作为web层的表单数据的类型。

在Hibernate中,如果将OID定义为Integer类型,那么Hibernate就可以根据其值是否为null而判断一个对象是否是临时的,如果将OID定义为了int类型,还需要在hbm映射文件中设置其unsaved-value属性为0。

另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。

15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的结果是-11;floor的英文意义是地板,该方法就表示向下取整,Math.ceil(11.6)的结果为11,Math.ceil(-11.6)的结果是-12;最难掌握的是round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11。

16、下面的代码有什么不妥之处?

1. if(username.equals(“zxx”){}

    2.  int  x = 1;

          return x==1?true:false;

标签:变量,作用域,int,实例,static,Integer,Math
From: https://www.cnblogs.com/Wumm/p/17463529.html

相关文章

  • python的名称空间和作用域
    1、  2、内置名称空间:Python解释器启动则产生,关闭即销毁 全局名称空间:存放的名字:运行顶级代码产生的名字,或者说不是函数的定义,也不是内置的,剩下的都是。存活的周期:Python文件执行则产生,Python文件运行完毕后销毁 局部名称空间:存放的名字:再调用函数时,运行函数体代......
  • python作用域
    1变量作用域变量(所有在内存中的数据)作用域:LEGBL:Local本地作用域(局部作用域),函数内部E:Enclosed闭包作用于,两个函数之间的,G:Gobal全局作用域(这个文件)B:Builtln内置作用域(全局通用)(pprint(builtins))内置:在任何地方,都可以直接使用全局:在本文件的任何地方,可以直接使用访问顺序:当我......
  • Bean的作用域
    1. singleton  371.1 默认情况下,Spring的IoC容器创建的Bean对象是单例的嘛37来测试一下:packagecom.powernode.spring6.bean;//Bean的作用域37publicclassSpringBean{}Bean的作用域37--><beanid="sb"class="com.powernode.spring6.bean.SpringBean">b......
  • 【三】和作用域相关(2)
    【三】和作用域相关(2)locals()返回当前作用域中的名字globals()返回全局作用域中的名字deffunc():a=10print(locals())#当前作用域中的内容print(globals())#全局作用域中的内容print("今天内容很多")func()#{'a':10}#{'__name__':'_......
  • 简述Python的作用域以及Python搜索变量的顺序
    Python作用域简单说就是一个变量的命名空间。代码中变量被赋值的位置,就决定了哪些范围的对象可以访问这个变量,这个范围就是变量的作用域。在Python中,只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域。Python的变量名解析机制也称为LEGB法则:本地作用域(Local)→当前作......
  • Python之作用域
    作用域、函数对象和闭包作用域1、全局作用域内置名称空间+全局名称空间全局存货全局有效2、局部作用域局部名称空间局部存活局部有效3、global关键字作用: 声明全局变量###########################global"""在函数的内部不能直接修改外部的变量......
  • java中属性和局部变量的作用域
    1.类中的属性和局部变量可以重名,访问时遵循就近原则2.在同一个作用域中({}大括号括起来的),如在一个成员方法中,两个局部变量不能重名3.属性的生命周期长,随着对象的创建而创建,随着对象的销毁而销毁;局部变量的生命周期短,随着它所属的代码块执行而创建,随着代码快的结束而销毁。......
  • Pytest - Fixture(8) - 作用域依赖关系
    Pytest-作用域依赖关系添加了@pytest.fixture,如果fixture还想依赖其他fixture,需要用函数传参的方式:当一个函数请求另一个函数时,首先执行另一个函数。如果函数b请求函数a,函数a将首先执行,因为b依赖于a,没有a就无法运行。即使b不需要a的结果,它仍然可以......
  • Pytest - Fixture(7) - 作用域执行顺序
    Pytest-作用域执行顺序如果有多个、不同作用域的需要执行,要弄清楚它们将执行的顺序;pytest首先执行范围更高的fixtrue;在请求fixture函数中,先执行较高作用域范围的fixture(session,package,module);再执行在较低作用域的fixture(class,function);test_py.pyimportpyte......
  • Pytest - Fixture(6) - 作用域混用/执行顺序/依赖关系
    Pytest-Fixture作用域混用若测试用例调用多个不同级别的作用域,都会同时生效:conftest.pyimportpytest"""会话级别fixture,作用域当前目录"""@pytest.fixture(scope="session")deflogin_session():"""作用于整个py文件"""pr......