在最底层,Java中的数据是通过使用操作符来操作的。
1.操作符用于操作数,接受一个或多个参数,并生成一个新值.
副作用:操作符可能会改变操作数自身的值.
能改变其操作数的操作符,最普遍的用途是用来产生副作用.
使用有副作用的操作符和没有副作用的操作符,生成的值没有什么区别.
2.优先级决定计算顺序.
3.赋值"=":将右边的值附给左边的变量.
别名现象:是Java操作对象的一种基本方式.(对象传递的是引用,出现不同的名字)
4.算术操作符"+", "-", "*", "/", "%"(向下取整)
一元加减号:编译器自动识别,规范加括号.(eg:x = a*(-b))
一元减号:改变数据的符号.
一元加号:与一元减号对应,将较小类型的操作数提升为int.
5.自增,自减"i++","++i","i--","--i"
除涉及赋值的操作符以外,唯一具有"副作用"的操作符.
前缀:先执行运算,在生成值.
后缀:先生成值,在执行运算.
6.关系操作符">", "<", ">=", "<=", "==", "!="
返回true/false
equals :默认比较引用,重写比较内容,不适合用于基本类型.
==:比较引用.
7.逻辑操作符"&&", "||", "!"
短路(潜在的性能提升).
8.直接常量"0x?"(十六进制),"0?"(十进制),"?l/L"(浮点型),"?d/D"(双精度型)
指数记数:e 代表 "10的幂次".
9.按位操作符"&", "|", "~", "^"
可与"="联合使用.
10.移位操作符"<<"(左移,低位补0), ">>"(有符号右移,高位正插0,负插1), ">>>"(无符号右移,高位插0)
只可用来处理整数类型.
可与"="联合使用.
11.三元运算符boolean-exp ? value0 : value1;
12.字符串操作符"+", "+=".
String 重载了 "+","+=".
操作符重载:java不能实现自己的重载操作符.
如果表达式以一个字符串起头,那么后续所有操作数都必须是字符串类型(编译器会把双引号内的字符序列自动转成字符串).
13.类型转换操作符类型转换:(cast).
向上转型:强制类型转换.
向下转型:不必显示地进行转换.
截尾:向下取整.
舍入:Math.round(),四舍五入.
对基本数据类型进行执行算术运算或按位运算,只要类型比int小,在运算之前,会自动转换成int,最终结果就是int型,如果要把结果赋值给较小的类型,就必须使用类型转换.
14.sizeofsizeof()操作符:返回数据分配的字节数.
Java不需要sizeof,因为所有类型在所有机器中的大小是相同的.
END
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71498.html
摘要:字节码是程序的中间表示形式介于人类可读的源码和机器码之间。在中一般是用编译源文件变成字节码,也就是我们的文件。字节码的执行操作,指的就是对当前栈帧数据结构进行的操作。 0.写在前面 为什么会写这篇文章呢?主要是之前调研过日志脱敏相关的一些,具体可以参考LOG4j脱敏插件如何编写里面描述了日志脱敏插件编写方法: 直接在toString中修改代码,这种方法很麻烦,效率低,需要修改每一个要...
摘要:缘起这是语言程序设计的,计划之前全部整理完。产生随机数的方法。复习题双分支语句复习题嵌套的语句和多分支语句复习题常见错误和陷阱常见错误两个浮点数值的相等测试复习题产生随机数产生一个到之间的随机值,不包括。 缘起 这是《Java语言程序设计(10th)》的Part1,计划2017-12-31之前全部整理完。 2017-12-23开始想看这本书的,并同时开始实践起Java来的。 Part...
摘要:包含了支持服务开发的类,并为提供基础,如语言基础操作操作网络通信以及多线程等技术。在运行文件时,的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。支持多个线程同时执行,并提供多线程之间的同步机制。 1.什么是Java语言 简单地说,Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言。2009 年 Or...
摘要:方法由两个参数,表示期望的值,表示要给设置的新值。操作包含三个操作数内存位置预期原值和新值。如果处的值尚未同时更改,则操作成功。中就使用了这样的操作。上面操作还有一点是将事务范围缩小了,也提升了系统并发处理的性能。 这是java高并发系列第21篇文章。 本文主要内容 从网站计数器实现中一步步引出CAS操作 介绍java中的CAS及CAS可能存在的问题 悲观锁和乐观锁的一些介绍及数据库...
摘要:操作指引该文件服务组件的使用需要分为两个部分,一个是服务端配置与启动,一个是客户端的配置与启动。在调用文件服务返回的路径的时候,需要用到服务端访问文件的地址,进而访问相应的文件内容。 本文所述文件服务组件在笔者此前一篇文章中已有阐述(基于netty的文件上传下载组件),不过本文将基于之前这个实现再次进行升级改造,利用基于注解的方式进行自动装配。 1. 简介 1.1 Netty简介 Ne...
摘要:并发编程的挑战并发编程的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行。的实现原理与应用在多线程并发编程中一直是元老级角色,很多人都会称呼它为重量级锁。 并发编程的挑战 并发编程的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度的并发执行。如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战:(1)上下文切换(2)死...
阅读 2760·2021-11-17 09:33
阅读 4370·2021-09-22 15:57
阅读 2849·2019-08-30 14:16
阅读 3119·2019-08-29 14:07
阅读 2390·2019-08-26 11:55
阅读 3386·2019-08-23 17:07
阅读 1708·2019-08-23 16:50
阅读 2515·2019-08-23 16:08