【保姆级|建议收藏】阿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

  • 147
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 109
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我阿ken

观众老爷要是看的开心还请支持下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值