保姆级|建议收藏阿ken带你学Java入门及进阶——基本数据类型与数组,文末有彩蛋✨✨
Posted 请叫我阿ken
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保姆级|建议收藏阿ken带你学Java入门及进阶——基本数据类型与数组,文末有彩蛋✨✨相关的知识,希望对你有一定的参考价值。
感激相遇,你好,我是阿ken
话不多说,下面我们开始步入正题
🎈叽里库拉传送门
📌标识符与关键字
标识符
用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符,简单地说,标识符就是一个名字。
Unicode 字符集
该字符集由 UNICODE 协会管理并接受其技术上的修改,最多可以识别 65536 个字符。Unicode 字符集的前128个字符刚好是 ASCII 码,其包含了汉语中的汉字、日文的片假名和平假名、朝鲜文、俄文、希腊字母以及其他许多语言中的文字。
关键字
关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用。
📌基本数据类型
基本数据类型也称简单数据类型,Java 语言中共有八种基本数据类型,分别是 boolean、byte、short、char、int、long、float、double。这八种基本数据类型习惯上可分为以下四大类型:逻辑类型(boolean)、整数类型(byte、short、int、long)、字符类型(char)、浮点类型(float、double)
📌字符类型之浮点类型
浮点型分为float(单精度)型和double(双精度)型。
- float 型
表示常量:
453.5439f,21379.987F,231.0f(小数表示法),2e40f(2乘10的40次方,指数表示法)。需要特别注意的是常量后面必须要有后缀f或F。
声明 float 型变量:
float x = 22.76f, tom = 1234.987f, weight = 1e-12F;
float 变量在存储 float 型数据时保留8位有效数字(相对 double 型保留的有效数字,称之为单精度)。例如,x = 12345.123456789f。x存储的实际值是:12345.123。
- double 型
表示常量:
2389.539d,234656.124,0.05(小数表示法),1e-90(1乘10的-90次方,指数表示法)。对于double 常量,后面可以有后缀d或D,但允许省略该后缀。
声明 double 型变量:
double height = 23.345, width = 34.56D, length = 1e12;
double 变量在存储 double 型数据时保留16位有效数字(相对 float 型保留的有效数字,称之为双精度)
需要特别注意的是,比较float型数据与double型数据时必须注意数据的实际精度,例如,对于
float x = 0.4f;
double y = 0.4;
// 实际存储在变量x中的数据是0.4 000 0000 59604645(这里精确到16位)
// 实际存储在变量y中的数据是0.4000000000000000(这里精确到16位)
// 因此, y<x
📌类型转换运算
将部分数据类型按精度从低到高排列:
byte short char int long float double
当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
float x = 100;
// 输出结果:100.0
int x = 50;
float y;
y = x;
// 输出结果:50.0
当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算。
// 格式:
// (类型名)要转换的值;
int x = (int)34.89; // 34
long y = (long)56.98F; // 56
int z = (int)1999L; // 1999
当把一个int型常量赋给一个byte、short和char型变量时,如果超过这些变量取值的范围,必须进行类型转换运算,否则会导致精度的损失。
byte a = (byte)128; // -128
byte b = (byte)(-129); // 127
常见错误 : 把一个 double 型变量赋值给 float 型变量时没有进行类型转换运算,
例如:
float x = 12.4;
正确的做法应是:
float x = 12.4F;
或
float x = (float)12.4;
📌输入、输出数据
输入基本型数据
// 创建对象
Scanner x = new Scanner(System.in);
// 各种基本类型数据
// nextBoolean(), nextByte(), nextShort(), nextInt(), nextLong(), nextFloat(), nextDouble()
// 案例anli
import java.util.Scanner;
public class anli {
public static void main(String []args) {
System.out.println("请输入若干个数,每输入一个数回车确认");
System.out.println("最后输入数字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.println("sum = " + sum);
}
}
输出基本型数据
System.out.println(); // 换行
System.out.print(); // 不换行
System.out.println("nihao"); //
System.out.println("nihao" + "java"); //
另外,JDK 1.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 位。
// anli:
System.out.printf("%d,%f", 12, 23, 78);
📌数组
声明数组
声明数组包括数组变量的名字(即数组名)、数组的类型。
声明一维数组有下列两种格式:
数组的元素类型 数组名[];
数组的元素类型 [] 数组名;
声明二维数组有下列两种格式:
数组的元素类型 数组名 [] [];
数组的元素类型 [] [] 数组名;
// anli:定义一维数组和二维数组
float boy[];
char cat[] [];
也可以一次声明多个数组
int [] a, b;
// 或
int a[], b[];
// 需要特别注意的是,
int [] a, b[];
// 是声明了一个 int 型一维数组a和一个 int 型二维数组b,等价的声明是:
int a [], b [] [];
注意:与 C/C++ 不同,Java不允许在声明数组中的方括号内指定数组元素的个数。若声明 int a [12]; 或 int [12] a; 均会导致语法错误。
为数组分配元素
// 为数组分配元素的格式:
数组名 = new 数组元素的类型[数组元素的个数]
// anli
boy = new float[4];
boy[0] = 12;
boy[1] = 23.908F;
......
// 声明数组和创建数组可以一起完成,例如:
float boy[] = new float[4];
// 二维数组和一维数组一样,在声明之后必须用new运算符为数组分配元素。
int mytwo[] [];
mytwo = new int [3][4];
// 或
int mytwo [] [] = new int[3][4];
Java 声明多维数组,一个二维数组是由若干个一维数组构成的,例如上述创建的二维数组 mytwo 就是由 3 个长度为 4 的一维数组 mytwo[0]、mytwo[1]、mytwo[2]构成的。
// 构成一个二维数组可以分别指定后成该数组的一维数组的长度,例如:
int a [] [] = new int [3] [];
// 上述二维数组a由3个一维数组a[0]、a[1]、a[2]构成,这3个一维数组的长度还欸呦确定,因此要进行以下操作
a[0] = new int[6];
a[1] = new int[12];
a[2] = new int[8];
// 注意: 和C语言不同的是,Java允许使用int型变量指定数组的元素的个数
// 例如:
int size = 30;
double number[] = new double[size];
📌数组元素的使用
一维数组通过索引符访问自己的元素,需要注意的是索引从 0 开始,因此数组若有 7 个元素,那么索引到 6 为止,如果程序使用了如下语句:
boy[7] = 384.98f;
程序也可以编译通过,但是运行时将发生索引越界的报错。
📌length 的使用
数组的元素的个数称作数组的长度。对于一维数组,“数组名.length” 的值即数组中元素的个数;对于二维数组"数组名.length"的值即它含有的一维数组的个数。
// anli:
float a[] = new float[12]; // a.length = 12
float b[] [] = new int[3][6]; // b.length = 3
📌数组的初始化
创建数组后,系统会给数组的每个元素一个默认的值,如 float 型是0.0。
// 在声明数组的同时也可以给数组的元素一个初始值
float boy[] = { 21.3f, 23.89f, 2.0f, 23f, 778.98f };
// 上述相对与:
float boy[] = new float[5];
boy[0] = 21.3f;
boy[1] = .......
boy[4] = 778.98f;
// 也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同
int a[]{ } = {{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}};
📌数组的引用
数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,他们就有完全相同的元素。
int a[] = {1, 2, 3}, b[] = {4, 5};
a = b;
// a、b的类型相同,则可以使用上述赋值语句,且使用后a、b具有完全相同的元素
需要注意一点:对于char型数组a,System.out.println(a)不会输出数组a的引用而是输出数组a的全部元素的值,
char a[] = {'中', '国', '科', '大'};
System.out.println(a);// 中国科大
// 如果想输出char型数组的引用,必须让数组a和字符串做并值运算
System.out.println("" + a);
🌊回馈粉丝
添加下方微信 分享随机两本Java优质电子书
欢迎阅读 我是阿ken
以上是关于保姆级|建议收藏阿ken带你学Java入门及进阶——基本数据类型与数组,文末有彩蛋✨✨的主要内容,如果未能解决你的问题,请参考以下文章
保姆级|建议收藏阿ken带你学Java入门及进阶——基本数据类型与数组,文末有彩蛋✨✨