Java基本语法(上)

在这里插入图片描述
在这里插入图片描述

整形

byte short int long

在这里插入图片描述


浮点型

float double

在 Java 中,float 和 double 类型都是浮点数类型,分别使用 4 字节和 8 字节来存储。它们的表数范围和精度不同,具体如下:

  • float:单精度浮点数类型,用于表示小数,占用 4 字节,范围为 -3.40282347E+38 到 3.40282347E+38,精度为 6-7 位有效数字。
  • double:双精度浮点数类型,用于表示更大或更小的小数,占用 8 字节,范围为 -1.79769313486231570E+308 到 1.79769313486231570E+308,精度为 15-16 位有效数字。

自动类型提升

自动类型转换(只涉及7种基本数据类型)

结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。

byte 、char 、short --> int --> long --> float --> double 
特别的:当byte、char、short三种类型的变量做运算时,结果为int型,最低也要用int接收。(byte+byte也是如此)
float做运算,结果为浮点型 要用double接收。

说明:此时的容量大小指的是,表示数的范围的大和小。


		char c1 = 'a';//97
		int i3 = 10;
		int i4 = c1 + i3;
		System.out.println(i4);//输出结果:107



		
		//1.编码情况1:
		long l = 123213;//低于int范围的可以不加l
		System.out.println(l);
	
		long l1 = 21332423235234123//编译失败:过大的整数
		long l1 = 21332423235234123L;//通过


		//****************
		
		float f1 = 12.3;//编译失败 一定要加f  float f1 = 12.3f;
		float f1 = (float)12.3;//通过

		//2.编码情况2:
		//整型常量,默认类型为int型
		//浮点型常量,默认类型为double型
		byte b = 12;
		byte b1 = b + 1;//编译失败 应该最低用int接收 1默认为int

		float f1 = b + 12.3;//编译失败 应用double
		

强制类型转换

强制类型转换(只涉及7种基本数据类型):自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。


		double d1 = 12.9;
		//精度损失举例1
		int i1 = (int)d1;//截断操作
		System.out.println(i1);
		
		//没有精度损失
		long l1 = 123;
		short s2 = (short)l1;
		
		//精度损失举例2
		int i2 = 128;
		byte b = (byte)i2;
		System.out.println(b);//输出-128 (127 +1 循环到-128)  因为byte范围-128 - 127  算术运算符那里下面有解释

3.通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
如:String a = “43”; int i= Integer.parseInt(a);
int i = (int)s1;//编译错误 String类型的不能使用()的方法用来强制类型转换
boolean类型不可以转换为其它的数据类型。

String类型

String8种基本数据类型间的运算
1. String属于引用数据类型,翻译为:字符串
2. 声明String类型变量时,使用一对""
3. String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
4. 运算的结果仍然是String类型
    
   //练习1
		char c = 'a';//97   A:65
		int num = 10;
		String str = "hello";
		System.out.println(c + num + str);//107hello
		System.out.println(c + str + num);//ahello10
		System.out.println(c + (num + str));//a10hello
		System.out.println(str + num + c);//hello10a
	//练习2
		//要求输出*	* 下面给出几种方法;下图是运行结果
		System.out.println("*	*");
		System.out.println('*' + '\t' + '*'); //因为是字符所以会转换成ASCII码中的数字 首先是'*'和'\t'做加法运算,转换成数字就成了整形int 然后再加上'*'对应的ASCII。
		System.out.println('*' + "\t" + '*');//成功 \t是tab符
		System.out.println('*' + '\t' + "*");//先做加法运算再拼接字符串
		System.out.println('*' + ('\t' + "*"));

在这里插入图片描述

当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

练习:
String str1 = 4; //判断对错:错

String str2 = 3.5f + ""; //判断str2对错:对
System.out.println(str2); //输出:3.5 这里是String类型 不是int

System.out.println(3+4+Hello!); 
//输出:7Hello! (先做加法运算再字符串拼接)
System.out.println(Hello!+3+4); 
//输出:Hello!34  直接字符串拼接了
System.out.println(‘a’+1+Hello!); 
//输出:98Hello! (先做加法运算再字符串拼接)
System.out.println(Hello+‘a’+1); //输出:Helloa1 直接拼接

练习:
    判断是否能通过编译
short s = 5;
s = s-2; //判断:no 2是int 不能用short接收

byte b = 3;
b = b + 4;//判断:no 和上个同理
b = (byte)(b+4);//判断:yes 强制类型转换

char c = ‘a’;
int i = 5;
float d = 1.314F;
double result = c+i+d; //判断:yes 可以用更高容量的类型接收

byte b = 5;
short s = 3;
short t = s + b;//判断:no  最低也要用int接收
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值