JAVA中运算的扩展知识点

简介: JAVA中运算的扩展知识点

+=符号的扩展


public static void main(String[] args){
  short s = 1;
  s+=1;
  System.out.println(s);
}


分析: s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能将取值范围

大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符只运算一次,并带有强制转换的特点,

也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.


public static void main(String[] args){
  short s = 1;
  s=s+1;
  System.out.println(s);
}

这个则编译通过不了


常量和变量的运算


public static void main(String[] args){
  byte b1=1;
  byte b2=2;
  byte b3=1 + 2;
  byte b4=b1 + b2;
  System.out.println(b3);
  System.out.println(b4);
}


分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。

反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。


新创建一个公众号 Rockey小何同学 想相互交流的同学可以关注一下哈! 感谢支持!

相关文章
|
19天前
|
JavaScript Java 编译器
Java包装类和泛型的知识点详解
Java包装类和泛型的知识点的深度理解
|
29天前
|
安全 Java 测试技术
Java必懂知识点重入锁 synchronized以及应用场景
Java必懂知识点重入锁 synchronized以及应用场景
49 1
|
3天前
|
设计模式 Java API
Java 可扩展 API 设计:打造灵活的应用架构
【4月更文挑战第27天】设计可扩展的 API 是构建灵活、易于维护的应用程序架构的关键。Java 提供了丰富的工具和技术来实现这一目标,使开发者能够构建具有高度可扩展性的应用程序。
20 4
|
1天前
|
存储 Java 数据安全/隐私保护
【Java探索之旅】运算符解密 位运算,移位运算
【Java探索之旅】运算符解密 位运算,移位运算
9 0
|
7天前
|
设计模式 JavaScript Java
[设计模式Java实现附plantuml源码~结构型] 扩展系统功能——装饰模式
[设计模式Java实现附plantuml源码~结构型] 扩展系统功能——装饰模式
|
7天前
|
负载均衡 Java 数据库连接
Java从入门到精通:4.2.2学习新技术与框架——不断扩展自己的知识面,跟上技术的发展趋势
Java从入门到精通:4.2.2学习新技术与框架——不断扩展自己的知识面,跟上技术的发展趋势
|
13天前
|
设计模式 SQL Java
java基础知识点(初级二)
java基础知识点(初级二)
|
13天前
|
存储 Java 容器
java基础知识点(初级)
java基础知识点(初级)
|
25天前
|
Java
java线程知识点总结
Java线程核心概念:线程是程序执行流,一个进程可有多个线程。创建线程通过继承Thread或实现Runnable接口。线程状态包括新建、就绪、运行、阻塞、等待、超时等待和终止。同步用synchronized或Lock防止数据不一致,避免死锁。线程间通过共享变量、wait/notify通信。线程池(如ThreadPoolExecutor、ScheduledThreadPoolExecutor)优化性能和资源管理。
17 6
|
25天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
19 3