昆山新意建设咨询有限公司网站,网站多语切换怎么做,昆明 网站搭建,需要品牌网站建设文章目录说明八大基本数据类型整型浮点型字符型布尔类型类型转换java运算符基础运算符二元运算符自增自减运算符关系和boolean运算符三元运算符位运算符运算符优先级说明
这里介绍java的八大基本数据类型和运算符
八大基本数据类型
java中有八大数据类型#xff0c;4个整型…
文章目录说明八大基本数据类型整型浮点型字符型布尔类型类型转换java运算符基础运算符二元运算符自增自减运算符关系和boolean运算符三元运算符位运算符运算符优先级说明
这里介绍java的八大基本数据类型和运算符
八大基本数据类型
java中有八大数据类型4个整型2个浮点型一个字符型和一个布尔型
整型 // 整型为 byte、short、int、long这4个分别是1、2、4、8个字节// 全部都是有符号的没有unsignedbyte a 1;short b 1;int c 1;long d 1;// 1l or 1L对于基本数据类型我们还可以使用2、8、16进制来进行表示 // 二进制表示int e 0b1; // 二进制使用0b或者0B开头表示为二进制的1也可以写成0B1int f 0b1_1_1; // 二进制还可以使用_进行分隔表示得更加清晰f的值为7// 八进制表示int g 010; // 八进制使用0开头g的值为8比较容易混淆不建议使用// 十六进制表示int h 0x11; // 十六进制使用0x或者0X开头h的值为17浮点型 // 浮点型为 float、double这2个分别为4、8字节float i 1.1f; //或者 1.1fdouble j 1.1; // 或者1.1d、1.1D注意小数默认是double 在浮点数中还有3个特殊的值分别是无限大、无限小、不是数字 double x Double.POSITIVE_INFINITY; // 这个值表示无穷大 例如1.0 / 0.0double y Double.NEGATIVE_INFINITY; // 这个值表示无穷小 例如-1.0 / 0.0double z Double.NaN; // 表示不是一个数字例如0.0 / 0.0字符型
字符型使用char标识 char k a; // char类型 使用 ,里面为任意单一字符对于字符下面有一些说明 java中内码运行内存中的char使用UTF16的方式编码一个char占用两个字节 但是某些字符需要两个char来表示。所以一个字符会占用2个或4个字节。 java中外码中char使用UTF8的方式编码一个字符占用16个字节。 UTF16编码中英文字符占两个字节绝大多数汉字尤其是常用汉字占用两个字节 个别汉字在后期加入unicode编码的汉字一般是极少用到的生僻字占用四个字节。 UTF8编码中英文字符占用一个字节绝大多数汉字占用三个字节个别汉字占用四个字节。 (参考于https://www.cnblogs.com/fnlingnzb-learner/p/7272348.html) // 字符也可以使用\u4个16进制值来表示// 在注释中别把\和u写在一起char l \u1111; 布尔类型
布尔型为boolean
boolean m true; // boolean的值只能为true和false下面是boolean的一些说明 boolean类型被编译为int类型等于是说JVM里占用字节和int完全一样int是4个字节于是boolean也是4字节 boolean数组在Oracle的JVM中编码为byte数组每个boolean元素占用8位1字节 (参考于https://blog.csdn.net/amoscn/article/details/97377833) 类型转换
各个类型的关系如下 实线表示进行转换没有精度丢失虚线表示会有精度丢失。箭头方向会自动转换反方向都需要进行强转并且可能会存在精度丢失下面有几个例子 int a Integer.MAX_VALUE;// 箭头方向都会进行自动转换b没有精度丢失c会丢失精度long b a;float c a;System.out.println(a a);System.out.println(b b);System.out.println(c c);输出如下
a2147483647
b2147483647
c2.14748365E9还有一个例子如下表面箭头反方向需要进行强转 int a 1000;int b 100;// 箭头反方向需要进行强转转换// 如果超出该数据类型的最大值就会造成精度丢失byte c (byte) a;byte d (byte) b;System.out.println(a a);System.out.println(b b);System.out.println(c c);System.out.println(d d);输出如下
a1000
b100
c-24
d100 java运算符
基础运算符
java中 使用 、-、*、/、% 来表示 加、减、乘、除、取余
二元运算符
二元运算符 -*/%。 int a 1;a 1; // 等价于 a a 1其他也是类似的自增自减运算符
自增 a、a都表示将a的值加1. a–、–a表示将a的值减1 a和a的区别为在进行运算的时候a会在运算之后将a的值加1而a会将a的值加1后进行运算, a–和–a也是类似的 int b 1;int c b; // c的值为1b的值为2b 1;int d b; // d的值为2b的值也为2关系和boolean运算符
用于比较是否相等!检测不相等还有如 (大于) (大于等于) (小于) (小于等于)表示逻辑与|| 表示逻辑或都是按照短路方式进行求值的就是当第一个表达式满足时第二个表达式就不会计算了
三元运算符
使用 ? :
c 表达式 ? a : b 如果表达式为true那么c就会为a否则c为b位运算符
|表示或表示与^表示异或~表示取反 如果|和应用在布尔值上时和||和是类似的但没有短路机制
表示右移表示左移,
移位运算符会对操作数进行模32的操作(如果是long就是64)
相当于 135 和 1 3是相等的 和 一样的但是用0填充高位而使用符号位填充高位运算符优先级