首页 / JAVA / (一)Java基本数据类型及运算符
(一)Java基本数据类型及运算符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(一)Java基本数据类型及运算符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4587字,纯文字阅读大概需要7分钟。
内容图文
![(一)Java基本数据类型及运算符](/upload/InfoBanner/zyjiaocheng/1074/ba21fac8cc784025a59768d1aa745849.jpg)
一、Java八大基本数据类型
- byte:字节整型,占用内存大小1个字节=8bit,取值范围 -27 ~ 27-1(-128 ~ 127)
- short:短整型,占用内存大小2个字节=16bit,取值范围 -215 ~ 215-1(-32768 ~ 32767)
- int:整型,占用内存大小4个字节=32bit,取值范围 -231~ 231-1(-2147483648 ~ 2147483647)
- long:长整型,占用内存大小8个字节,取值范围 -263~ 263-1(-9223372036854775808 ~ 9223372036854775807)
- float:浮点型,占用内存大小4个字节=32bit(其中1位符号位+8位指数位+23位小数位),取值范围约 -3.4*1038 ~ 3.4*1038
- double:双精度浮点型,占用内存大小8个字节=64biit(其中1位符号位+11位指数位+52位小数位),取值范围约 -1.7977*10308 ~ 1.7977*10308
- char:字符型,无符号数据类型,占用内存大小2个字节=16bit,取值范围 0 ~ 216-1(‘/u0000‘ ~ ‘/uFFFF‘)
注:0X或0x前缀的整型数据为16进制数,0前缀的整型数据为8进制数,从JDK7开始,加上前缀0b或0B为二进制数。
注:如果需精确计算且基本数据类型的精度和取值范围不能满足要求,可以使用java.math包中的两个类,BigInteger(实现了任意精度的整数运算)和BigDecimal(实现了任意精度的浮点数运算)。
二、Java运算符
1、算数运算符:+、-、*、/ 表示加、减、乘、除运算,% 表示整数的求余运算
注:不用数据类型的数据之间的算数运算,将会自动进行隐式数据类型装换。如果两个数中有double类型,其中非double型会装换成double型进行计算;否则,如果两个数中有float类型,另一个数会转换成float类型再进行运算;否则,如果两个数中有long类型,另一个数会转换成long类型进行运算;如果两个数没有double类型、float类型,long类型,则全部都通过隐式转换成int类型后再进行运算(基本原理是取值范围较小的数据类型可以自动向取值范围更大的数据类型进行合法的隐式转换),合法的隐式转换如下图:
代码示例:
![技术分享图片](/upload/getfiles/default/2022/10/28/20221028074905303.jpg)
![技术分享图片](/img/jian.gif)
1 public class test1 { 2 public static void main(String[] args) { 3 char cr=1; 4char cr2=1; 5byte bt=2; 6char bt2=2; 7short st=3; 8short st2=3; 9int it=4; 10long lg=5; 11float ft=6; 12double db=7; 1314//测试char和char相加15if((Object)(cr+cr2) instanceof Character){ 16 System.out.println("char类型 加 char类型 得到 char类型;"); 17 } 18if((Object)(cr+cr2) instanceof Integer){ 19 System.out.println("char类型 加 char类型 得到int类型;"); 20 } 2122//测试byte和byte相加23if((Object)(bt+bt2) instanceof Integer){ 24 System.out.println("byte类型 加 byte类型 得到 int类型;"); 25 } 26if((Object)(bt+bt2) instanceof Byte){ 27 System.out.println("byte类型 加 byte类型 得到 byte类型;"); 28 } 2930//测试short和short相加31if((Object)(st+st2) instanceof Integer){ 32 System.out.println("char类型 加 byte类型 得到 int类型;"); 33 } 34if((Object)(st+st2) instanceof Short){ 35 System.out.println("char类型 加 byte类型 得到 short类型;"); 36 } 3738//测试char和byte类型相加39if((Object)(cr) instanceof Character){ 40 System.out.println("char类型 加 byte类型 得到 char类型;"); 41 } 42if((Object)(cr+bt) instanceof Byte){ 43 System.out.println("char类型 加 byte类型 得到 byte类型;"); 44 } 45if((Object)(cr+bt) instanceof Integer){ 46 System.out.println("char类型 加 byte类型 得到 int类型;"); 47 } 4849//测试char和short类型相加50if((Object)(cr+st) instanceof Character){ 51 System.out.println("char类型 加 short类型 得到 char类型;"); 52 } 53if((Object)(cr+st) instanceof Short){ 54 System.out.println("char类型 加 short类型 得到 short类型;"); 55 } 56if((Object)(cr+st) instanceof Integer){ 57 System.out.println("char类型 加 short类型 得到 int类型;"); 58 } 5960//测试byte和short类型相加61if((Object)(bt+st) instanceof Byte){ 62 System.out.println("short类型 加 byte类型 得到 byte类型;"); 63 } 64if((Object)(bt+st) instanceof Short){ 65 System.out.println("short类型 加 byte类型 得到 short类型;"); 66 } 67if((Object)(bt+st) instanceof Integer){ 68 System.out.println("short类型 加 byte类型 得到 int类型;"); 69 } 7071//测试int 和 long 相加72if((Object)(it+lg) instanceof Long){ 73 System.out.println("int类型 加 long类型 得到 long类型;"); 74 } 75if((Object)(it+lg) instanceof Integer){ 76 System.out.println("int类型 加 long类型 得到 int类型;"); 77 } 7879//测试float和long相加80if((Object)(ft+lg) instanceof Long){ 81 System.out.println("float类型 加 long类型 得到 long类型;"); 82 } 83if((Object)(ft+lg) instanceof Float){ 84 System.out.println("float类型 加 long类型 得到 float类型;"); 85 } 8687//测试float和double相加88if((Object)(ft+db) instanceof Float){ 89 System.out.println("float类型 加 double类型 得到 float类型;"); 90 } 91if((Object)(ft+db) instanceof Double){ 92 System.out.println("float类型 加 double类型 得到 double类型;"); 93 } 94959697 }
代码输出:
leixing
2、递增递减运算符:前缀递增运算符 ++ 变量 和前缀递减运算符 -- 变量,进行运算时,会先对变量的值进行递增和递减,直接获得这个变量递增1或递减1后的值并带入运算;后缀递增运算符 变量++ 和后缀递减运算符 变量--, 进行运算时,会先获得这个变量的原值代入计算,运算完之后再对该变量执行递增1或递减1运算。
3、关系操作符:计算操作数的值之间的关系,得到一个boolean值,关系成立为true,不成立为false。有<(小于) >(大于) <=(小于或等于) >=(大于或等于) ==(等于)
4、逻辑操作符:根据参数的逻辑关系,生成一个boolean值。有 &&(与) ||(或) !(非)
5、按位操作符:对一个或两个整型参数参数的二进制表示执行布尔代数运算,最终生成一个结果。有 &(按位与) |(按位或) ~(按位取反) ^ (按位异或),其中只有按位取反 ~ 是一元操作符,不可以和=联合使用,如 ~= 是错误的。
6、移位操作符:对一个整型参数的二进制表示进行整体前后移动的操作,最终生成一个结果。有 <<(左位移操作符,将二进制数整体左移指定的位数,二进制数左边超出长度的部分截取掉,右边空出的部分补0); >> (有符号右移操作符,将二进制数整体右移指定的位数,二进制数右边超出长度的部分截取掉,左边空出的部分补0并保持符号位与移位前保持一致,正数为0负数为1); >>> (无符号右移操作符,将二进制数整体右移指定的位数,二进制数右边超出长度的部分截取掉,左边空出的部分补0,符号位若空出也是补0)
7、三元操作符: 布尔表达式:value1:value2 如果布尔表达式为true,计算value1,且value1就是操作符的运算结果;如果布尔表达式为false,计算value2,且value2就是操作符的运算结果。
8、类型转换操作符:(强制转换的类型) 可以强制把一个数据(或对象)的类型装换成目标类型。 如 long a=123456789; int b=(int)a;
注:如果把大取值范围基本数据类型的数据窄化为小取值范围的基本数据,如double 装换为 int,可能因为数据的溢出或精确度发生变化对数字执行的截尾(如浮点型强转整型,会对数字执行截尾,不会进行四舍五入)导致计算出现较大偏差。
原文:https://www.cnblogs.com/jianguan/p/14463536.html
内容总结
以上是互联网集市为您收集整理的(一)Java基本数据类型及运算符全部内容,希望文章能够帮你解决(一)Java基本数据类型及运算符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。