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

目录
  • 标识符和关键字
    • 标识符
      • 什么是标识符
      • 标识符的定义规则
    • 关键字
  • 常量和变量
    • 常量
    • 变量
      • 变量的声明格式
      • 变量的声明
  • 基本数据类型
    • 整数类型
    • 浮点类型
      • 浮点类型常量
      • 浮点类型变量
    • 字符类型
      • 字符型
      • 字符串型
    • 布尔类型
    • 基本数据类型的转换
      • 自动类型转换
      • 强制类型转换

标识符和关键字

标识符

读音 biao zhi fu

什么是标识符

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

标识符的定义规则

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

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

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

驼峰命名:

  • 类名:首字母大写,其余遵循驼峰命名
  • 方法名/变量名:首字母小写,其余遵守驼峰命名
  • 包名:全部小写

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

关键字

  • 被Java语言赋予了特殊含义,用作专门用途的单词
  • 特点:Java中所有的关键字都为小写

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

常量和变量

常量

常量分为两种:

常量通常指的是一个固定的值,例如: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;

变量不可以重复定义

基本数据类型

整数类型

整型数据类型:

下面以代码为例:

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类型。

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还定义了一些特殊字符,如图:

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

字符串型

字符串是指括在两个双引号之间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);
        }
}

基本数据类型的转换

自动类型转换

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

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

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

第一条:八种基本数据类型中,除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;//强制转换  高-->低

在进行运算的时候:

左=右 : 直接赋值

左<右 :强转

左>右 :直接自动转换

到此这篇关于Java详解数据类型的定义与使用的文章就介绍到这了,更多相关Java 数据类型内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java基础-Java基本数据类型

    目录 1 前言 2 布尔类型 3 字符类型 4 值类型 4.1 byte 4.2 short 4.3 int 4.4 long 4.5 float 4.6 double 5 码农来洞见 5.1 类型转换 5.2 存储空间 1 前言 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不同类型的变量,可以在内存中储存整数.小数或者字符. Java支持八种基本数据类型,包括一种布

  • Java基本数据类型族谱与易错点梳理解析

    目录 1.八大基本数据类型族谱 2.八大类型细节解析 1.byte 2.short 3.int 4.long 5.char 6.float 7.double 8.boolean 3.小剧场解答 问答小剧场 以下会产生信息丢失的类型转换是( ) A.float a=10; B.int a =(int)8846.0; C.byte a=10:int b=-a D.double d=100 可直接跳转至结尾看答案加解析 1.八大基本数据类型族谱 Java的八大基本数据类型包括——byte.char.s

  • Java中的八种基本数据类型详解

    目录 一.八种基本数据类型常识 基本常识表 详解二.直接量与类型转换 2.1.直接量 2.2.类型转换 1.自动转换:低类型的向高类型的转换 2.强制转换:高类型的向底类型转换,但可能会数据溢出或者精度丢失 三.对应包装类及使用 3.1.基本介绍 3.2.常用方法一:静态方法 valueOf() 3.3.常用方法二:静态方法parseXXX(String str) 3.4.常用方法二:非静态方法XXXValue() 3.5.自动拆箱与装箱 3.6.关于valueOf()方法源码研究 四.相关面试

  • java中基本数据类型与Object的关系说明

    目录 基本数据类型与Object的关系 这里举一个例子 Object.基本数据类型的包装类 Object类 基本数据类型 基本数据类型与Object的关系 我知道大家是不是都听说过Object是所有类型的基类,但是这句话其实并不是正确的,因为java中基本数据类型跟Object是没有任何关系的. 这里举一个例子 这里在进行调用swap方法时,是不能直接将int类型传给swap(Object obj)方法的,因为Object其实跟基本数据类型没有一点关系,这个时候a就发现我们类型不匹配, 所以就自

  • Java中的复合数据类型

    目录 1.Java字符串 2.Java中的包装类 3.Java容器 ArrayList HashSet HashMap 4.工具类 Stack Queue 1.Java字符串 在 Java 中字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中,默认情况下该包自动导入. String对象创建后不会被修改,当我们修改某个字符串对象实际上是将原引用指向了新创建的内存空间.并且相同的字符串常量Java不会分配两个内存空间,而是将两个引用指向相同的空间. publ

  • 初识Java一些常见的数据类型

    目录 1.Java是什么 2.为什么总有人说Java是最好的语言 3.一个简单的main函数 4.运行Java程序 5.Java书写 注意问题 6.数据类型与运算符 6.1变量和类型 6.2 整型变量(重点) 6.3长整型变量 6.4双精度浮点型变量 6.5单精度浮点型变量 6.6字符类型变量 6.7字节类型变量 6.8短整型变量 1.Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义,不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个

  • Java中常用数据类型的输入输出详解

    目录 1.Char型 1.1  输入格式: 1.2  举例说明 2.int型 1.1  简单的int格式输入: 1.2  举例说明 2.1带空格的int格式输入 : 2.2  举例说明 3.1  复杂int格式的输入 3.2  举例说明 3.double型 4.多次输入 1.1  输入格式 1.2  举例说明 5.数组 1.1  数组输入格式: 2.1  数组转换成字符串 6.字符串 1.1  字符串转换成整型,浮点型(以整型为例) 1.2  整型,浮点型转换成字符串 2.1  字符串转换成字符

  • 聊聊java中引用数据类型有哪些

    目录 java中引用数据类型有哪些 下面说说java中引用数据类型: 一.类Class引用 二.接口interface引用 三.数组引用 数组的定义 数组的初始化 初始化数组的两种方式: 为什么Java里有基本数据类型和引用数据类型? java中引用数据类型有哪些 Java中有俩种数据类型,其中主要有8中基本数据类型和引用数据类型,除了8中基本数据类型以外都是引用数据类型,8中基本数据类型分别是byte,short,int,long,char,boolean,float,double,具体如下:

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

    目录 标识符和关键字 标识符 什么是标识符 标识符的定义规则 关键字 常量和变量 常量 变量 变量的声明格式 变量的声明 基本数据类型 整数类型 浮点类型 浮点类型常量 浮点类型变量 字符类型 字符型 字符串型 布尔类型 基本数据类型的转换 自动类型转换 强制类型转换 标识符和关键字 标识符 读音 biao zhi fu 什么是标识符 包.类.变量.方法…等等,只要是起名的地方,那个名字就是标识符 标识符的定义规则 四个可以:可以是数字.字母.下划线(_).美元符号($),我们一般起名尽量使用英

  • 详解Spring data 定义默认时间与日期的实例

    详解Spring data 定义默认时间与日期的实例 前言: 需求是这样的: 1. 创建时间与更新时间只能由数据库产生,不允许在实体类中产生,因为每个节点的时间/时区不一定一直.另外防止人为插入自定义时间时间. 2. 插入记录的时候创建默认时间,创建时间不能为空,时间一旦插入不允许日后在实体类中修改. 3. 记录创建后更新日志字段为默认为 null 表示该记录没有被修改过.一旦数据被修改,修改日期字段将记录下最后的修改时间. 4. 甚至你可以通过触发器实现一个history 表,用来记录数据的历

  • java 详解类加载器的双亲委派及打破双亲委派

    java 详解类加载器的双亲委派及打破双亲委派 一般的场景中使用Java默认的类加载器即可,但有时为了达到某种目的又不得不实现自己的类加载器,例如为了达到类库的互相隔离,例如为了达到热部署重加载功能.这时就需要自己定义类加载器,每个类加载器加载各自的类库资源,以此达到资源隔离效果.在对资源的加载上可以沿用双亲委派机制,也可以打破双亲委派机制. 一.沿用双亲委派机制自定义类加载器很简单,只需继承ClassLoader类并重写findClass方法即可.如下例子: ①先定义一个待加载的类Test,它

  • Java 详解单向加密--MD5、SHA和HMAC及简单实现实例

    Java 详解单向加密--MD5.SHA和HMAC及简单实现实例 概要: MD5.SHA.HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法. MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.MD5是输入不定长度信息,输出固定长度128-bits的算法. MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何

  • Java详解线上内存暴涨问题定位和解决方案

    前因: 因为REST规范,定义资源获取接口使用GET请求,参数拼接在url上. 如果按上述定义,当参数过长,超过tomcat默认配置 max-http-header-size :8kb 会报一下错误信息: Request header is too large 可以修改springboot配置,调整请求头大小 server: max-http-header-size: xxx 后果: 如果max-http-header-size设置过大,会导致接口吞吐下降,jvm oom,内存泄漏. 因为tom

  • Java 详解分析链表的中间节点

    目录 1.题目描述 2.解法 3.复杂度 1.题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 题目来源:力扣(LeetCode) 2.解法 定义一个快指针 fast 和一个慢指针 slow :fast 走两步, slow 走一步,当 fas t走到尽头时, slow 就刚好在中间节点.因为 fast 比slow 多走一半路程 class Solution { public ListNode middleNode(ListNod

  • Java 详解包装类Integer与int有哪些共通和不同

    目录 1.包装类型是什么? 2.基本类型和包装类型有什么区别? 3.解释一下自动装箱和自动拆箱? 4.int 和 Integer 有什么区别? 5.两个new生成的Integer变量的对比 6.Integer变量和int变量的对比 7.非new生成的Integer变量和new Integer()生成变量的对比 8.两个非new生成的Integer对象的对比 1.包装类型是什么? Java 为每一个基本数据类型都引入了对应的包装类型,int 的包装类就是 Integer,从 Java 5 开始引入

  • Java详解聊天窗口的创建流程

    目录 Swing组件 JPanel JScrollPane JScrollPane的常用构造方法 JScrollPane的方法 如何向容器中添加按钮 文本组件 文本组件的常用方法 文本框(JTextField) 文本域(JTextArea) 聊天窗口示例 小结 Swing组件 JPanel JPanel和AWT中的Panel组件使用方法基本一致,是一个无边框,不能被移动,放大,缩小,或者关闭面板,它的默认布局管理器是FlowLayout,也可以用JPanel带参数的构造函数JPanel(Layo

  • Java详解表格的创建与使用流程

    目录 Java 的表格 JTable的构造函数 表格的创建 小结 Java 的表格 表格是一个由多行,多列组成的二维显示区.Swing的JTable以及相关类提供了对这种表格的支持,程序既可以使用简单的代码创建出表格来显示二维数据,也可以开发出功能丰富的表格,还可以为表格制定各种显示外观,编辑特性. JTable的构造函数 方法描述 功能说明 JTable() 建立一个新的JTable,并使用系统默认的Model JTable(int numRows,int numColumns) 建立一个具有

  • Java详解多线程协作作业之信号同步

    目录 一.信号同步 二.基于时间维度 1.CountDownLatch 2.CyclicBarrier 三.基于信号维度 一.信号同步 多线程很多时候是协作作业.比如4个线程对电商数据分季度统计,统计完成之后,再汇总.如何知道4个线程都执行完成呢,我们可以使用JDK1.5给我们提供的辅助类CountDownLatch( 减少计数).CyclicBarrier(循环栅栏).Semaphore(信号灯). 二.基于时间维度 1.CountDownLatch 多少个协作线程就初始化CountDownL

随机推荐