Java四类八项基本数据类型
一、 四类八项基本数据类型

1、 整数类型(byte、short、int、long)

三点注意事项:
a、 Java各整数类型有固定的表示范围和字段长度,其不收操作系统的影响,以保持Java的可移植性
b、 Java整形常量有三种表示方法:
*十进制,正常表示 如33,424;
*八进制,以0开头,如022;
*十六进制,以0X开头,如0X32等;
c、 Java的整形变量默认为int类型,申明long类型的可以在数值后面加L,比如:int i = 234;//正确 long l = 9999999999999999999999999L;//不加L则错误;

2、 浮点类型(double、float)

a、 Java各浮点类型有固定的表示范围和字段长度,其不受操作系统的影响,以保证Java的可移植性
b、 Java浮点型常量有两种表示方法:
*十进制表示,如2.2,35.66
*科学计数法形式,如3.14E2,3.14e2,3.14e-2;
c、 Java浮点类型常量默认为double型,申明float类型可以在数值后面加F,比如:double d = 2.22;//正确 float f = 3.1415926F;

3、 文本型(char)
a、 字符常量是用但信号引起来的单个字符。比如:char test1 = 'B';char test2 = '汉';
b、 Java采用unicode编码来表示,每个字符占两个字节(一个字节有八位),因此可以用十六位进制编码表示,比如:char test3 = '\u0056';
c、 Java语言还支持转移字符,来将其后面的字符转为其他含义,比如char test4 = '\n';
补充说明:
* char类型常量默认只能填写一个字符,如:char test1 = 'B';//正确;char test5 = 'zz';//错误
* 可以通过char a = '汉';;
String a = Integer.toHexString((int)a);
或
System.out.println(String.format("\\u%H",'汉'));
来看到字符所对应的unicode编码
* Java中的字符遵循Unicode,所以char经常可以当做一个无符号的整数

4、 布尔型(boolean)
布尔型只有两个值分别为true和false,不能使用0或者非0来替代,这点和C、C++等不同

二、 扩展
基本数据类型为:boolean、char、byte、short、int、long、float、double
封装类类型:Boolean、Character、Byte、Short、Integer、Long、Float、Double
以int和Integer类型为例,差别为以下几点:
1、 int声明出来的是一个常量、Integer声明出来的是一个对象;
2、 Integer num = 9;//意味着Integer num = new Integer(9);
Integer num = 9;
Integer num2 = new Integer(9);
3、 System.out.println(num == num2);输出结果为false,因为这相当于两个对象之间的比较,两个对象所指向的地址是不相同的;
Integer num = 9;
int num3 = 9;
4、 System.out.println(num == num3);输出结果为true,相当于两个参数取值比较;
5、 直接使用Integer类型进行逻辑运算时,java后台会将Integer类型默认转换为int类型;
代码中展示结果如下:

二、 高能
1、 Integer类更详细解析
首先直接看高能的例子:

首先我们要清楚Integer是int的包装类,int的初始值为0,Integer的初始值为null,Integer是一个有对象概念的类,但是输出结果的第1/2/3个true告诉了我们看问题不能太表面。
之所以会出现这个结果,主要还是因为对Integer类来说-128~127这个区间内的整数一旦声明,就会直接存储到IntegerCache中(具体可以看Integer类中的valueOf函数),所以在这个区间内声明的整数比较时实际上都是数值比较,而new Integer(127)这种方式的声明,就真的是在声明一个对象,会在内存中分配一个地址,这样在比较的过程中实际上就是地址的比较所以返回的是false。


2、 String intern()方法解析
首先看例子:

首先我们需要知道intern是什么函数

看叙述可知,如果该参数是第一次出现,则会将该参数值保存至常量池中,并返回该参数的实例引用,如果是第二次出现intern则会返回常量池中保存的实例引用。
以此观看,输出一、二、三结果皆正常,但是第四个输出为什么会是false呢?
是因为在System类中会将version信息初始化值常量池中,而在Version信息中包含java字段,因此java字段不算是第一次在常量池中出现,所以返回值为false。


3、 float精度解析
直接高能

首先float类型参数之所以会出现这个精度误差,主要是因为在内存中存储时需要转换为二进制类型存储,所以在存储的过程中很难保持参数计算的精度,所以一般我们在需要进行,浮点类型参数计算时一般通过BigDecimal+String的形式来进行数据的计算
相关示例代码之所以展示为图片还是希望能通过自己手打来加深相关知识的印象
相关引用,纯为学习,如有侵权,请联系删除
博客参考:https://blog.csdn.net/qwe969153746/article/details/53353534
Java四类八项基本数据类型的更多相关文章
- JAVA四类八种基本数据类型
boolean类型 Boolean在内存中占用一个字节. 当java编译器把java源代码编译为字节码时,会用int或byte来表示boolean.在java虚拟机中,用整数零来表示false,用任意 ...
- Java四类八种数据类型
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592011.html 第一类:逻辑型boolean 第二类:文本型char 第三类:整数型 ...
- Java四类八种
四类: 整数类型,浮点类型,字符型,布尔型 八种: byte,short,int,long,float,double,char,boolean
- Day1---Java 基本数据类型 - 四类八种 --九五小庞
一.Java四大数据类型分类 1.整型 byte .short .int .long 2.浮点型 float . double 3.字符型 char 4.布尔型 boolean 二.八种基本数据类型 ...
- activiti搭建(四)八项服务介绍
转载请注明源地址:http://www.cnblogs.com/lighten/p/5927949.html 1.前言 之前学习的时候一直在其它文章看到activiti提供了七个接口来操作工作流,但在 ...
- java的基本数据类型--四类八种
java的数据类型 1.分为基本数据类型和引用数据类型 基本数据类型的分类:整数型: byte 占用一个字节 范围-128-127 short 占用两个字节 -2^15~2^15-1 int ...
- 由java的八个基本数据类型说开去
Java中定义了四类/八种基本数据类型: 布尔型----boolean 字符型----char 整数型----byte,short,int,long 浮点型----float,double 这八种基本 ...
- core java 1~4(HelloWorld & 标识符|关键字|数据类型 & 表达式|流程控制 & 数组)
MODULE 1 Java的编译和运行----------------------------编译:javac -d bin src\HelloWorld.java -d:指定编译后的class 文件 ...
- Java基础学习-计算机存储单元和数据类型概述
变量是内存中的小容器,用来存储数据.那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写字母b表示.而计算机最小的存 ...
随机推荐
- .Net笔试考题
.NET试题 1.列举ASP.NET页面之间传递值的几种方式 2.请写出 override 与重载的区别 3.请编程实现一个冒泡排序算法 4.什么是装箱和拆箱 5.ADO.net中常用的对象有哪些?分 ...
- UVa 1592 Database (map)
题意:给出n行m列的数据库(数据范围: n 1~10000, m 1~10), 问你能不能找出两行r1, r2,使得这两行中的c1, c2列是一样的, 即(r1,c1)==(r2,c1) && ...
- [游记]CSP2019-S
Day 1 开局看到T1格雷码,哇塞这不是初赛原题???10分钟高精打完离场. T2是个什么题目,看起来不难,15分钟码完,调了5分钟,过了样例2 欸,为什么样例3过不掉?仔细一看发现爆栈了,一慌忘记 ...
- [python]python中**是什么
作为运算符时 ** 在python里面表示幂运算 传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:``*`` ** . 调用函数 ...
- mysql 查询近三个月数据
select * from t_user where time>DATE_SUB(CURDATE(), INTERVAL 1 WEEK) --一周 select * from t_user wh ...
- [翻译]剖析C#中的异步方法
翻译自一篇博文,原文:Dissecting the async methods in C# 有些括号里的是译注或我自己的理解. 异步系列 剖析C#中的异步方法 扩展C#中的异步方法 C#中异步方法的性 ...
- DS博客大作业--树 (陈梓灿组)
1.树的存储结构说明 定义的结构体中,name是用于存放文件名称,string类型是字符串类型,定义了child孩子结点和brother兄弟结点. 2.树的函数说明 1.main函数 main函数中主 ...
- git设置mergetool可视化工具
可以设置BeyondCompare,DiffMerge等作为git的比较和合并的可视化工具,方便操作. 设置如下: 先下载并安装BeyondCompare,DiffMerge等. 设置git配置, ...
- 浏览器端-W3School-HTML:HTML DOM Meta 对象
ylbtech-浏览器端-W3School-HTML:HTML DOM Meta 对象 1.返回顶部 1. HTML DOM Meta 对象 Meta 对象 Meta 对象代表 HTML 的 一个 & ...
- 【转】Eureka集群
Eureka作为SpringCloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置.单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况,具有 ...