保姆级|建议收藏阿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入门及进阶——基本数据类型与数组,文末有彩蛋✨✨

保姆级|建议收藏阿ken带你学Java入门及进阶——基本数据类型与数组,文末有彩蛋鸭✨✨✨

保姆级入门系列阿ken教你学 Python ——函数

保姆级入门系列阿ken教你学Python ——组合数据类型

保姆级入门系列阿ken教你学Python ——流程控制

保姆级入门系列阿ken的 Python学习笔记数字类型和字符串