首页
学习
活动
专区
圈层
工具
发布

JAVASE面试题:自增变量

JavaSE面试题:自增变量来源:www.runwsh.com/archives/zi…代码 public static void main(String[] args) { int i=...然后,它将 i 自增1,这就使得变量i=2了,但右边的操作数栈不是没有后续的逻辑运算了,就会将之前压到操作数栈的1赋值给i。所以,i 的值又变为了1。...(i=1;) 如果是`i=++i`呢,就是入栈的时候就会将自增后的变量i压入栈中,变量i2,使得出栈的时候也是为2了。...3. int j = i++;:将 i 的当前值1赋给 j,然后将 i 自增1。所以,j 的值是1,而 i 的值变为2。...首先看右边的表达式,操作数栈会先将i变量入栈;也就是2先入栈,这个时候往右走i,是将i自增后的数压入栈中,也就是3,然后再看下一个操作数是i;记住一点的就是,++i压入栈中是将i自增后压入栈中;i++是将

42330

字节面试:MySQL自增ID用完会怎样?

在一些中小型项目开发中,我们通常会使用自增 ID 来作为主键的生成策略,但随着时间的推移,数据库的信息也会越来越多,尤其是使用自增 ID 作为日志表的主键生成策略时,可能很快就会遇到 ID 被用完的情况...PS:当然,在分库分表的场景中,我们通常会使用雪花算法来替代自增 ID,但中小型项目开发中,使用自增 ID 的场景还是比较多的。...1.2 缺点分析自增 ID 的缺点如下: 在数据进行迁移或分库分表时,可能会出现问题,需要特殊处理。 如果数据量非常大,可能会达到自增 ID 的上限。...存在安全性问题,比如通过自增 ID 可能会推测出一些业务信息。例如,一个电商订单表使用自增 ID 作为主键,可能会被竞争对手通过订单号大致推测出业务量等信息。2.自增ID用完会怎样?...自增 ID 分为以下两种情况: 图片 一种是主键自增 ID 用完后的情况,另一种是 InnoDB 引擎中未设置主键时使用 row_id 用完后的场景,它们的情况是不一样的,所以我们分开来聊。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    高并下如何做变量的自增与自减

    1变量的自增与自减 变量的自增自减相信大家都会,一般情况下直接++或--就可以了。但是实际情况我们可能需要考虑并发问题,多线程情况下,如果我们直接计算。计算结果可能就会不准确。...3原子自增与自减 我们来看看java.util.concurrent.atomic包下面的原子类AtomicInteger。...4分布式系统中的自增与自减 我们来看这样一个需求: 用户注册就会给用户分配一个编号,编号规则按用户先后注册顺序递增,比如第一位注册的用户编号为100,第二位就为101,依次类推。...但是实际上我们的系统可能有多个实列,上面的LongAdder只是JVM级别的,在自己的实列中获取可以实现安全的自增。...Java有个Redis的API RedissonClient可以用来实现原子自增与自减。

    1.2K10

    从闭包函数的变量自增的角度 – 解析js垃圾回收机制

    ,没有被回收,所以,每次自增1。...返回的匿名函数却被执行了5次 a() // 而times返回的匿名函数却被执行了5次 ) // 0,1,2,3复制代码 深入写下去之前,先放出类似的代码 同样的执行,我把函数执行时间放到了前面,自增失败...此处 times, // 此处没有函数被执行 times, // 因此打印值为四个零 times ); // 0,0,0,0复制代码 同样的执行,我把闭包函数执行时间放到了后面,同样自增失败...,产生times变量,返回的函数再执行一次 times()() ); // 0,0,0,0复制代码 函数[1,2,3,4,4].entires()会返回一个迭代器,一下代码同样实现了类似自增1的效果...// 2.返回函数引用外部变量,导致外部变量无法触发垃圾回收机制。

    1.4K10

    数据库自增ID用完了会怎样

    我在工作中经常会遇到有人问我,数据库表的ID是自增的,那么如果ID用完了会怎么样?...说实话,我一直从事的是政企行业的开发,因为是传统行业,并且数据量基本上增长缓慢,所以到目前为止我还没遇到过自增ID用完的情况。因此我连夜做了实验,并编写了这篇文章将结果分享出来。...(全文以MySQL为例,因为MySQL最常用) 一、有主键 在MySQL中int类型占4个字符,因为自增ID大部分都是以1开始,所以它的取值范围为1到2^32-1,也就是1到4294967295。...首先我们创建一张表,并设置ID自增,且从2147483647开始。...从这里得知,在有主键且主键自增的情况下,ID达到上限后MySQL会报错。

    1.1K10

    mysql主键自增策略_MySQL 自增主键机制

    自增主键:特指在自增列上定义的主键。 自增主键的优点是让主键索引保持递增顺序的插入,避免页分裂,索引更加紧凑。 1. 自增值保存在哪? 不同的存储引擎保存自增值的策略不一样; a....自增锁的优化 a. 自增锁不是事务锁,在每次申请完就释放;在5.0版本会在语句执行完才释放,后续版本无须在语句执行完才释放;支持批量申请; b....而对于批量插入数据的语句(select … insert,replace … select 和 load data 语句),MySQL 有一个批量申请自增 id 的策略(注:该策略是导致自增 id 不连续的第三种原因...:语句执行过程中,第一次申请自增 id,会分配 1 个;1 个用完以后,这个语句第二次申请自增 id,会分配 2 个;2 个用完以后,还是这个语句,第三次申请自增 id,会分配 4 个;依此类推,同一个语句去申请自增...id,每次申请到的自增 id 个数都是上一次的两倍。

    13.6K50

    Java的中间缓存变量机制与自增操作符

    在java中,执行自增、自减运算时,系统会为每个自增操作分配一个临时变量。如果是前缀(++i),就会【先自加1再赋值给临时变量】;如果是后缀(i++),就会【先赋值给临时变量再自加1】。...: 0 第二题中 i=0; sum1 = (i++) +(i++); 和题一相同,i先赋值给临时变量temp,然后i自增为1,此时第二个自增中i已经为1了,注意!...还是先赋值给临时变量2 temp2,然后自增; 最后sum1 等于 temp + temp2 ,结果为 1 。...i = 0; sum2 = (++i) + (++i); 第一个 ++i 先自增为1,并赋值给临时变量temp,此时i为1, 第二个 ++ i 自增为2,赋值给临时变量2 temp2 所以sum2 等于...      左    lvalue++             --       后缀自减      左    lvalue--    2        ++       前缀自增

    77820

    面试官:数据库自增 ID 用完了会咋样?

    他问了我一个有意(keng)思(b)问题: 数据库中的自增 ID 用完了该怎么办? 这个问题其实可以分为有主键 & 无主键两种情况回答。 国际惯例,先上张脑图: ?...02 有主键 如果你的表有主键,并且把主键设置为自增。 在 MySQL 中,一般会把主键设置成 int 型。...这种情况的数据库自增 ID 用完会发生什么呢?...04 总结 数据库自增主键用完后分两种情况: 有主键,报主键冲突 无主键,InnDB 会自动生成一个全局的 row_id。它到达最大值后会从 0 开始算,遇到 row_id 一样时,新数据覆盖旧数据。...这时,面试官可能会问你分库分表咋处理,如果你不会就不要主动提了,点到即止。

    76931
    领券