Java程序猿之数据运算和运算符

  Java是一门强类型语言,强类型语言包含两方面的含义:1、所有变量必须先声明、后使用;2、指定类型的变量只能接受类型与之匹配的值。

  基本类型大致分为两种:数值类型和布尔类型,其中数值类型包括:整形、字符型、浮点型。所有数值类型直接可以进行类型转换,这种类型转换包括自动类型转换和强制类型转换。

  Java语言中的空格包含空格符(Space)、制表符(Tab)和回车符(Enter)等。

  标识符规则:标识符就是用于给程序中变量、类、方法命名的符号。Java语言的标识符必须以字母、下划线(_)、美元符($)开头,后面跟任意数目的字母、数字、下划线和美元符。

  使用标识符应该注意:1、标识符可以由字母、数字、下划线、美元符组成,其中数字不能打头;2、标识符不能是Java关键字和保留字,但可以包含关键字和保留字;3、标识符不能包含空格;4、标识符只能包含美元符,不能包含@、#等其他特殊字符。

  Java关键字:Java语言中有一些具有特殊用途的单词被称为关键字,当定义标识符时,不要让标识符和关键字相同,否则将引起错误。

  Java所有关键字都是小写的。

  编程的本质就是对内存中数据的方位和修改,程序所用的数据都会保存在内存中,程序员需要一种机制来访问或修改内存中数据。这种机制就是变量,每个变量都代表某一小块内存,而且变量是有名字的,程序对变量赋值,实际上就是把数据装入该变量所代表的内存区的过程;程序读取变量的值,实际上就是从该变量所代表的内存区取值的过程。变量相当于一个有名称的容器,该容器用于各种不同类型的数据。

  定义变量可指定初始值,也可不知道初始值。定义变量至少要指定变量类型和变量名两个部分。

  Java语言支持的类型分为两类:基本类型和引用类型。

  基本类型包括数值类型和布尔类型,数值类型包括整数类型和浮点类型。整数类型包括byte、short、int、long、char,浮点类型包括float和double。

  char代表字符型,字符型是一种特殊的整数类型。

  引用类型包括类、接口和数组类型,还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。空引用(null)可以转换为任何引用类型。

  基本的数据类型:整数类型,一个字节byte,占8位,范围是-128到127,short占16位,int占32位,long占64位。

  int是最常用的整数类型,在通常情况下,直接给出一个整数值默认是int类型。

  如果直接将一个较小的整数值(在byte或者short类型的表述范围内)赋给一个byte或者short变量,系统会自动把这个整数当成byte或者short类型来处理。

  如果使用一个巨大的整数值(超过int表数范围)时,Java不会自动将这个整数值当成long类型来处理,如果希望系统把一个整数值当成long类型处理,应在整数值后增加l或者L作为后缀。

  字符型通常用于表示单个的字符,字符型必须使用单引号括起来,Java使用16位的Unicode字符集作为编码方式。

  由于计算机底层是保存字符的,实际是保存该字符对应的编号,因此char类型的值也可直接作为整数值来使用,它相当于一个16位的无符号整数,表述范围0-65535。char类型的变量、值完全可以参加加减乘除运算,也可以比较大小,实际上是用该字符的编码来参与运算。

  Java语言中的单引号、双引号和反斜线都有特殊的用途,如果一个字符串中包含了这些特殊字符,则应该使用转义字符的表示形式。比如:在Java中表达绝对路径:"c:\codes",这种写法得不到期望的结果,因为Java会吧反斜线当做转义字符,应该写成"c:\\codes",Java才会把第一个反斜线当成转义字符,和后一个反斜线组成真正的反斜线。

  浮点型有两种float和double。Java浮点类型有固定的表述范围和字段长度。对于float型数值,第一位是符号位,接下来8位表示指数,再接下来的23位表示尾数;对于double,第一位也是符号位,解析来11位表示指数,再接下来的52位表示尾数。

  double类型代表双精度浮点数,占8字节,64位;float代表单精度浮点数,占4字节,32位。

  Java语言默认double类型。

  Java还提供了三个特殊的浮点数值:正无穷大(Double或Float类的POSITIVE_INFINITY表示)、负无穷大(Double或Float类的NEGATIVE_INFINITY表示)和非数(Double或Float的NaN表示),用于表示溢出和出错。所有正无穷大的数值都是相等的,负无穷大的数值也是相等的,NaN不与任何数值相等,甚至和Nan都不相等。

  数值中使用下画线分割

public class uT{
    public static void main(String[] args){
        long i = 123_123_123_123l;
        System.out.println(i);
        }
    }

   Java中,boolean类型数值只能使用true或者flase,不能用0或者非0代表,其他类型数值也不能转换成布尔类型。

  使用布尔类型的值与字符串进行连接运算,布尔类型的值会自动转换成字符串。

  Java数值类型转换

  有两种转换方式:自动类型转换和强制类型转换

  Java所有数值型变量可以相互转换,如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式被称为自动类型转换。当把一个表述范围小的数值或变量赋给另一个表数范围大的变量时,系统将可以进行自动类型转换,否则需要强制转换。

  任何基本数值类型与字符串相连接时,基本类型的值将自动类型转化为字符串类型,虽然字符串类型不是基本类型,而是引用类型。如果希望把基本的数值类型转换成对应的字符串类型,和空字符串连接就可以。

//输出7hello
System.out.println(3 + 4 + hello);
//输出hello34
System.out.println(hello + 3 + 4);

   表达式类型的自动提升:当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。Java定义了如下提升原则:1、所有byte类型、short类型、char类型将被提升为int类型;2、整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。

//定义一个short变量
short sv = 5;
//表达式中sv将自动提升为int类型,右边表达式为int
//讲一个int类型赋值给short类型变量发生错误
short sv = sv - 2;

   必须指出的是,表达式类型将严格保持和表达式中最高等级操作数相同的类型。如果一个除法表达式不能整除,而需要一个int类型的值,自动截取整数部分。

 

你可能感兴趣的:(Java程序猿之数据运算和运算符)