JAVA学习笔记2-基本数据类型与数组

1.标识符与关键字

标识符
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字
Java语言规定
标识符由字母、下划线、美元符号和数字组成,长度不受限制。
标识符的第一个字符不能是数字字符。
标识符不能是关键字。
标识符不能是true、false和null(尽管true、false和null不是关键字)。
关键字
关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用 。
例如:

boolean、byte、short、int、float、double、char、if、else等。

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

2.基本数据类型

有8种基本数据类型:

boolean、byte、short、int、long、float、double、char。

8种基本数据类型习惯上可分为以下四大类型:

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

2.1逻辑类型:

变量:
使用关键字boolean来声明逻辑变量,声明时也可以赋给初值。
常量:

true、false

例如:

   boolean x,ok=true,关闭=false;

2.2整数类型:

int 型

变量:
使用关键字int来声明int型变量,声明时也可以赋给初值.

例如: int x= 12,平均=9898,jiafei;

常量:

int型常量共有三种表示方法:

十进制: 123,6000(十进制)
八进制: 077(八进制,是零开头);
十六进制: 0x3ABC(十六进制)
对于int型变量,内存分配给4个字节(byte),占32位.

byte 型

变量:
使用关键字byte来声明byte 型变量.

例如: byte x= -12, tom=28, 漂亮=98;

常量:
一定范围内的int型常量赋值给byte型变量.
对于byte型内存分配给1个字节,占8位 .

short 型

变量:
使用关键字short来声明short型变量。

例如: short x=12,y=1234;

常量:
和byte型类似,Java中也不存在short型常量的表示法,但可以把一定范围内的int型常量赋值给short型变量。
对于short型变量,内存分配给2个字节,占16位.

long 型

变量:
使用关键字long来声明long型变量。
常量:
long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、 0x3ABCL(十六进制) 。
例如:

long width=12L,height=2005L,length;

对于long型变量,内存分配给8个字节,占64位。

2.3字符类型:

char类型

常量:
‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用单引号扩起的Unicode表中的一个字符。
变量:
使用关键字char来声明char型变量,对于char型变量,内存分配给2个字节,占16位
例如:

char ch=‘A’,home=‘家’,handsome=‘酷’;

转意字符常量:

有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量,

例如:

\n(换行), \b(退格),\t(水平制表),\‘(单引号), \“(双引号),\(反斜线)等。

!!!Java语言使用Unicode标准字符集,最多可以识别65536个字符

2.4浮点类型

float型

常量:
453.54F(小数表示法),2e40f(2乘10的40次方,指数表示法).
变量:
使用关键字float来声明float型变量,

例如:float x=22.76f,tom=1234.987f,weight=1e-12F;

精度:
float变量在存储时保留8位有效数字。
对于float型变量,内存分配给4个字节,占32位。
!!!需要特别注意的是float常量后面必须要有后缀f或F。

double 型

常量:
238.539d,231.987(小数表示法),1e-90(1乘10的-90次方,指数表示法).对于double常量,后缀有“d”或“D”,但允许省略后缀.
变量:
使用关键字double来声明double型变量,

例如:double height=23.345,width=34.56D,length=1e12;

对于double型变量,内存分配给8个字节,占64位 。
精度:
double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。

!!!特别注意
一个具有小数部分的数据的缺省类型是double而不是float。所以float常量后面必须要有后缀“f”或“F”。

3.类型转换运算

Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:

byte、short 、char 、 int、 long、 float、 double

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

例如:float x=100;

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

例如:int x=(int)34.89;

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

例如: byte b=128;(error) byte b=(byte)128(ok)

4.输入、输出数据

4.1输入基本型数据

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

Scanner reader=new Scanner(System.in);

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

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

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

4.2输出基本型数据

java使用System类中的方法实现数据输出

例如:System.out.println()或System.out.print()输出串值,表达式的值。

二者的区别是前者输出数据后换行,后者不换行。如:

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

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

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

JDK1.5新增了和C语言中printf函数类似的输出数据的方法,格式如下:
System.out.printf(“格式控制部分”,表达式1,表达式2,…表达式n)
格式控制部分由格式控制符号:
%d、%c、%f、%s和普通的字符组成,普通字符原样输出。

格式符号用来输出表达式的值。

  • [1] %d输出int类型数据值;
  • [2] %c输出char型数据;
  • [3] %f输出浮点型数据,小数部分最多保留6位;
  • [4] %s输出字符串数据。

输出数据时也可以控制数据在命令行的位置,
例如:
%md输出的int型数据占m列;
%m.nf输出的浮点型数据占m列,小数点保留n位。
例如:System.out.printf("%d,%f",12, 23.78);

5.数组

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

5.1声明数组

  • [1 ] 声明一维数组有下列两种格式:
    数组的元素类型 数组名[];
    数组的元素类型 [] 数组名;
    例如:
    float boy[];
    char [] cat;
  • [ 2] 声明二维数组有下列两种格式:
    数组的元素类型 数组名[][];
    数组的元素类型 [][] 数组名;
    例如:
    float a[][];
    Char [][] b;

5.2数组分配元素空间

为数组分配元素的格式如下:

数组名 = new 数组元素的类型[数组元素的个数];
例如: boy = new float[4];

说明:
数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组变量的名字加索引使用数组的元素.
比如:

boy[0] = 12;
boy[1] = 23.908F;
boy[2] = 100;
boy[3] =
10.23f;

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

5.3数组元素的使用

数组元素的使用
一维数组通过索引(下标运算)符访问自己的元素。如:boy[0],boy[1]等.
需要注意的是索引从0开始,因此,数组若有4个元素,那么索引到3为止,如果程序使用了如下语句:
boy[4] = 384.98f;
程序可以编译通过,但运行时将发生ArrayIndexOutOfBoundsException
异常,因此在使用数组时必须谨慎,防止索引越界。

5.4length的使用

length字段的使用
对于一维数组,“数组名.length”的值就是数组中元素的个数;
对于二维数组“数组名.length”的值是它含有的一维数组的个数
例如:

float boy []=new float[4];
boy.length的值为4.
int [][] a = new int[3][8];
a.length的值是3.
a[0].length的值是8
a[1].length的值是8
a[2].length的值是8

5.5数组的初始化

数组初始化
创建数组后,系统会给数组的每个元素一个默认的值
例如,float型是0.0。
如果需要赋值,就要为每个元素赋值:例如:

float boy []=new float[4];
boy[0] = 12;
boy[1] = 23.908F;
boy[2] = 100;
boy[3] = 10.23f;

在声明数组的同时也可以给数组的元素一个初始值,如:

float boy[] = { 21.3f,23.89f,2.0f,23f,778.98f};

5.6数组的引用

数组的引用
数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。.

!!!重要结论:
数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

对于 int a[] = {1,2,3},b[ ] = {4,5};
数组变量a和b分别存放着引用de6ced和c17164,内存模型如下图所示
在这里插入图片描述
进行赋值a = b; 那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同,a、b的内存模型变成如图2.6所示。
在这里插入图片描述

发布了25 篇原创文章 · 获赞 11 · 访问量 1405

猜你喜欢

转载自blog.csdn.net/z_mawkish/article/details/105310357