重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
自增(++)和自减(--)运算符
站在用户的角度思考问题,与客户深入沟通,找到西丰网站设计与西丰网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、网页空间、企业邮箱。业务覆盖西丰地区。
在JAVA语言中存在着很多运算符,但是在实际开发中我们或许很少用到它们,在初次学习中却时常出现它们的身影,对于这些运算符的含义和用法,是否还记得呢?下面让我们来看看下面几段Java代码:
int i = 0;
int j = i++;
int k = --i;
这段代码运行后,i等于多少?j等于多少?k等于多少?相信对于这段代码应该没有问题,因为很简单。结果为:i=0,j=0,k=0。那下面这段呢?
int i = 0;
int j = i++ + ++i;
int k = --i + i--;
代码执行后i、j、k分别等于多少呢?答案为i=0,j=2,k=2。不知道对这个结果有没有疑问呢?起初我第一眼扫过去的结果和真正的执行结果是不同的,也就是我判断错了。也许会问,怎么这么简单的问题都弄错呢?是的,有时稍微不注意真会出错。这看的就是我们对Java运算符优先级的认识。来,继续看下面这段代码:
int i=0;
System.out.println(i++);
这段代码运行后输出结果是什么?0?1?答案当然是i=0。这个是毋庸置疑的。接着看下面这段代码:
float f=0.1F;
f++;
double d=0.1D;
d++;
char c='a';
c++;
上面这段代码可以编译通过并执行吗?答案是肯定的。如果此时对上面说的都没有问题,那么就可以说明对自增自减运算符已经掌握的很好了。现在就让我们还回顾一下相关知识:
自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)。前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。
自增与自减运算符还遵循以下规律:
1. 可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
2. 在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
3. 它们的运算结果的类型与被运算的变量的类型相同。
int k = 0;
for (int i = 0; i 5; i++){
k += 10;
}
@Entity
public class Goods implements Serializable{
@Id
@GeneratedValue
private Integer id;
private Integer gooodsType;//品种
private String goodsName;//产品名称
private String imageMain;//主图
private ListString otherImage;//其他图片
}
该id就是自增的。
还有一种方式,就是要插入的时候,先查一下主键索引序列,然后++,在插入的时候,把id也插入进就可以了。
java项目实现流水号自动增长
项目中有一个规则编号字段,从1开始,编号长度为5位,那么第一条数据编号就是00001。
实现的基本思路就是项目启动时,从数据库获取当前最大值,作为静态变量存储;
业务获取新的编码,考虑并发问题,获取编码方法(编码自增部分)为synchronized同步方法,如果自增为原子操作,则无需同步;
编码前置0,使用String.format("%05d", newNum);格式化获取。
实现代码如下:
private final static AtomicInteger atomic = new AtomicInteger(0);
public static String startFormat(String format) {
return String.format(format, atomic.incrementAndGet());
}
因为x+z
这是个表达式,不是一个变量
++变量
:
意思是,
先把变量的值+1,然后进行其他操作.
注意这个时候变量的值已经变化了.
修改后的代码
public class Tr {
public static void main(String[] args) {
int x = 3;
int z = 1;
int temp = x+z;//定义一个变量temp
int y = ++temp;//对temp进行先自+1,然后赋值给y
System.out.println("y=" + y);
System.out.println("z=" + z);
}
}输出
y=5
z=1