Java入门——基本数据类型

基本数据类型

分类和转化

基本数据类型包含8个类型
Java入门——基本数据类型_第1张图片
不同的基本数据类型之间可以进行转换:

  1. 隐式转换:
    小范围—>大范围(可以直接转换)
  2. 显示转换:
    大范围—>小范围(强制转换)
//隐式转换
		//在定义值的时候,不能超过该数据类型的长度,如果超过了,那么它就会直接报错,编译无法通过
		byte a=124;
		int b=1;//一半情况整形都使用int
		b=a;
		System.out.println("隐式转换:"+b);
		
		//显示转换
		byte c=124;
		int d=1;
		//强转,通过在需要转换的字段前加上(对应需要转换类型)
		c=(byte)d;
		System.out.println("显示转换:"+c);
		
		//int值大于byte范围
		int e=200;
		//强转,通过在需要转换的字段前加上(对应需要转换类型)
		c=(byte)e;
		System.out.println("int值大于byte范围:"+c);
		
		//小数默认是double类型,古人要将1.0复制给float类型:
		//强制转换
		//添加f或者F
		//float f1=1.0;是错误的
		float f1=1.0f;
		float f2=(float)1.0;
		System.out.println("float:"+f1);
		
		//小数默认为double类型,使用d或D可以显示表示该小数是double类型
		double d1=1.0;
		double d2=1.01d;
		System.out.println("double:"+d1);
		
		//布尔值类型
		//默认false
		boolean testFlag=false;
		//boolean只有两个值,true和false
		//可以判断表达式,将表达式结果作为赋值内容
		boolean testFlag2=true;
		boolean testFlag3=(1==1);

输出结果:
Java入门——基本数据类型_第2张图片
注意:

  • 数值类型和Boolean类型之间不能转换(强转也不行,会出现编译错误提示)
  • char类型可以使用‘’单引号字符赋值,也可以使用非负整数进行赋值
  • char占两个字节,表示一个字符;英文字母占一个字节,中文占两个字节,但是char只能存放一个字母或一个汉字(char a='ab',//编译错误
  • 小数默认是double类型,如果要将1.0赋值给float类型,可以强转或在后面添加f/F
  • 布尔类型默认为false,可以将表达式的结果作为赋值内容
比较运算
  • float和double的比较:
		//测试
		//比较的为整数
		System.out.println("------------");
		double d1=1.0d;
		float f1=1.0f;
		System.out.println("d1==f1:"+(d1==f1));
		System.out.println("d1!=f1:"+(d1!=f1));
		System.out.println("d1>f1:"+(d1>f1));
		System.out.println("d1+(d1<f1));
		
		//比较的为小数
		System.out.println("------------");
		double d2=0.1d;
		float f2=0.1f;
		System.out.println("d2==f2:"+(d2==f2));
		System.out.println("d2!=f2:"+(d2!=f2));
		System.out.println("d2>f2:"+(d2>f2));
		System.out.println("d2+(d2<f2));

输出结果:
Java入门——基本数据类型_第3张图片
解:
当定义的两个变量float和double都是整数时,后面小数位都是0——那么在进行判断时两边是相等的(因为没有小数位,会把这两个值当整数来处理)

当定义的两个变量是小数时,小数位不为0,那么float和double就算值一样也不会对等(需要考虑数据的范围)

  • String之间的比较:
		//基本数据类型和引用数据类型
		//声明两个引用类型的变量s1和s2,并使用new赋值
		System.out.println("-----引用类型-------");
		String s1=new String("Hello");//通过new创建的字符串回在堆里开辟一个新的空间
		String s2=new String("Hello");
		String s3="Hello";//直接通过=赋值,s3s4指向同一个堆的内容,可以直接比较
		String s4="Hello";
		//使用==和!=比较s1和s2的地址
		System.out.println("s1==s2"+(s1==s2));
		System.out.println("s1==s3"+(s1==s3));
		System.out.println("s3==s4"+(s3==s4));
		System.out.println("s3==s4"+s3.equals(s4));//比较内容,一般字符串用
		System.out.println("s1==s2"+s1.equals(s2));

输出结果:
Java入门——基本数据类型_第4张图片

  • a++和++a的区别:
//运算
		int num1=1;
		int num2=2;
		int sum=0;//赋初始值
		sum=num1+num2;
		System.out.println("-----------------");
		//加法
		num1=num1+num2;//等号后面重新赋值,将num1+num2的结果赋值给num1
		num1+=num2;//将左边的值重新赋值,赋值结果为左边加上右边的结果集
		//先运算,再自增
		num1++;
		System.out.println("直接输出num1++:"+(num1++));//先输出,再运算
		System.out.println("num1++之后:"+num1);
		//先自增,再运算
		++num1;
		System.out.println("直接输出++num1:"+(++num1));//先运算,再输出
		System.out.println("++num1之后:"+num1);

输出结果:
控制台输出结果

  • 常见运算符:
    赋值:= int a=1;
    算数运算 +, - ,*, / ,%(除余) , ++, –
    比较:== != > < >= <= (返回boolean类型true/false)
    逻辑符号 :&& 、 || 、!
    条件运算符(三元运算符):表达式1?表达式2:表达式3;
    复合赋值运算 += , -= , *= , /= , %=

条件运算符:

//除法
		System.out.println("----------------");
		int x=101;
		int y=x/10;//除法
		System.out.println(y);
		int z=x%10;//除余
		System.out.println(z);
		
		int g=x>y?x+y:2;
		System.out.println(g);

输出结果:
控制台输出结果
解:
判断表达式的值,true返回?前内容,false返回?后内容

控制台输出对象Scanner:
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int inputNum=sc.nextInt();
		System.out.println("值:"+inputNum);

你可能感兴趣的:(Java知识复习,java,编程语言)