一、变量类型的转换(1)自动类型转换也称为隐式类型转换,是指两种数据类型在转换过程中不发生变化。需要明确声明。需要满足两个条件:第一是两种数据类型相互兼容,第二是目标类型的取值范围大于源类型。1.将一个表号范围小的值或变量直接赋值给另一个表号范围大的变量时,系统会自动进行类型转换。例如:doubled=3;//int自动转为double类型3.0再赋值。3+1.0;//表达式的类型是所有操作数中最高的类型,即double类型。2.当任何基本数据类型的值与字符串值连接时,基本类型的值将自动转换为字符串类型。(2)强制类型转换也称为显式类型转换,是指两种数据类型之间的转换需要显式声明。当两种数据类型不兼容或目标类型的取值范围小于源类型时,无法进行自动类型转换。所以需要类型转换。1、直接将一个表号范围大的值或变量赋值给另一个表号范围小的变量时,会出现范围溢出,报错。例如:shorts=5;//5在short范围内,允许赋值,5会被认为是short类型。s=s+2;//2是int类型,s+2表达式类型是int,如果赋值给short类型会溢出,报错。2、强制类型的具体格式如下:目标类型变量=(目标类型)值例如:s=(short)(s+2);//强制将int类型转换为short类型。需要注意的一点是,强制类型转换可能会导致信息丢失。2、运算符(1)算术运算符及与算术有关的运算符+、-、*、/,即加、减、乘、除,也称为四算术运算。还有一个%称为模数运算符或余数运算符。算术运算符的使用和你学过的加减乘除一样,先乘除再加减。算术运算符看起来比较简单易懂。在实际使用中还有很多需要注意的问题:1、在自增++和自减--的运算中,如果运算符++或--放在操作数的前面,先自增或自减。自减运算,再进行其他运算。反之,如果运算符放在操作数之后,则先进行其他运算,再进行自增或自减。例如:inta=2;//声明一个int类型变量a并赋值2intb=3;//声明一个int类型变量b并赋值3intx=a+b++;//声明一个int类型变量xSystem.out.print("b="+b);System.out.print("x="+x);上面代码的输出是b=4,x=5。具体分析:首先定义了3个int类型,其中a=2,b=3,当x进行a+b++运算时,因为后面写了运算符++,所以先进行运算,然后自递增。当变量b参与加法运算时,值还是3,x=5。变量b先计算再自增,b的值为4。(2)比较运算符数学上有大于、小于、等于的比较运算符,java也提供了这些运算符,称为比较运算符运营商。例如:System.out.printf("3>2Result%b%n",3>2);System.out.printf("3>=2Result%b%n",3>=2);System.out.printf("3<2Result%b%n",3<2);System.out.printf("3<=2Result%b%n",3<=2);System.out.printf("3==2Result%b%n",3==2);System.out.printf("3!=2Result%b%n",3!=2);输出结果为:3>2Resulttrue3>=2resulttrue3<2resultfalse3<=2resultfalse3==2resultfalse3!=2resulttrue比较运算符是比较两个值或变量,结果为布尔值true或false。(3)逻辑运算符逻辑运算符用于对布尔数据进行运算,结果也是一个布尔值。逻辑上,“与(AND)”、“或(OR)”、“取反(NOT)”,java中也提供了这些逻辑运算符,分别是&&(AND)、||(或者),!(不是)。例如:intnumber=35;System.out.println(number>30&&number<40);System.out.println(number>40||number<30);System.out.println(!(number>40||number<30));输出结果为:truefalseTrue(四)位运算符位运算符是对二进制数的每一位进行运算的符号,专门对数字0和1进行运算。例如:计算5&3=13.总结本文主要介绍了数据类型的转换,即自动类型转换和强制类型转换,同时也介绍了这两种类型转换的用法。需要注意的是,强制类型转换可能会导致信息丢失。运算符包括算术运算符、比较运算符、逻辑运算符和位运算符。算术运算符是+、-、*、\和%模数或余数运算符。详细介绍了自增自减的用法。比较运算符比较两个值或变量,结果为布尔值true或false。逻辑运算符对布尔数据进行运算,结果也是一个布尔值。按位运算符是对二进制数的每一位进行运算的符号,具体是对数字0和1进行运算。希望通过本文的学习,能够帮助大家理解数据类型转换和运算符。
