我们来看浮点数类型
浮点数类型分为两种,一个是double,这个是双精度的,一个是float,这个是单精度的。说白了,双精度的变量类型就是比单精度的变量类型小数的保留位数多而已,这是使用上的区别。当然,在占用内存上,单精度的占用32位,也就是4个字节,而双精度占用的就是64位,也就是8个字节。在java中,一个小数会被默认为双精度类型,也就是double类型,如果你要指定为float类型,那么在数值后一定要加上f或者F。
我们来看示例
float f =1.34f//为ifloat类型赋值,后面加上f或者F double d1 = 3.13d; double d2 = 3.14; //为double类型的变量赋值,就不需要加上或者D了。
我们再来看字符类型变量的使用说明
字符类型是存储单一字符的,我们用char表示,char类型的变量都会占用两个字节。再给char类型变量赋值时,我们要给值加上单引号,’’,我们要的是英文半角格式的单引号。我们还可以直接给定数字,像97,就代表了字符a。
我们来看示例
char c = 'a'; char c1 = 97;
我们来说明布尔类型变量
布尔类型变量只有两个值,那就是true和false,真和假,真假美猴王。
我们来看示例
boolean b = false; boolean b1 = true;
1.6变量的类型转换
变量的类型转换其实就是常常发生在运算中的.。我们可以分为自动类型转换,和强制类型转换。自动类型转换变其实就是常常发生在运算中的.。是自己自动装换的,而强制类型装换,使我们自己来转换的。当一个类型的变量转换为取值范围比他大的变量类型时,就都是可以的。
我们来写代码感受一下。
public class var { public static void main(String args[]){ byte b = 5; int a = b; System.out.println(a);
我们来看运行效果。
控制台给出a的值是5,那我们这样做是可以的。
下面,我们来看错误示例。
public class var { public static void main(String args[]){ int b = 5; byte a = b; System.out.println(a);
我们来看运行结果,我们在idea里看
我们把Error拿出来。
Error:(6, 18) java: 不兼容的类型: 从int转换到byte可能会有损失
我们这样写是不对的
那我们非要这样写,又不想让它出现错误,我们这样写看看
public class var { public static void main(String args[]){ int b = 5; byte a = (byte)b; System.out.println(a);
我们给他强制类型转换。控制台输出如下
这里没有报错,正常输出。
但其实如果我们int类型的变量的值很大,或者说比byte类型的取值范围要大,我们看发生什么,会不会有缺失。
我们来看代码
下面展示一些 内联代码片。
public class var { public static void main(String args[]){ int b = 298; byte a = (byte)b; System.out.println(a);
我们来看运行结果:
这里给出我的是42,我们可能会一脸懵逼。这里我们想想,byte类型最多取到2的七次方减一,也就是127,我们的128他是容不下的。那么四十二又是哪来的?
我们的int类型占用4个字节,也就是32位,而byte占用一个字节,也就是8位。转换后,我们会丢失24位,也就是前3个字节会丢,我们计算机内存中将最后的可以保留下的一个字节进行了二进制转换为十进制,就是42了。
1.7:我们来看变量的作用域
很简单地说,变量只能作用域他所在的括号内
来看代码
class Var{ public static void main(String args[]){ int a = 5//这个a只能在这一成括号里有效。 } }
我们再看一些java中的运算符
运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。
我们来看算术运算符
以上是我们常见的几种
我们要注意一点,关于%,称之为取模运算,他的结果我们可以这样来说明
(-5) % 3 = -2,而5 %(-3)= 2。可以看出是与符号结果正负是与负号所在的位置有关的。
我们来看赋值运算符
我们可以这样对多个变量赋值:
int x,y,z;
x=y=z = 4;
但我们不可以这样int x=y=z = 4;
我们来看关系运算符
我们来看逻辑运算符
我们注意一点。&和&&还是有很大区别的,虽然都是与操作,相同的地方是,当两边的运算都为true时,运算结果才为true,否则就是false。不同的是在使用&运算时。不论左边结果是啥,他两边的表达式都会运算,而&&就不一样了,当左边为false时,右边就不会进行运算.
我们来看算术符的优先级