我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

一、基本数据类型

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数据类型总结内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

Python中基础数据类型 set集合知识点总结

集合的简介集合是一个无序、不重复的序列它的基本用法包括成员检测和消除重复元素集合对象也支持像 联合,交集,差集,对称差分等数学运算集合中所有的元素放在 {} 中间,并用逗号分开集合的例子 这里会有个重点知识# 声明 basket = {'a
2022-06-02

MySql数据库基础知识点总结

本文实例讲述了MySql数据库基础知识点。分享给大家供大家参考,具体如下:数据库基本操作1)创建数据库基本语法: create database 数据库名称 ;创建应该名称为itcast的数据库。sql语法如下:``create datab
2022-05-19

详解Java泛型(知识点总结)

概念来源:Java在设计开始之前不是通用的,直到它在JDK 1.5中被引入。Java泛型是通过擦除实现的。你知道什么是擦除吗?往下看。概念:常规类和方法只能使用特定类型;基本类型或自定义类。如果要编写可应用于多种类型代码的代码,这种严格的限制将对代码施加很大的
详解Java泛型(知识点总结)
2021-05-06

Java常见知识点汇总(①)——数据类型

一. Java中的数据类型变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量,可以在内存中储存整数、小数
2023-06-05

Python基础之数据类型知识有哪些

这篇文章给大家分享的是有关Python基础之数据类型知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数字类型1、整型int就是整数 :100 ,200,2,3,4·······2、浮点型 float小
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录