Java详解数据类型的定义与使用

作者:Tangable22 时间:2023-09-29 01:35:20 

标识符和关键字

标识符

读音 biao zhi fu

什么是标识符

包、类、变量、方法…等等,只要是起名的地方,那个名字就是标识符

标识符的定义规则

四个可以:可以是数字、字母、下划线(_)、美元符号($),我们一般起名尽量使用英文字母。

两个不可以:不可以以数字开头,不可以使用java中的关键字。

见名知意:使读者能通过名字就能明白是干什么的,比如:冒泡排序(bubble_Sort),我们就能清楚的知道这个方法是冒泡排序。

驼峰命名:

  • 类名:首字母大写,其余遵循驼峰命名

  • 方法名/变量名:首字母小写,其余遵守驼峰命名

  • 包名:全部小写

长度限制:长度没有限制,但是不建议太长

关键字

  • 被Java语言赋予了特殊含义,用作专门用途的单词

  • 特点:Java中所有的关键字都为小写

官网:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

Java详解数据类型的定义与使用

Java详解数据类型的定义与使用

常量和变量

常量

常量分为两种:

常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。

在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。

为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量(字符常量)。

字面常量的类型:

整型常量: 123 23

实型常量: 3.1415926

字符常量: ‘a’ ‘b’

逻辑常量: true false

字符串常量: “helloworld”

注意:逻辑常量就两个值,一个是true,一个是false

变量

变量本质上就是代表一个可操作的存储空间,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问对应的存储空间”,从而操纵这个存储空间存储的值。

Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。

变量的声明格式

数据类型  变量名 = 初始值, 变量名 = 初始值 …;

例如:

public class TestCode01{
       public static void main(String[] args){
           int a=3,b=4,c=5;
           //也可以先定义不赋值
           int a,b,c;                        
       }
}

变量的声明

  • 如果你只定义一个变量,没有给变量进行赋值的话,那么其实这个变量相当于没有定义;

  • 变量如果没有进行赋值的话,那么使用的时候会出错,告诉你:尚未初始化变量;

public class TestCode01{
       public static void main(String[] args){
           int a;
           System.out.println(a);//会报错,未初始化变量a
       }
}

变量的赋值

int a=10;//直接定义并赋值
int b;//先定义在赋值
b=20;

变量不可以重复定义

Java详解数据类型的定义与使用

基本数据类型

整数类型

整型数据类型:

Java详解数据类型的定义与使用

下面以代码为例:

public class TestCode01{
       public static void main(String[] args){
               //定义整数类型的变量:
               //给变量赋值的时候,值可以为不同进制的:
               int num1 = 12 ;//默认情况下赋值就是十进制的情况
               System.out.println(num1);
               int num2 = 012;//前面加上0,这个值就是八进制的
               System.out.println(num2);
               int num3 = 0x12;//前面加上0x或者0X,这个值就是十六进制的
               System.out.println(num3);
               int num4 = 0b10;//前面加上0x或者0B,这个值就是二进制的
               System.out.println(num4);

//定义byte类型的变量:
               byte b = 126;//定义了一个byte类型的变量,名字叫b,赋值为12
               System.out.println(b);
               //注意:超范围的赋值会报错。
               short s = 30000;
               System.out.println(s);
               int i = 1234;
               System.out.println(i);
               //整数类型默认就是int类型的,所以12345678910是一个int类型的数,对于int类型来说,它超出范围了
               //要想把一个数给long类型变量,那么后面加上L(推荐)或者l就可以了
               long num5 = 12345678910L;
               System.out.println(num5);
               //注意:只有这个数超出int类型的范围了后面才需要加上L,否则无需加L也可以赋值给long类型:
               long num6 = 12;
               System.out.println(num6);

}
}

浮点类型

浮点类型常量

(1)十进制数形式,例如: 3.14 314.0 0.314

(2)科学记数法形式,例如:

//314e2      314E2 (E的大小写没有区分)    314E-2
double  f = 314e2;   //31410^2-->31400.0
double  f2 = 314e-2; //31410^(-2)-->3.14

浮点类型变量

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。

而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。

也可以在浮点数值后添加后缀D或者d, 以明确其为double类型。

Java详解数据类型的定义与使用

PS:有效数字指的是从左开始第一个不为0的数到最后一个数

public class TestCode02{
       public static void main(String[] args){
               //浮点类型的常量有两种形式:
               //十进制形式:
               double num1 = 3.14;
               System.out.println(num1);
               //科学计数法形式:
               double num2 = 314E-2;
               System.out.println(num2);

//浮点类型的变量:
               //注意:浮点型默认是double类型的,要想将一个double类型的数赋给float类型,必须后面加上F或者f
               float f1 = 3.14234567898623F;
               System.out.println(f1);
               //注意:double类型后面可以加D或者d,但是一般我们都省略不写
               double d1 = 3.14234567898623D;
               System.out.println(d1);

//注意:我们最好不要进行浮点类型的比较:
               float f2 = 0.3F;
               double d2 = 0.3;
               System.out.println(f2==d2);
               /*
               区别:
               = 赋值运算:  将等号右侧的值赋给等号左侧
               == 判断==左右两侧的值是否相等  :结果要么相等 要么不相等
               ==运算符的结果就是要么是true,要么是false
               */

}
}

字符类型

字符型

Java的字符使用16位的Unicode编码表示,而计算机语言通常使用ASCII码,用8位表示一个字符。

字符型是用两个单引号括起来的一个字符,如’a’,’1’,’A’等。其中,’a’和’A’分别表示ASCII码中的字符a和A,而’1’表示字符型1,而不是整数的数值1。除了一般字符外,Java还定义了一些特殊字符,如图:

Java详解数据类型的定义与使用

字符型除了常数值的表示方式与整数型不同外,在其他方面几乎可以将它视为一般整数来处理。

字符串型

字符串是指括在两个双引号之间0个或多个字符组成的序列。若两个双引号之间没有任何字符,则为空串。下面是有关字符串的一些例子:

""
"hello world!"
"hello java"

Java语言把字符串当作String类型的一个对象来处理。

布尔类型

boolean类型有两个常量值,truefalse,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

public class TestCode03{
       public static void main(String[] args){
               //创建一个布尔类型的变量:
               boolean flag1 = true;
               System.out.println(flag1);
               boolean flag2 = false;
               System.out.println(flag2);
               boolean flag3 = 5==9;
               System.out.println(flag3);
               boolean flag4 = 5<9;
               System.out.println(flag4);
       }
}

基本数据类型的转换

自动类型转换

即精度小的类型自动转换为精度大的数据类型

数据类型按精度大小排序为:

Java详解数据类型的定义与使用

在类型转换的时候需要遵循哪些规则:

第一条:八种基本数据类型中,除boolean 类型不能转换,剩下七种类型之间都可以进行转换;

第二条:小容量向大容量转换称为自动类型转换,大容量转换小容量必须使用强制类型转,但运行时可能出现精度损失,谨慎使用

第三条:byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;

第四条:整数的默认类型是 int,小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。

第五条:浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入

当一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后其余的类型都转换为当前表达式中级别最高的类型进行计算。

double d2 = 12+1294L+8.5F+3.81+'a';//都转换成最高的double类型,相当于= 12.0+1294.0+8.5+3.81+97.0

强制类型转换

把精度大的数据类型的数据赋值给精度小的数据类型。

double b=3.1415926;
int a=(int)b;//强制转换  高-->低

在进行运算的时候:

左=右 : 直接赋值

左<右 :强转

左>右 :直接自动转换

来源:https://blog.csdn.net/weixin_47383392/article/details/124094363

标签:Java,数据类型,定义
0
投稿

猜你喜欢

  • Spring Boot常用注解(经典干货)

    2023-11-24 22:29:10
  • Android中打电话的数据流程分析

    2022-07-11 17:00:15
  • java中实现分页的几种常见方式总结

    2021-12-24 13:32:49
  • spring hibernate实现动态替换表名(分表)的方法

    2022-06-10 14:20:03
  • java实现文件重命名的方法

    2022-11-06 05:42:25
  • Android Studio 3.0的下载安装教程

    2021-08-10 04:00:45
  • RxJava+Retrofit+OkHttp实现多文件下载之断点续传

    2023-07-19 22:32:35
  • C语言数据结构之二叉树详解

    2021-08-18 20:56:41
  • mybatis plus使用redis作为二级缓存的方法

    2023-11-19 08:34:58
  • Android Activity 横竖屏切换的生命周期

    2021-08-12 23:48:23
  • Java Boolean 初始化方式详解

    2021-10-09 15:20:07
  • Android中AlertDilog显示简单和复杂列表的方法

    2022-11-22 16:32:35
  • C#权限管理和设计浅谈

    2023-10-09 07:14:45
  • C# Color.FromArgb()及系统颜色对照表一览

    2021-05-24 08:21:02
  • Java数据结构之图的路径查找算法详解

    2023-03-27 03:47:11
  • 使用Java实现简单串口通信

    2022-07-27 14:48:52
  • 详解android是如何管理内存的

    2022-02-08 03:37:22
  • 跨域解决方案Jsonp原理解析

    2023-11-07 18:48:05
  • Hibernate多对一单项关联

    2023-05-10 18:16:11
  • 最近较流行的效果 Android自定义View实现倾斜列表/图片

    2021-09-06 03:56:51
  • asp之家 软件编程 m.aspxhome.com