笔记(十六)Java八种基本数据类型、赋值与类型转换
学习笔记(十六)
基本数据类型
- 字符型:char
- 整数型:byte short int long
- 浮点型:float double
- 布尔型:boolean
字符型:char
1、char占用两个字节
2、char的取值范围:[0~65535]
3、char类型的字面量使用单引号括起来。
5、char可以存储一个汉字。
整数型 :
整数型在java语言中共有4种类型:
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
对于以上四个类型,最常用的是int。(2147483647是int最大值)开发时不用斤斤计较,大多数情况下int就够用了。
在java语言中整数型字面量有四种表示形式:
十进制 (最常用)
二进制
八进制
十六进制
注:在任何情况下,整数型的“字面量/数据”默认被当做int类型处理。如果希望该“整数型字面量”被当做long类型处理,需要在“字面量”后面添加“L/1”。
自动类型转换
小容量可以直接赋值给大容量,称为自动类型转换。大容量不允许直接赋值给小容量。
大容量转换成小容量,要想编译通过,必须加强制类型转换符,进行强制类型转换。需要注意的是,加强制类型转换符进行转换后,虽然编译通过了,但是运行的时候可能会损失精度。
long类型100L:00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100
以上的long类型100L强转为int类型,会自动将“前面”的4个字节砍掉:00000000 00000000 00000000 01100100
java中有一个语法规则:
当这个整数型字面量没有超出byte的取值范围,那么这个整数型字面量可以直接赋值给byte类型的变量。这种语法机制是为了方便写代码,而存在的。
但实际上可以编译通过。
整数型直接赋值给char
char x = 97;
这个java语句是允许的,并且输出的结果是'a'
97是int类型(这是java中规定,默认当做int处理),c2是char类型,但是当一个整数赋值给char类型变量的时候,会自动转换成char字符型。
char c2 = (char)97;//不需要这么写
注:char的取值范围是[0~65535],超过后会报错:错误: 不兼容的类型: 从int转换到char可能会有损失。
同样的,当一个整数没有超出byte short char的取值范围的时候,这个整数可以直接赋值给byte short char类型的变量。
浮点型:float double
1、float 4个字节 double 8个字节
2、float是单精度 double是双精度,double更精确。
比如说,10/3,如果用float来存储的话可能是:3.3333,如果用double来存储的话,可能是3.33333333
但需要注意的是,如果用在财务方面,double也是远远不够的。在java中提供了一种精度更高的类型,这种类型专门使用在财务方面:java.math.BigDecimal(后期介绍,不是基本数据类型,是引用数据类型。)
3、float和double存储数据的时候都是存储的近似值,例如无限循环小数3.33333......。但计算机的内存有限,用一个有限的资源表示无限的数据,只能存储近似值。
4、long类型占用8个字节,float占用4个字节,哪个容量大?float。
任意一个浮点型都比整数型空间大。(和java底层有关)
5、java中规定,任意一个浮点型数据默认当做double来处理,如果想让这个浮点字面量被当做double来处理,那么请在字面量后面添加F/f。
1.0 被默认为当成double类型处理,
1.0F(1.0f)是float类型。
布尔型:
1、在Java中,boolean类型只有两个值:true和false。
2、Boolean类型在实际开发中使用放在哪里?
使用在逻辑判断中,通常放在条件的位置上(充当条件)
类型转换
在类型转换中,要遵守以下规则:
1、八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以进行转换;
2、如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋值给 byte,short,char 类型的变量;
3、小容量向大容量转换称为自动类型转换,容量从小到大的排序为:byte < short(char) < int < long < float < double,其中 short和 char 都占用两个字节,但是char 可以表示更大 的正整数;
4、大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”,但 运行时可能出现精度损失,谨慎使用;
5、 byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;
6、 多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;
问题:long占八个字节,float占四个字节,为什么float容量比long大?
小数和整数的存储在底层原理上是由区别的。有一个明显的例子是long类型数据转float类型数据有时会发生精度缺失。
笔记(十六)Java八种基本数据类型、赋值与类型转换相关推荐
- java八种基本数据类型及包装类详解
详解一.八种基本数据类型常识 1.1.基本常识表 对于上图有以下几点需要注意: java八种基本数据类型分为四类八种,四类分别为整型.浮点型.布尔型.字符型:八种分别为byte.short.int.l ...
- Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?
参考:http://blog.csdn.net/mazhimazh/article/details/16799925 1. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法? 原始类型 ...
- 关于Java八种原始数据类型
关于Java八种原始数据类型 Java八种原始数据类型 int类型 八进制 十六进制 浮点数类型 布尔类型 字符类型 Java八种原始数据类型 Java中的原始数据类型一共有八种,分别为byte(8b ...
- Java八种基本数据类型对应的包装类
目录 前言: 八种基本数据类型对应的包装类: 包装类的常用方法: 有关包装类的注意事项: 参考文献: 前言: 思考:有没有这种需求:调用doSome()方法的时候需要传一个数字进去.但是数字属于基本数 ...
- Java八种基本数据类型定义与取值范围
基本数据类型也称为简单数据类型,Java语言中有八种基本数据类型, 分别为 boolean.byte.short.char.int.long.float.double,这八种基本数据类型通常分为四大类 ...
- Java八种基本数据类型
基本数据类型 Java八种基本数据类型 1)四种整数类型(byte.short.int.long):(注意: 一个字节byte = 8位bit) ! byte:8 位,用于表示最小数据单位,如文 ...
- JAVA八种基本数据类型+三种引用数据类型
一.Java八种基本数据类型 在程序设计中经常用到一系列类型,把它们存储在堆栈中,加快程序的运行效率,它们就是基本数据类型.Java提供了8中基本数据类型,分别是:boolean.char.byte. ...
- Java八种基本数据类型(图文详解)
Java八种基本数据类型 Java八种数据类型 Java八种数据类型的分类(图) 基本数据类型分为三大类 ①数值型 ②字符型 ③布尔型 数值型 整数类型(byte,short,int,long) 浮点 ...
- Java基础学习总结(122)——Java八种基本数据类型的包装类及其装箱拆箱详解
前言 Java语言是面向对象编程语言,但不是纯面向对象语言.其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备"对象"的特性--不携带属性.没有方法可调用. 沿用它们 ...
最新文章
- Windows服务器部分告一段落,开始转入Linux
- OpenStack工作流服务Mistral简介
- IP头中的校验和计算方法介绍
- 【瞎扯】我的OI之路
- php idwork,idwork.php
- dhtmlXGrid复选框点击事件
- ansys变形太夸张_航母上的一颗铆钉能换一辆奥迪?太奢侈了
- r语言library什么意思_医学统计与R语言:百分条图与雷达图
- Asp.Net中备份还原SqlServer数据库
- 康德的道德观与哲学观
- 玩转USB HID系列:USB先导知识简明
- 单片机c语言论文,基于51单片机的C语言程序设计论文.doc
- IE下载xlsx、docx、pptx文件时自动变成zip文件问题
- 通过python爬虫程序爬取未来几日的天气状况
- 南阳理工计算机与信息工程学院,南阳理工学院计算机与信息工程学院
- 【机器人学习】平台并联机构matlab逆解
- 三角函数π/2转化_三角函数求值问题
- 网络编程(6)--------javaweb(TCP协议)
- win10任务栏自动隐藏失效
- PIXI_锚点图片位控
热门文章
- 中国矿产资源产业规划与投资前景预测分析报告2022-2027年
- 国产操作系统之银河麒麟服务器版V10安装
- delphi FastReport经验
- Unit 5: Windows Acquisition 5.1 Windows Acquisition Windows Forensic Imaging of Drives
- Java调用和风天气台API查看天气
- VUE+Cesium 初始化地球,加载三维模型(.glb),绘制轨迹线,homebutton 按键重写(默认定位位置的设置)
- 骷髅峡谷,转苹果网卡做黑苹果macOS系统还是装WIFI6网卡ax200?
- 【 Java基础】试试通俗易懂的Lambda表达式?
- [ 多智能体网络中的图论方法汉化 ] (一)前言第一章
- Linux内核4.14版本——SPI NOR子系统(3)——cadence-quadspi.c分析