精华内容
下载资源
问答
  • java中的初始是什么意思发布时间:2020-06-26 15:36:20来源:亿速云阅读:245作者:Leahjava中的初始是什么意思?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...

    java中的初始化是什么意思

    发布时间:2020-06-26 15:36:20

    来源:亿速云

    阅读:245

    作者:Leah

    java中的初始化是什么意思?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

    java什么是初始化?

    初始化就是给变量一个初始值。初始化的目的是为了让变量有值,防止使用时出现异常。

    例如:

    声明一个变量:String aa = "abc";

    int cc =0;

    其中abc和0就是初始化的值,最后值不一定是abc或者0

    假如你覆盖了aa的值如下:aa = "def" ;

    cc=1;

    那最后aa变量的值就是def,cc变量就是1了,初始化的目的是为了让变量有值,防止使用时出现异常。

    5fac2c3045c06778891be4ced9e4c5bd.png

    扩展资料:

    作用

    1、遇到new,getstatic,putstatic,或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化。生成这四条指令单最常见的Java代码场景是:

    使用new关键字实例化对象的时候,读取或设置一个类的静态字段(被final修饰,已在变异期把结果放入常量池的静态字段除外)的时候,以及调用一个类的静态方法的时候。

    2、使用java.lang.reflect包的方法对类进行反射调用的时候,如果类没有进行过初始化,则需要先出法其初始化。

    3、当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先出法其父类的初始化。

    4、当虚拟机启动时,用户需要指定一个要执行的主类(包含main()方法的那个类),虚拟机会先初始化这个主类。

    关于java中的初始化是什么意思问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

    展开全文
  • 《C++ Primer》第五版,中文版。...提供两个初始值是什么样的? when we use the copy initialization form (i.e., when we use =) (§ 3.2.1, p. 84), we can supply only a single initializer;
  • 这里先猜下控制台输出结果是什么?OK, 或许你已经猜到下面了结果了,那么你还是熟悉Java的。复制代码 代码如下:0 1如果你不明白是为什么会输出上面的结果,那么我来告诉你。Java静态变量初始化遵循以下规则:静态变量会...

    静态变量初始化顺序

    1.简单规则

    首先先看一段最普遍的JAVA代码:

    ?

    这里先猜下控制台输出结果是什么?

    OK, 或许你已经猜到下面了结果了,那么你还是熟悉Java的。

    复制代码 代码如下:

    0 1

    如果你不明白是为什么会输出上面的结果,那么我来告诉你。

    Java静态变量初始化遵循以下规则:

    静态变量会按照声明的顺序先依次声明并设置为该类型的默认值,但不赋值为初始化的值。

    声明完毕后,再按声明的顺序依次设置为初始化的值,如果没有初始化的值就跳过。

    看了这个就会明白,原来Test.a的值变化了三次。

    声明时设置为0>>Test1::Test1里设置为1>>Test.a初始化为0

    2.复杂规则

    明白了这个,请再看下面的代码。

    ?

    这个你还能猜到输出结果吗? 我是在一边测试一边写的,所以我没猜出来.哈哈

    控制台输出结果为:

    ?

    这个结果你没猜到吧,哈哈.

    要一句一句的讲解程序执行结果,还是要很到的篇幅的.这里就直接写出Java静态变量初始化遵循的规则了。

    第一段的规则依然有效,只是不健全。

    只有主动请求一个类,这个类才会初始化,仅包含静态变量,函数,等静态的东西.

    继承关系时,先初始化父类,后初始化子类.

    静态变量会按照声明的顺序先依次声明并设置为该类型的默认值,但不赋值为初始化的值.

    声明完毕后,再按声明的顺序依次设置为初始化的值,如果没有初始化的值就跳过.

    当初始化A.b=B.a时,暂停初始化A.b,设置当前类为B,跳到步骤3,并执行.

    当初始化B.plus = new A时,暂停初始化B.plus,实例化A并赋值给B.plus.

    当A的构造函数里需要获得B.a的值时,B.a还初始化并处于暂停初始化状态,直接取B.a的当前值,不再等待B.a初始化.

    final,静态常量其实是遵循普通静态变量的初始化的,但是在编译时,编译器会将不可变的常量值在使用的地方替换掉.可以用Java反编译工具查看.

    static数据的初始化

    加上static限定的字段,是所谓的类字段,也就是说这个字段的拥有者不是对象而是类。无论创建多少对象,static数据都只有一份。

    类内总是先初始化static字段,再初始化一般字段。接着初始化构造器。但是如果不创建这个类的对象,那这个对象是不会进行初始化的,并且只执行一次。

    如下面的代码,在StaticInitialization类中,先初始化static Table table = new Table();,然后才去初始化Table对象,不然是不会被初始化的。

    ?

    输出:

    ?

    显示的静态初始化(也就是静态块)

    把多个初始化语句包在一个static花括号里,叫做静态块,其实就是把多个static合在一起写了,本质是一样的。只有首次创建对象或者首次访问类的字段时才会执行,而且仅仅一次。

    ?

    输出:

    ?

    非静态实例初始化

    这个没什么好讲的,就是普通初始化,按顺序执行,可以多次执行。

    ?

    ?

    展开全文
  • 参考文章:python中inf这个玩意
    展开全文
  • HashMap的负载因子初始值什么是0.75?

    千次阅读 多人点赞 2020-03-09 23:13:58
    负载因子和扩容机制有关的,意思时如果当前容器的容量达到了我们设定的最大,就要开始执行扩容操作。举例说明下 比如说当前的容器容量16,负载因子0.75,16*0.75=12,也就是说,当容量达到了1...

    注:本片文章基于JDK1.8,特在此说明。

    一、首先介绍下负载因子的作用

    对于HashMap的研究,我之前一直停留在烤炉源码的实现,其实现在看来,系统默认的各种参数才是HashMap的精华所在。

    负载因子是和扩容机制有关的,意思时如果当前容器的容量达到了我们设定的最大值,就要开始执行扩容操作。举例说明下

    比如说当前的容器容量是16,负载因子是0.75,16*0.75=12,也就是说,当容量达到了12的时候就会进行扩容操作

    他的作用很简单,相当于是一个扩容机制的阈值。当超过了这个阈值,就会触发扩容机制。HashMap源码已经为我们默认指定了负载因子是0.75。

    public class HashMap<K,V> extends AbstractMap<K,V>
        implements Map<K,V>, Cloneable, Serializable {
        //略
        static final float DEFAULT_LOAD_FACTOR = 0.75f;
        //略
        public HashMap(int initialCapacity, float loadFactor) {
            if (initialCapacity < 0)
                throw new IllegalArgumentException("Illegal initial capacity: " +
                                                   initialCapacity);
            if (initialCapacity > MAXIMUM_CAPACITY)
                initialCapacity = MAXIMUM_CAPACITY;
            if (loadFactor <= 0 || Float.isNaN(loadFactor))
                throw new IllegalArgumentException("Illegal load factor: " +
                                                   loadFactor);
            this.loadFactor = loadFactor;
            this.threshold = tableSizeFor(initialCapacity);
        }
        //略
    }
    

    我截取了部分源码,从这里可以看出,系统默认的负载因子值就是0.75,而且我们还可以在构造方法中去指定。下面我们就正式来分析一下为什么是默认的0.75。

    二、原因解释
    我们在考虑HashMap的时候,首先要想到的是HashMap只是一个数据结构,既然是数据结构最主要的就是节省时间和空间。负载因子的作用肯定也是节省时间和空间。因为是什么呢?首先我们考虑下两种极端情况。

    1、负载因子是1.0
    首先看下HashMap的底层数据结构

    在这里插入图片描述
    我们的数据一开始是保存在数组里面的,当发生了Hash碰撞的时候,就是在这个数据节点上,生出一个链表,当链表长度达到一定长度的时候,就会把链表转化为红黑树。

    当负载因子是1.0的时候,也就意味着,只有当数组的8个值(这个图表示了8个)全部填充了,才会发生扩容。这就带来了很大的问题,因为Hash冲突时避免不了的。当负载因子是1.0的时候,意味着会出现大量的Hash的冲突,底层的红黑树变得异常复杂。对于查询效率极其不利。这种情况就是牺牲了时间来保证空间的利用率。

    因此一句话总结就是负载因子过大,虽然空间利用率上去了,但是时间效率降低了。

    2、负载因子是0.5
    负载因子是0.5的时候,这也就意味着,当数组中的元素达到了一半就开始扩容,既然填充的元素少了,Hash冲突也会减少,那么底层的链表长度或者是红黑树的高度就会降低。查询效率就会增加。

    但是,兄弟们,这时候空间利用率就会大大的降低,原本存储1M的数据,现在就意味着需要2M的空间。

    一句话总结就是负载因子太小,虽然时间效率提升了,但是空间利用率降低了。

    3、负载因子0.75
    经过前面的分析,基本上为什么是0.75的答案也就出来了,这是时间和空间的权衡。答案就在源码上,我们可以看看:

    /* <p>As a general rule, the default load factor (.75) offers a good
     * tradeoff between time and space costs.  Higher values decrease the
     * space overhead but increase the lookup cost (reflected in most of
     * the operations of the <tt>HashMap</tt> class, including
     * <tt>get</tt> and <tt>put</tt>).  The expected number of entries in
     * the map and its load factor should be taken into account when
     * setting its initial capacity, so as to minimize the number of
     * rehash operations.  If the initial capacity is greater than the
     * maximum number of entries divided by the load factor, no rehash
     * operations will ever occur.*/
    

    大致意思就是说负载因子是0.75的时候,空间利用率比较高,而且避免了相当多的Hash冲突,使得底层的链表或者是红黑树的高度比较低,提升了空间效率。

    展开全文
  • 这句话到底是什么意思?回想一下什么是变量,什么是。一个常见的比喻是变量类似于一个盒子。就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个。在声明变量时,我们需要设置它的类型。...
  • 展开全部一维数组初始化就是给一维数组赋初值,作用就是申明的这个一维数组有了一个e5a48de588b63231313335323631343130323136353331333365646231确定的,从而可以得到具体应用。一个数组申明后,如果没有赋值,...
  • 将对象的引用变量初始化为null 这句话是什么意思? 可以举个例子吗?
  • class Query_result; class Text_query { public: using line_no = vector<std::string>::size_type; Text_query(ifstream&); Query_result query(const string&) const;...}
  • for(;z<10;++z){} 这个是什么意思,z的初始值是????
  • 主库mysql 5.7,主库编码UTF8MB4,用canal-1.0.24这个版本,位点初始值为123,执行时间1506482123,canal配置了timestamp,没有配置位点,提示以下异常2017-09-29 14:20:32.614 [main] INFO c.a.otter.canal.instance...
  • 初始容量 倒是好理解,顾名思义,初始容量只是哈希表在创建时的容量,那么** 加载因子** 到底表示什么意思呢? 如果按术语来讲: 加载因子哈希表在其容量自动增加之前可以达到多满的一种尺度。如果当哈希表中的...
  • [Java教程]input框中的value值到底...对于不同的输入类型,value 属性的用法也不同:type="button", "reset", "submit" - 定义按钮上的显示的文本type="text", "password", "hidden" - 定义输入字段的初始值type="...
  • byte,short,int,long数组初始值是0 float,double数组初始值为0.0 boolean数组初始值为false char数组初始值为'\0',这个'\0'是什么意思,打印出来是空格吗
  • null什么意思[编辑]概述null不是特殊字符没有特别的意思,但一般程序在用到它都在开始声明它为空,所以它在程序中的含义为空。在面向对象的语言里,表示没有初始化既空对象C或c++里,大多指空指针不指向任何...
  • Null 这个词作为一个专业术语,表达的含义的、等于零的,在形容协议时表示无法律效力、失效的。NULL在计算中术语表示具有保留的,用于指示指针不引用有效对象。程序通常使用空指针来表示条件,例如未知...
  • STM32中HSEStatus是什么意思,RCC_APB2ENR|=(1);RCC_APB2ENR的初始值是什么
  • 这句话到底是什么意思?回想一下什么是变量,什么是。一个常见的比喻是变量类似于一个盒子。就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个。在声明变量时,我们需要设置它的类型。...
  • C++:如果变量不赋初始值……

    千次阅读 2019-07-08 16:58:53
    结果会随机的吗? 还是说和具体的机器有关系? 比如: #include <...转成二进制看看:101111,好像有那么一点意思10 1111默认初始值吗? 或许这一点值得探究一下? (尝试在其他机器,...
  • python中的等号“=”基本的赋值运算符,用来把“=”右边的数据赋值给左边。可以与算术运算符一起...b=3In[2]:c=a+b#Out[3]:5(下面所出现的c初始值为5)In[4]:c+=a#Out[5]:7In[6]:c-=a#Out[7]:3In[8]:c*=a#Out[9]:...
  • 初始值默认为零,也就是你如果不输入start那就代表从零开始。迭代器的输入可以列表,字符串,集合等,因为这些都课迭代的对象。返回一个对象,如果你用列表的形式表现出来的话那就是一个列表,列表的每个元素...
  • php for语句的用法是什么php for语句的用法:首先设置一些计数器变量的初始值;然后检查条件语句是正确的,再执行中间的代码循环;最后增量在每个迭代结束通过循环计数器。php for语句的用法:for循环只是一个多一点...
  • 这句话到底是什么意思?回想一下什么是变量,什么是。一个常见的比喻是变量类似于一个盒子。就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个。在声明变量时,我们需要设置它的类型。...
  • 设置一个为auto的引用,初始值中的顶层常量属性...第一句话意思是强调a 的顶层const属性一直都在,后面将b 绑定到 a上后,b没有a的这个常量属性,a的顶层常量属性还是都在滴。翻译确实有点难理解。 总结出来就是...
  • 初始值默认为零,也就是你如果不输入start那就代表从零开始。迭代器的输入可以列表,字符串,集合等,因为这些都课迭代的对象。返回一个对象,如果你用列表的形式表现出来的话那就是一个列表,列表的每个元素...
  • 吞吐量到底是什么意思啊,我们开始是实战的做调优了,首先吞吐量是什么意思呢,你们可以找到一个文档, 它会专门有一个测试报告,Average是平均响应的时间,响应时间是21秒,我们主要是看这个数字Throughout吞吐量 表示...
  • 这句话到底是什么意思?回想一下什么是变量,什么是。一个常见的比喻是变量类似于一个盒子。就像您可以使用一个框来存储某些东西一样,您也可以使用一个变量来存储一个。在声明变量时,我们需要设置它的类型。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 428
精华内容 171
关键字:

初始值是什么意思