Java基本类型介绍

说明: 关于编译环境,安装相应的IDE等相关知识本文不会介绍,请自行百度

标识符和关键字

标识符

定义 : 用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。

语法规则 :
(1) 由字母、下划线、美元符号$、数字构成,长度无限制。
(2) 第一个字符不可以是数字字符。
(3) 不可以是关键字(关键字会在后续说明)。
(4) 不可以是true、false、null这三个字符。
(5) Java为强类型语言,所以严格区分大小写
(6) 使用比ASCII码更广泛的Unicode字符集,所以在(1)中所说的“字母”包含部分简体中文。

关键字

说明 : 关键字就是Java中被赋予特定意义的单词。下面给出部分示例:

abstract; assert; boolean; break; byte; case; catch;  
char; class; const; continue default; do; double; else;  
enum; extends; final; ...  //分号表示间隔
分隔符

1.注释符 :
(1)// 单行注释(以双斜杠开始,终止于行尾,注释一行,可放在语句后面)
(2)/* */ 多行注释( /*开始,*/结束,中间可写多行)
(3)/**开始,*/结束,这种注释主要是为了支持JDK工具javadoc而采用的。

2.空白符 :
空格,回车,换行,制表符tab等。 为增强代码的可读性而建立,系统编译时会忽略它。

3.普通分隔符 :
点号,分号,冒号,大括号,方括号,小括号。因为和C/C++用法相同,此处不再赘述。

基本数据类型

Java语言有八中基本数据类型,习惯上可以分为四大类:

  • 逻辑类型: boolean
  • 整数类型: byte 、short 、int 、long
  • 字符类型: char
  • 浮点类型: float 、double
逻辑类型

常量: true 、false
变量: 使用关键字boolean来声明。

整数类型

十进制用数字1~9开头,八进制用数字0开头,十六机制用0x开头。

因为基本上和C语言差不多,稍微有点编程基础就可以理解,此处就不再赘述。
重点讲一下和C语言不同的地方:
(1)Java中不存在byte和short的常量表示法,但是可以把一定范围内的int型常量赋值给byte或short型变量。
(2)long型常量用后缀L来表示,如108L。
(3)这四个不同的类型区别:只是声明时系统分配予其内存的大小和其所能表示数的范围大小。

整数类型所占字节数所占位数取值范围
int型4 byte32 bit-231~2^31-1
byte型1 byte8 bit-27~27-1
short型2 byte16 bit-215~215-1
long型8 byte64 bit-263~263-1
字符类型

这里的char是相对Unicode来说的,所以 申请时系统分配给两个字节,占16位,最高位不是符号位,没有负数的char。char类型的取值范围是0~65535。

//  情况 1
char x = 'a';
char x = 97;   //两者是等价的,因为97就是a字符在Unicode表当中的位置
//  情况 2 
char ch1 = '\n';
char ch2 = '\"';
char ch3 = '\\';  //有些字符只能通过转义字符进行输入 

说明 : 要观察一个字符在Unicode表中的顺序位置,可以使用int型显式转换,如(int)'a'int p = 'a'。如果要得到一个0~65536的数所代表的Unicode表中相应位置上的字符,需使用char显式转换,示例如下:

public class Test{
    public static void main(String args[]){
        char ch1 = 'w',ch2 = '好';
		int p1 = 32831,p2 = 30452;
		System.out.printIn("\""+ch1+"\"的位置:"+(int)ch1);
		System.out.printIn("\""+ch2+"\"的位置:"+(int)ch2);
		System.out.printIn("第"+p1+"个位置上的字符是:"+(char)p1);
		System.out.printIn("第"+p2+"个位置上的字符是:"+(char)p2);
	}
}

有兴趣的同学可以在自己的编译器下跑跑试试。

浮点类型
float型

(1) float定义常量时,常量后面必须要有后缀f或F。
(2) float变量在存储float类型数据时保留8位有效数字,实际精度取决于具体数值。

double型

保留16位有效数字,实际精度取决于具体数值。其与float的比较如下:

浮点类型所占字节数所占位数取值范围
float型43210-3810<sup>38</sup>和-10<sup>38</sup>10-38
double型864将上面38换成308
基本数据类型的转换
  • 将上述类型按照精度从低到高排序为 byte,short,char,int,long,float,double
  • 当把级别低的变量的值=>级别高的变量时,系统会自动完成数据类型的转换。
  • 当把级别高的变量的值=>级别低的变量时,需要用到强制转换,即显式类型转换运算,格式为: (类型名)要转换的值
  • 强制转换会造成“精度损失”或“数据溢出”。例如:
float i = 10.1;
double l = i;  //自动转换
byte b = (byte)i;   //强制转换,精度损失 b = 10
byte c = (byte)128; //数据溢出,c = -128

常见错误: 把一个double型常量赋值给float常量时未进行强制转换.
错误示范: float x = 12.4
正确做法: float x = (float)12.4 或者 float x = 12.4f

下面用一段代码总结一下上面所讲的内容:

public class Example{
   public static void main(String args[]){
      int c = 128;
      long d = 77777;
      float f = 2e3f;
      double g = 3.14e-300;    //指数表示法
      double result = f*g;
      System.out.println("f= "+f);
      System.out.println("g= "+g);
      System.out.println("result= "+result);
      g = 1234.12345678;
      c = (int)d;
      f = (float)g;
      System.out.println("c= "+c);
      System.out.println("d= "+d);
      System.out.println("f= "+f);
      System.out.println("g= "+g);
   }
}

运行结果如下:

x1aolin@x1aolin-E402NA:~/桌面$ java Example
f= 2000.0
g= 3.14E-300
result= 6.28E-297
c= 77777
d= 77777
f= 1234.1234
g= 1234.12345678

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值