【java程序设计期末复习】chapter2 基本数据类型与数组

基本数据类型与数组

一,标识符和关键字

标识符

定义
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字 。

性质
(1)标识符由字母、下划线、美元符号和数字组成,长度不受限制。
(2)标识符的第一个字符不能是数字字符。
(3)标识符不能是关键字。
(4)标识符不能是true、false和null(尽管true、false和null不是关键字)。

true,false,null应表示常量

关键字

定义
关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用。

例如: booleanbyteshortintfloatdoublecharifelse等。  

性质
关键字都是小写的。遇到大写肯定不是关键字。

二,八大基本数据类型

逻辑类型:boolean (true/false)
整数类型:byte、short、int、long
字符类型:char
浮点类型:float、double

区别

boolean:true/false
int:4个字节——32位
byte:1个字节——8位
short:2个字节——26位
long:8个字节——64位
char:2个字节——16位
float:4个字节——32位
double:8个字节——64位

需要特别注意的是float常量后面必须要有后缀f或F。如:float x=22.76f

类型转换

精度从低向高排序:byte short char int long float double

规则
(1)当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。

例如:float x=100;

(2)当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;

例如:int x=(int)34.89;//高精度向低精度转化会存在精度损失

(3)当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否则必须进行类型转换运算;

public class Example2_2 { 
   public static void main (String args[]) {
      byte b = 22; 
      int  n = 129;  
      float f =123456.6789f ;
      double d=123456789.123456789;
      System.out.println("b=  "+b);   
      System.out.println("n=  "+n);
      System.out.printf("f=%-30.12f\n",f);    
      System.out.printf("d=%-30.12f\n",d);  
      b=(byte)n;    //导致精度的损失.
      f=(float)d;   //导致精度的损失
      System.out.printf("b=%d\n",b);   
      System.out.printf("f=%-30.12f  ",f); 
   }
}

运行结果:
在这里插入图片描述

三,数据的输入输出

输入基本型数据

可以使用Scanner类创建一个对象:

Scanner reader = new Scanner(System.in);  

其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:

nextBoolean()nextByte()nextShort()nextInt()nextLong()nextFloat()nextDouble()

上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。

import java.util.Scanner;
public class Example2_3 {
    public static void main (String args[ ]){
        System.out.println("用空格或回车做分隔,输入若干个数\n"+
                           "最后输入数字0,回车结束输入操作");
        Scanner reader=new Scanner(System.in);
        double sum=0;
        double x = reader.nextDouble();
        while(x!=0){
           sum=sum+x;
           x=reader.nextDouble();
        }
        System.out.printf("sum=%10.5f\n",sum);
    }
}

输出基本型数据

(1)java使用System类中的方法实现数据输出
例如:System.out.println()或System.out.print()输出串值,表达式的值。二者的区别是前者输出数据后换行,后者不换行。如:

System.out.println(m+"个数的和为"+sum);
System.out.println(":"+123+"大于"+122);

如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:“+”将它们首尾相接,

例如:System.out.println("你好,"+
                                     "很高兴认识你" ); 

(2)JDK1.5新增了和C语言中printf函数类似的输出数据的方法,格式如下:

System.out.printf("格式控制部分",表达式1,表达式2,…表达式n)

格式控制部分由格式控制符号:%d、%c、%f、%s和普通的字符组成,普通字符原样输出。格式符号用来输出表达式的值。
%d输出int类型数据值;%c输出char型数据;%f输出浮点型数据,小数部分最多保留6位;%s输出字符串数据。
输出数据时也可以控制数据在命令行的位置,例如:%md输出的int型数据占m列;%m.nf输出的浮点型数据占m列,小数点保留n位。

例如:System.out.printf("%d,%f",12, 23.78); 

四,数组

定义: 数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据。下标从0开始排序。

数组的声明

(1)声明一维数组有下列两种格式:
数组的元素类型 数组名[];
数组的元素类型 [] 数组名;

float boy[];
char [] cat;

(2)声明二维数组有下列两种格式:
数组的元素类型 数组名[][];
数组的元素类型 [][] 数组名;

float a[][];
Char [][] b;

数组的分配空间:new

//数组的声明和分配空间可以在声明时同时完成:、
float boy  []=new float[4];

数组元素的使用

数组越界时程序可以编译通过,但运行时将发生

ArrayIndexOutOfBoundsException

数组的引用

数组是引用性数据类型

public class Example2_4 {
   public static void main(String args[]) {
      int a[]={1,2,3,4};
      int b[]={100,200,300};
      System.out.println("数组a的元素个数="+a.length);
      System.out.println("数组b的元素个数="+b.length);
      System.out.println("数组a的引用(带前缀信息)"+a);
      System.out.println("数组b的引用(带前缀信息)"+b);
      System.out.println(a==b);
      int address  = System.identityHashCode(a);
      System.out.printf("数组a的引用%x\n",address);
      address  = System.identityHashCode(b);
      System.out.printf("数组b的引用%x\n",address);
      System.out.println("将b的值赋值给a");
      a=b; //将b的值赋值给a
      address  = System.identityHashCode(a);
      System.out.printf("数组a的引用%x\n",address);
      address  = System.identityHashCode(b);
      System.out.printf("数组b的引用%x\n",address);
      System.out.println(a==b);
      System.out.println("数组a的元素个数="+a.length);
      System.out.println("数组b的元素个数="+b.length);
      System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
      System.out.print("b[0]="+b[0]+",b[1]="+b[1]+",b[2]="+b[2]);
   }
} 

运行结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值