java的基本类型和类型转化
1、八种基本数据类型:
byte-short--int --long--float--double--char
2、八种基本类型所占字节空间
一、int
- 整数的直接量为int;
- 存储范围为:- -2147483648~2147483647 -2^31 ~ 2^31-1 -2^63~2^63-1
1.1 直接量表示直接写出的整数:
int a= 100;
整数直接量的数字必须在int的范围内;
除了进制书写形式外,整数的直接量也经常写为16进制数值,以OX或Ox或者8进制的0开头;
int c=0x10;//16进制整数直接量
int d=020;//8进制整数直接量
System.out,println(c);
System.out.println(d);
1.2 整形数据的除法运算中的取整:
除法运算保留整数部分,舍弃小数部分
1.3 运算时要防止溢出发生:
整数运算的溢出:两个整数进行运算时,其结果可能会超出整数的范围产生溢出
byte w=(byte)(127+1);
System.out.println(w);
二、long:
在表示较大整数的时候,int范围不够的情况下,范围:-2 63~2 63-1
表示long类型的直接量,需要以L或l结尾
long l1 = 2147483647;//对的
long l2 = 2147483648;//编译错误,超出整数直接量的范围,也就是int值得范围。
2.1 使用long类型进行较大整数的运算
较大整数:超过int范围的整数
long distance1 = 1000*365*24*299792458;//使用较大整数运算
System.out.println(distance1);//4个int相乘结果一定为int,则超出int范围导致溢出!
long distance2 = 1000*365*24*299792458L;
System.out.println(distance2);//4个int乘long,结果一定为long
2.1 通过时间毫秒数来存储日期和时间:
JDK提供了一个方法,返回1970年1月1日0点0分0秒到此时此刻所经历的毫秒数,其数据类型为long
三、double:
浮点数,小数,包含float和double
double类型的精度是float的两倍,因此double也叫双精度浮点数
3.1 浮点数的直接量为double类型
小数的写法有以下几种:
通常写法:3.14、314.0
科学计数法:
1.25E2、1.25e2、1.25E-2
eg:1.25E2 1.25*10^2=125.0
默认浮点直接量为double类型,如果需要表示float类型,则需要在末尾加F或f。float f=1.25F;
3.2 double运算时会出现舍入误差
二进制中无法精确的表示1/10,就和十进制无法精确表示1/3一样;
二进制表示10进制可能会误差
double money = 3.0;
double price =2.9;
System.out.println(money- price);//输出结果为0.100000000009 舍入误差!
四、char
本质是16位无符号的整数,对应的是字符集的编码;
采用的编码是Unicode编码(世界通用的定长字符集,所有字符都是16位)
4.1 对char类型遍历进行赋值
整数类型:0---65535之间的整数数值
字符直接量:用单引号括起来的内容就是字符的实际内容
Unicode形式:‘\u004e’、‘\u4e2d’,Unicode 的16进制形式
4.2 使用转义字符:
对于不方便输出的字符采用转义
五、boolean
boolean是逻辑运算类型;
赋值只有true或者false;
经常用于存储关系运算的结果值。
- int age=18;
boolean isChild=age>16;
System.out.println(isChild);//true;
基本类型间的转换:
1、基本类型转换
自动类型转换:小类型--大类型
可以自动转换的,如下图:
强制类型转换 :大类型--小类型
byte,short,char这三种不能进行相互转换
需要转换符:格式:(需要转化的类型)变量
注意:这样转化可能精度丢失或者溢出
2、强制转换时的精度丢失和溢出
int a=100;
int b=200;
long c=a+b;
System.out.println(c);
long l1=1024l;
int i=(int)l1;
System.out.println(i);
long l=1024L*1024*4*1024;
int j=(int)l;
System.out.println(j);
double pi=3.1415193084094;
float f=(float)pi;
System.out.println(f);
精度丢失:转化后存储的小数位不是原来的小数位
3、数值运算时的自动转换
多种基本类型参与的表达式运算中,运算结果会自动向较大类型转换
//3.多种基本类型参与运算会向较大类型转换
long l3 = 123*456*789L;//int*int*long 向long转化
double d = 500-599.0;//-99.0
double persent2 = 80/100.0;//0.8
java的基本类型和类型转化的更多相关文章
- Java 中基本类型和字符串之间的转换
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...
- Java学习--Java 中基本类型和字符串之间的转换
Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...
- Java开发学习--Java 中基本类型和包装类之间的转换
Java 中基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之 ...
- Java 基础 - 基本类型和引用类型
ref: https://www.cnblogs.com/ysocean/p/8482979.html#_label2 ------------------ 这里再给大家普及一个概念,在 Java 中 ...
- 【Java】基本类型和引用类型(值传递)
[关键词] [问题] · 加深对基本类型和引用类型的理解: [效果图] [分析] 參见最后的[參考资料] [解决方式] [代码] public void test() throws Exception ...
- java中基本类型和包装类型实践经验
至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...
- Java基础——基本类型和包装类、基本类型和字符串之间的转换
基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更 ...
- java的基本类型和对应的封装类
封装,是java这门语言的重要核心思想之一,封装也是对面向对象这一思想很好的体现. 在很多情况下,我们需要对数据进行一些转换,如:将一字符串"123"转换成int类型的123,或者 ...
- Java基础(35):装箱与拆箱---Java 中基本类型和包装类之间的转换(Wrapper类)
基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了. 那什么是装箱 ...
随机推荐
- Win11怎么启动任务管理器?Win11启动任务管理器的四种方法
Win11怎么启动任务管理器?小编为大家带来了Win11启动任务管理器的四种方法,感兴趣的朋友一起看看吧 任务管理器是Windows系统中一项非常实用的功能.不过在最新版Win11中,右击任务栏启动任 ...
- Linux中Swap与Memory内存简单介绍 (转)
https://blog.csdn.net/zwan0518/article/details/12059213 一.背景介绍 对于Linux来说,其在服务器市场的使用已经占据了绝对的霸主地位,不可动摇 ...
- JVM学习七-(复习)垃圾收集策略与算法
垃圾收集策略与算法 程序计数器.虚拟机栈.本地方法栈随线程而生,也随线程而灭:栈帧随着方法的开始而入栈,随着方法的结束而出栈.这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的 ...
- transition过渡2D、3D效果
过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 帧动画:通过一帧 ...
- Redis 源码简洁剖析 10 - aeEventLoop 及事件
aeEventLoop IO 事件处理 IO 事件创建 读事件处理 写事件处理 时间事件处理 时间事件定义 时间事件创建 时间事件回调函数 时间事件的触发处理 参考链接 Redis 源码简洁剖析系列 ...
- PHP7.x环境下安装redis扩展
注:以下介绍的安装方式为PHP的安装路径为/usr/local/php,如果你的服务器上PHP的安装目录不一致请按实际情况处理. 首先下载PHP7的redis扩展 wget https://githu ...
- 使用注解实现SpringIOC和SpringAOP
使用注解实现ioc @Component:实现Bean组件的定义 @Repository:标注dao类 @Service:标注业务类 @Controller:标注控制类 Bean的自动装配: @Aut ...
- 树莓派安装docker并使用docker图形化工具portainer
配置环境 系统:Raspbian 11(64位) 设备:树莓派4B 一.安装docker 1.安装 curl -fsSL https://get.docker.com -o get-docker.sh ...
- curl的HTTP参数速查表
curl简介 curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(如:html的渲染等),直接显示在"标准输出"(stdout)上. ...
- 思科VTP协议(后面有配置案例)
一.VTP相关理论介绍 1.1 VTP(VLAN trunking protocol)协议是用来在整个交换网络中分发和同步VLAN数据库的,是一个二层协议,思科私有协议. 1.2 VTP域是由一台或者 ...