广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java基础详解之数据类型知识点总结
  • 732
分享到

java基础详解之数据类型知识点总结

2024-04-02 19:04:59 732人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录一、基本数据类型1.1 整形1.1.1 int1.1.2 长整形:long1.1.3 短整形:short1.2 浮点型1.2.1 双精度浮点型:double1.2.2 单精度浮点

一、基本数据类型

1.1 整形

1.1.1 int


int a = Integer.MAX_VALUE;//int最大值
int b = Integer.MIN_VALUE;//int最小值

在java中int占4个字节,和操作系统每任何关系。这也是java的可移植性。

int 能表示的范围为-231~231-1,如果超出最大值或者小于最小值则会发生溢出。


public static void main(String[] args) {
            int a = Integer.MAX_VALUE;//int最大值
            int b = Integer.MIN_VALUE;//int最小值
            System.out.println("MAX_VALUE="+a);
            System.out.println("MIN_VALUE="+b);
            a = a+1;
            b = b-1;
            System.out.println("---------------");
            System.out.println("MAX_VALUE+1="+a);
            System.out.println("MIN_VALUE-1="+b);
}

在这里插入图片描述

我们发现int的最大值加1会等于int的最小值,而int的最小值减1会等于int的最大值。这种情况不仅在int,在long和short都存在

在这里插入图片描述

1.1.2 长整形:long

long占8个字节,可表示的范围是 -263~-263-1


long a = 100L;
long b = 100l;
long c = 100;

在创建长整形变量时,a,b,c三种都可以,当我们一般用第一种,大写L更好识别它时长整形

1.1.3 短整形:short

short占2个字节,所能表示的范围为-215~215-1
short能表示的范围 -32768~32767 ,所表示的范围比较小一般不推荐使用,所以我们以后 int 和 long 时使用的比较多的。

1.2 浮点型

1.2.1 双精度浮点型:double


public static void main(String[] args) {
            int a1 = 1;
            int a2 = 2;
            double b1 = 1.0;
            double b2 = 2.0;
            System.out.println("a1/a2="+a1/a2);
            System.out.println("b1/b2="+b1/b2);
}

在这里插入图片描述

在java当中int除以 int 只能得到 int 类型,因为小数部分会被舍去。如果要得到小数则需要用浮点数来计算。

再来看一个有意思的代码


public static void main(String[] args) {
            double a = 1.1;
            System.out.println(a*a);

}

在这里插入图片描述

这里a*a理论上说时等于1.21的但这里为什么不是呢?

1.Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2n 的形式表示数据范

2.Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势
必会存在一定的精度误差围,而且计算机中小数是没有精确的数字的

1.2.2 单精度浮点型:float

flaot占4个字节


public static void main(String[] args) {
            float a1 = 1.1;
            float a2 = (float)1.1;
            float b = 1.1F;
            float c = 1.1f;
}    

在这里插入图片描述

这里为什么报错呢?因为Java是一个强类型语言,安全性更高。在Java当中小数默认是double类型的,在创建float变量的时候,需要在小数后面加上一个F(f)或者强制类型转换。

不过float能表示的精度较小,所以我们一般都是用double

1.3 字符类型变量char

在java中char不同于C语言它是占两个字节的,计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文.


public static void main(String[] args) {
            char a = 97;
            char b = 65;
            char c = '好';
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
}       

在这里插入图片描述

在Java当中字符类型就是字符类型不要和数字挂钩,记住java中字符类型是不能够给负数的。

在这里插入图片描述

1.4 字节类型变量byte

byte占1个字节,能表示的范围为 -128~127
byte不能赋值超过它范围外的数字,从而可以推到出其它类型也是一样的。

来看一段代码:

在这里插入图片描述

这里的 b3和b5都报错,而b4没有报错呢?

1.这是因为执行 b3 这段代码时,b1和b2都是变量编译器不知道里面是什么,为了安全起见所以报错。

2.而b4不报错时因为在编译的时候 5+10就已经被替换为15了,相当于 b4 = 15.

3.那b5报错又是为什么呢?这里就牵扯到了整形提升,

简单说一下整形提升:当变量小于4个字节的时候,比如这里的byte在计算时会把它先提升为整形int再进行计算。而byte是1个字节接收不了int类型的变量,所以报错。后面会再提到整形提升

1.5 布尔类型变量 boolean


boolean a = false;
boolean b = true;

1.在java中布尔类型只有两个取值 falsetrue

2.java中的boolean和int 类型不能相互转换,不存在1表示true ,0表示false这种用法

3.boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位。并没有明确规定大小

1.6 字符串类型变量 String

Java的字符串可以用+进行拼接


public static void main(String[] args) {
            String str1 = "这是一个字符串";
            String str2 = "java";
            String tmp = str1 + str2;
            System.out.println(tmp);
}

在这里插入图片描述

同样也可以拼接数字


public static void main(String[] args) {
            String str1 = "这是一个字符串";
            String str2 = "java";
            String tmp = str1 + str2;
            System.out.println(tmp);
            int a = 10;
            int b = 20;
            System.out.println(tmp+a+b);
            System.out.println(a+b+tmp);
}

在这里插入图片描述

输出的时候如果前面是字符串则后面的数字会被当作字符进行拼接,可以根据自己的需要进行运算或者拼接

1.Java 使用 双引号 + 若干字符 的方式表示字符串字面值.

2. 和上面的类型不同, String 不是基本类型, 而是引用类型(在以后的文章会说到).

二、常量

上面讨论的都是各种规则的变量, 每种类型的变量也对应着一种相同类型的常量.

常量指的是运行时类型不能发生改变.

常量主要有以下两种体现形式

2.1 字面常量

在这里插入图片描述

2.2 … final 关键字修饰的常量

在这里插入图片描述

final修饰的常量是不能被直接修改的

三、 类型转换和数值转换

3.1 类型转换

java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验.来看一下列子

在这里插入图片描述

long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int.

double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.

结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行.

3.1.1 强制类型转换

在这里插入图片描述

结论: 使用 (类型) 的方式可以将 double 类型强制转成 int. 但是

1.强制类型转换可能会导致精度丢失. 如刚才的例子中, 赋值之后, 20.5 就变成 20 了, 小数点后面的部分被忽略.

2.强制类型转换不是一定能成功, 互不相干的类型之间无法强转

在这里插入图片描述

比如这个列子 int 和 boolean这两种完全不相关的类型是不可以强转的。

类型转换小结:

1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型.
2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失.
3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查.

3.2 数值提升

在这里插入图片描述

结论: 当 int 和 long 混合运算的时候, int 会提升成 long, 得到的结果仍然是 long 类型, 需要使用 long 类型的变量来
接收结果. 如果非要用 int 来接收结果, 就需要使用强制类型转换.

再来看一个例子,前面在byte类型的时候就已经说到了,这里再详细说一下。

在这里插入图片描述

结论: byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这时赋给 c, 就会出现上述错误。

由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int, 再参与计算。
简单来说类型提升就是为了加快cpu运算速度

如果非要这样计算,则需要强转。

类型提升小结:

1.不同类型的数据混合运算, 范围小的会提升成范围大的.

2.对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

四、 int 和 String 之间的相互转换

4.1 int转String


public static void main(String[] args) {
            int a = 10;
            //方法1
            String str1 = 10+" ";
            //方法2
            String str2 = String.valueOf(a);
}

4.2 String转int


public static void main(String[] args) {
            String str = "123456";
            int b = Integer.valueOf(str);
            int c = Integer.parseInt(str);
}

五、总结

在这里插入图片描述

内置数据类型共有8种,每一个内置类型都会对应一个包装类,这里也不深入讲解。简单来说就是方便了数据的处理
感谢阅读!

到此这篇关于Java基础详解之数据类型知识点总结的文章就介绍到这了,更多相关java数据类型总结内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java基础详解之数据类型知识点总结

本文链接: https://www.lsjlt.com/news/124348.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java基础详解之数据类型知识点总结
    目录一、基本数据类型1.1 整形1.1.1 int1.1.2 长整形:long1.1.3 短整形:short1.2 浮点型1.2.1 双精度浮点型:double1.2.2 单精度浮点...
    99+
    2022-11-12
  • java基础之泛型知识点总结
    目录一、什么是泛型?为什么要使用泛型? 二、泛型的特性是什么?三、泛型的使用方式 四、Java中的泛型通配符一、什么是泛型?为什么要使用泛型? 泛型,即“参数化...
    99+
    2022-11-12
  • Python基础之数据类型相关知识总结
    1、字符串 (1)概念 字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数字、汉字、符号都是字符。 字符串可以用...
    99+
    2022-11-12
  • Python基础之数据类型知识汇总
    目录一、数字类型二、字符串类型三、布尔类型四、空类型五、列表类型六、元组类型七、字典类型一、数字类型 1、整型int 就是整数 :100 ,200,2,3,4······· 2、浮点...
    99+
    2022-11-12
  • Python中基础数据类型 set集合知识点总结
    集合的简介 集合是一个无序、不重复的序列 它的基本用法包括成员检测和消除重复元素 集合对象也支持像 联合,交集,差集,对称差分等数学运算 集合中所有的元素放在 {} 中间,并用逗号...
    99+
    2022-06-02
    Python 数据类型 set
  • Java基础之数组超详细知识总结
    目录一、一维数组二、二维数组三、总结一、一维数组 1、Java语言中的数组是一种 引用数据类型。不属于基本数据类型。数组的父类是 Object。 2、数组实际上是一个容器,可以同时容...
    99+
    2022-11-12
  • Java基础之Math和Random类知识总结
    java的Math类 java中的java.lang.Math类可以直接使用,不需要导包,在JDK的API 中看到Math类被final修饰着,那么说明了这个Math类不能被继承,...
    99+
    2022-11-12
  • MySql数据库基础知识点总结
    本文实例讲述了MySql数据库基础知识点。分享给大家供大家参考,具体如下: 数据库基本操作 1)创建数据库 基本语法: create database 数据库名称 ; 创建应该名称为itcas...
    99+
    2022-05-19
    MySql 数据库基础
  • 详解Java泛型(知识点总结)
    概念来源:Java在设计开始之前不是通用的,直到它在JDK 1.5中被引入。Java泛型是通过擦除实现的。你知道什么是擦除吗?往下看。概念:常规类和方法只能使用特定类型;基本类型或自定义类。如果要编写可应用于多种类型代码的代码,这种严格的限...
    99+
    2021-05-06
    java入门 Java 泛型
  • java基础之字符串编码知识点总结
    目录一、为什么要编码二、如何“翻译”三、Java 中需要编码的场景3.1 I/O 操作中存在的编码3.2 内存中操作中的编码四、Java 中如何编解码4.1 按照 ISO-8859-...
    99+
    2022-11-12
  • Java基础之内部类与代理知识总结
    目录一、内部类1.1 创建内部类1.2 内部类调用外部类的变量二、局部内部类2.1 外部方法访问变量三、匿名内部类四、lambda表达式结合局部内部类五、静态内部类六、代理一、内部类...
    99+
    2022-11-12
  • Python基础知识+结构+数据类型
    目录前言一、编程基础1.基本的输入输出2.变量3.基本运算符二、控制流程1.选择结构2.循环结构三、数据类型1.字符串前言 今天给大家分享一些Python的基础知识,想要盖好大房子,...
    99+
    2022-11-11
  • Java基础之MapReduce框架总结与扩展知识点
    目录一、MapTask工作机制二、MapTask工作流程:三、ReduceTask工作机制四、ReduceTask工作流程:五、数据清洗(ETL)六、计数器应用七、计数器案例八、Ma...
    99+
    2022-11-12
  • R语言数据类型知识点总结
    通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息。 变量只是保留值的存储位置。 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们。 您可能想存储各...
    99+
    2022-11-11
  • Java基本知识点之变量和数据类型
    Java中的变量和基本数据类型: 写完第一个java程序之后,我们对Java也有了初步的了解,现在我们再来继续认识一下Java中的基本知识点——变量和数据类型。 那么我们该怎样来认识...
    99+
    2022-11-12
  • Python基础之数据类型知识有哪些
    这篇文章给大家分享的是有关Python基础之数据类型知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数字类型1、整型int就是整数 :100 ,200,2,3,4·······2、浮点型 float小...
    99+
    2023-06-15
  • Java常见知识点汇总(①)——数据类型
    一. Java中的数据类型变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量,可以在内存中储存整数、小数...
    99+
    2023-06-05
  • Python基础之数据类型详解
    目录一、整数二、浮点数三、复数四、运算符,优先级以及结合性五、混合类型计算六、除法七、十进制,八进制,十六进制和二进制八、位操作九、集合十、布尔类型十一、其他数值类型一、整数 pyt...
    99+
    2022-11-12
  • javascript基础之数据类型详解
    目录1.数据类型1.1 为什么需要数据类型1.2 变量的数据类型1.3 数据类型分类2. 简单数据类型(基本数据类型)2.1 数字型Number1. 数字型进制2.数字型范围2.2 ...
    99+
    2022-11-12
  • Java基础之详解基本数据类型的使用
    一、整型 主要扩展一下不同进制的整型 二进制、八进制、十进制、十六进制 * 二进制 : 0B(数字零+B) 0b(数字零+b) * 八进制 :0(数字零开头) * 十进制 :正常写...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作