黑马程序员 Java基础知识总结-运算类型

 标识符:由26个英文字母,0~9个数字,下划线以及美元符号$,并且首字母不能为数字,也不可以使用关键字,java中严格区分大小写的。java中的名称规范:包名:多单词组成时所有字母都小写,xxxyyyzzz。类名接口名:多单词组成时,所有单词的首字母大写,XxxYyyZzz。变量名和函数名:多单词组成时,第一个单词首字母小写,第二 个单词开始每个单词首字母大写,xxxYyyZzz。常量名:所有字母都大写。多单词时每个单词用下划线连接,XXX_YYY_ZZZ。

       注释:Java中的注释格式:单行注释;格式://注释文字。多行注释;格式:/* 注释文字*/。文档注释;格式:/** 注释文字*/。

对于单行和多行注释,被注释的文字,不会被JVM( java虚拟机)解释执行。对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。注释是一个程序员必须要具有的良好编程习惯。初学者编写程序可以养成习惯:先写注释再写代码。

       常量与变量:常量表示不能改变的数值。变量的概念:内存中的一个存储区域;该区域有自己的名称(变量名)和类型(数据类型);该区域的数据可以在同一类型范围内不断变化。定义变量的格式:数据类型变量名 = 初始化值。数据格式转换:自动类型和转换和强制类型转换;自动数据类型转换:表达式的数据类型自动提升,所有的byte型、short型和char的值将被提升到int型;如果一个操作数是long型,计算结果就是long型;如果一个操作数是float型,计算结果就是float型;如果一个操作数是double型,计算结果就是double型。强制类型转换:变量=(类型)运算。

        运算符:算术运算符;赋值运算符;比较运算符;逻辑运算符;位运算符;三元运算符。

如何理解 :在Java中 只有相同的数据类型才可以作运算,不同数据类型做运算是有条件的。

如:

public class Demo {
	public static void main(String[] args) {
		//定义一个byte型变量
		byte b = 10 ;  
		b = 10+5 ;
		System.out.println(b);
	}
}

以上代码运行结果为:15

public class Demo {
	public static void main(String[] args) {
		//定义一个byte型变量
		byte b = 10 ;
		byte b1 = 10 ; 
		byte b2 = 5 ;
		b = b1 + b2;    //将变量b1,b2的值相加然后赋给b
		System.out.println(b);
	}
}

以上代码在编译时会报:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Type mismatch: cannot convert from int to byte
at com.base.learn.Demo.main(Demo.java:10)

b1,b2都是byte类型变量,为什么执行b=b1+b2会报编译错误,而执行b=3+4却能得到正确结果呢?

   由于b1是byte类型变量,常量3和4默认为int类型。因此执行b1=3+4是实际上是对“3+4”之和做了强制类型转换并判断是否超出了byte型所能表示的范围。然而在执行b = b1 + b2时,b1、b2是byte型变量,因此编译器不能确定其取值范围,不能准确判断其取值是否在byte范围,故编译时报错。

又如:

public class Demo {
	public static void main(String[] args) {
		//定义一个int型变量并把int类型可表示的最大值赋给变量i
		int i = Integer.MAX_VALUE;
		int j = 1 ;
		i = i+j ;
		System.out.println(i);
	}
}

//结果输出:-2147483648

上面说到在编译时会判断变量的取值是否在其类型的取值范围内。i=Integer.MAX_VALUE;执行之后i的值为int型最大值,若加一已经超出了int的取值范围,为什么还能运算呢 ?因为,i、j都是int型变量,因此在运算时不做类型的转换。运算结果超出范围强制转换,改变数值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值