java标识符与数据类型(java基础系列1)

标 识 符

标识符就是用于给程序中变量、类、方法名的命名的符号。在java中是区分大小写的,例如abc与ABC是两个不同的标识符。


标识符的命名规则:

  • 标识符可以由字母、数字、下划线以及美元符号($)组成,但是不能用数字开头。

  • 标识符不能是java中的关键字或保留字。

  • 标识符不能包含空格。例如:String a bc = “a”。

java中的关键字是程序设计语言里实现定义的具有特殊意义的标识符,java中的关键字都是小写,如下表:

boolean byte short int
long double char float
import package class extends
implements interface if else
switch do while case
break continue return default
for try catch finally
throw throws abstract final
native private protected public
static synchronized transient volatile
new instanceof this super
assert enum strictfp void


java中还有一些保留字,是指现有java版本尚未使用但是以后可能会作为关键字使用的,例如:goto、const、null 、cast、 false等


数 据 类 型


java语言支持的数据类型分为两类:

基本数据类型和引用类型。

引用类型包括类、接口和数组类型,还有一些特殊的null类型。引用数据类型就是对一个对象的引用,对象包括实例和数组两种。

基本数据类型是不用new来创建对象,而是创建一个并非是引用的“自动”变量,java中有8种基本数据类型,又分为布尔类型和数值类型,数值类型又包括整数类型和浮点类型,整数类型有byte、short、int、long、char,浮点类型有float、double。


整型:

  1. byte:byte(一个字节长度)类型的整数在内存中占8位,范围是-128~127。

    字节是计算机处理信息的最小单位,1字节=8位二进制数。

  2. short:short(两个字节长度)类型的整数在内存中占16位,范围是-32768~32767。

  3. int:int(四个字节长度)类型的整数在内存中占32位,范围是(-2的31次方)~(2的31次方减1)。

  4. long:long(八个字节长度)类型的整数在内存中占64位,范围是(-2的63次方)~(2的63次方减1)。

  5. char:一个16位无符号整数,范围是0~65535。字符型常用于表示单个字符,字符常量必须使用单括号括起来,有下面几种表示方式:      

  • 直接通过单个字符来指定字符常量,’a’ 

  • 通过转义字符表示特殊字符型常量,’\n’

    直接使用Unicode值来表示字符常量,’\uXXXX’ XXXX表示一个十六进制的整数


       char aChar = 'a';
       char enterChar = '\t';
       char ch = '\u667F';
       System.out.println(aChar);
       System.out.println(enterChar);
       System.out.println(ch);

               


在java中,整数常量默认的是int类型,当你用byte或short定义时,它们接收的是一个int类型的值,整数的类型不能超过所接收类型的范围,否则就会报错。例如:byte=128


当用long类型接收巨大的常量是,java不会自动把其转化为long类型,需要在整数常量后面加L或l。long m=5555555555555L


每一种类型的整数都可以用八进制(0开头)、十进制或十六进制(0x或0X开头)表示,例如整数6可以用不同的进制表示为06(八进制),0x6(十六进制),6(十进制)。


浮点型:默认为double类型

  1. float:占四个字节,在内存中占32位,float常量后面必须以f或F结尾。

  2. double:八个字节,在内存中占64位。


布尔类型:

用于表示逻辑上的‘真’或‘假’,数值只能是true和false。


    


数 据 类 型 转 换

      

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

1
自动类型转换(默认转换)
把一个范围小的数值或变量直接赋值给另一个数据范围大的变量时,系统会进行自动类型转换。
   byte a = 50;
   short b = a;
   long c = a;
   float d = a;
这个是没有问题的

自动转换顺序:byte->short->int->long->float->double


2
强制类型转换
将大范围的数据向小范围的数据转换需要强制类型转换

   float a = 500L;
   int c = a;//有错
   int b = (int) a;

不要随意使用强制类型转换,因为强制类型转换的背后是精度丢失的问题。如果大范围的数据值超过了小数据的范围,会按位进行截取。

   int a = 336; // 0000 0000 0000 0000 0000 0001 0101 0000
   byte b = (byte) a; // 8位 截取后8位 0101 0000
   System.out.println(b);// 输出结果为80

更多内容和资源请关注微信公众号“浅谈Java基础”



猜你喜欢

转载自blog.csdn.net/qq_41177827/article/details/81264381