Java的基本数据类型和数据类型转换
首先java属于强类型语言,要求变量的使用要严格遵守规范,所有变量都必须先定义后才能使用。
Java的数据类型分为以下两种:
1 基础数据类型(primtive type) 和 2 引用数据类型(reference type)
今天只讲基础数据类型,然后基础类型里面还可以细分一下,分为:
数值类型:
- 整数类型
- byte 占1个字节范围 (-128 127)
- short 占2个字节范围(-32768 32767)
- int 占4个字节范围(-2147483648 2147483647)(最为常用)
- long 占8个字节范围(-9223372036854775808 -9223372036854775807)
- 浮点类型(我们数学说叫做小数,当在java里面叫做浮点)
- float 占4个字节范围
- double 占8个字节范围
- 字符类型(其实在java里面,字符本质上也是一个数字。)
- char 占2个字节范围
boolean类型:占1个位 只有true和false两个。
一个字节(btye)等于八个位(bit),位是计算机内部数据存储的最小单位。
public class text {
public static void main(String[] args) {
//byte的存储范围在-128到127之间,下面我演示一下byte两种赋值。其余的short,int,long,float,double就依次类推
//这个赋值正确,不会报错,因为10在-128到127之间
byte num=10;
//这个就会报错,因为赋的值已经超出byte的储存范围。
byte num2=128;
/*
下面是几个注意点!!!
在使用long类型和flaot类型的时候,都需要,给变量值后面加个后缀。例如:
*/
int numa=10;
long numb=10L;
float numc=10.4F;
double numd=10.5;
//注意--->后缀的这个英文能小写,但是还是写成大写,养成良好的编码规范!
/*
然后现在讲一下字符型 char占两个字节,一个英文单词和一个汉字就带表一个字节。
并且注意的是,变量值是用单引号'',而不是双引号""。
*/
char a='a';
char b='涛';
/*
最后就是boolean型 它只有两个值,便是true,false。中文意思就代表真和假
*/
boolean a1=true;
boolean a2=false;
}
}
数据类型转化
数据类型转化可以分为:
强制转换(不推荐)
自然转换
强制转换什么意思呢,也就是说存储大的类型,转换为存储小的类型。例如:
public static void main(String[] args) {
int a=130;
byte b= (byte) a;
System.out.println(b);
//输出结果b:-126
}
可以通过看到,a明明是130,按照逻辑来讲,b应该也是130,但输出结果是-126,这就是内存溢出导致数据错乱的一个问题,本来byte的存储空间应该在-128 到 127 之间,但是a的值130,已经大于它的存储范围,所以产生了内存溢出的错误。这也就是我们所说的强制转换。通俗一点理解就可以为,由高到低,由大到小,转换。
自然转化就是反过来,存储小的类型,转换为存储大的类型。例如:
public static void main(String[] args) {
int a=10;
float b=a;
System.out.println(b);
// 输出结果 b:10.0
}
首先看到上面的代码,一些同学可能会感到疑惑,不是存储小的类型,转换为存储大的类型,int的范围是4个字节,float的范围也是4个字节呀,对,在java里面虽然int和float存储范围一样大,但是float还是比它大的。所以可以这样转,而且结果的是10.0,是不是由一个整数,变成一个浮点数了。这就叫做自然转化。
Java的基本数据类型和数据类型转换的更多相关文章
- 018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念
018 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 12 数据类型转换的基本概念 本文知识点:Java中的数据类型转换 类型转换 类型转换分类 2类,分别是: ...
- 019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例
019 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 13 数据类型转换的代码示例 本文知识点:Java中的数据类型转换案例 学习视频有误,导致没法写文,文章内容 ...
- (6)java基础知识-基本数据类型、数据类型转换
一.基本数据类型 基本的数据类型一共有四类八种 1.整型 byte: 1字节 取值范围 -128~127 short: 2字节 取值范围 -32768~32767 int: 4字节 取 ...
- Python基础之模块、数据类型及数据类型转换
一.模块 1.标准库 不需要安装,直接调入使用的模块. import sys模块: import sys print(sys.path) #打印环境变量绝对路径 print(sys.argv) #打印 ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 零基础学习java------day2------关键字、标志符、常量、进制键的转换、java中的数据类型、强制类型转换的格式
今日内容要求: 1. 了解关键字的概念及特点,了解保留字 2. 熟练掌握标识符的含义,特点,可使用字符及注意事项 3. 了解常量的概念,进制,进制之间相互转换,了解有符号标识法的运算方式 4. 掌握变 ...
- Objective-C数据类型、数据类型转换
数据类型 1.Objective-C数据类型可以分为:基本数据类型.对象数据类型和id类型. 2.基本数据类型有:int.float.double和char类型. 3.对象类型就是类或协议所声明的指针 ...
- Java 读书笔记 (五) 目标数据类型转换
数据类型转换必须满足如下规则: 不能对boolean类型进行类型转换 不能把对象类型转换成不相关类的对象 //那不同类的对象可以用同一个名字命名吗?根据作用域原则,可以吧? 把容量大的转换为容量小的 ...
随机推荐
- 后台开发 3个题目 array_chunk, 100块钱找零钱(动态规划 dynamic programming), 双向循环链表 llist 删除节点
1. array_chunk 实现 http://php.net/manual/en/function.array-chunk.php <?php function my_array_chunk ...
- Django框架进阶
Django ORM那些相关操作 Django中ORM介绍和字段及字段参数 Cookie.Session和自定义分页 Django 中间件 AJAX Django form表单 Django的认证系统 ...
- turtle color设置的几种方式
t.colormode() 查看色彩模式,缺省1.0,即RGB范围在0-1 模式切换:参数填1.0或255 t.colormode(1.0) t.colormode(255) 设置颜色,以设置penc ...
- k8s deployment controller源码分析
deployment controller简介 deployment controller是kube-controller-manager组件中众多控制器中的一个,是 deployment 资源对象的 ...
- iOS实现XMPP通讯(一)搭建Openfire
安装Openfire Openfire官网下载地址:https://igniterealtime.org/downloads/ (也是Spark客户端的下载地址) Openfire下载并安装后,打开系 ...
- 如何基于Jupyter notebook搭建Spark集群开发环境
摘要:本文介绍如何基于Jupyter notebook搭建Spark集群开发环境. 本文分享自华为云社区<基于Jupyter Notebook 搭建Spark集群开发环境>,作者:apr鹏 ...
- FastAPI 学习之路(十七)上传文件
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- 重庆邮电大学第十一届ACM程序设计竞赛-网络选拔赛 C题
1008: 偷袭 时间限制: 1.000 sec 内存限制: 128 MB 武林要以和为贵,张麻子不讲武德来偷袭马老师的亲传弟子. 马老师有n个亲传弟子,每个弟子有一个武力值a[i]. n个弟子中只有 ...
- PTA数据结构 习题2.1 简单计算器 (20分)
习题2.1 简单计算器 (20分) 模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式: 输入在一行中给出一个四则运算 ...
- 使用 z3 进行逆向 解密字符串
在逆向过程中,我们知道了一个结果值,和一段计算代码.这个时候我们需要知道计算前的值是什么:需要用到 z3 模块来进行解题 z3项目地址 Java代码如下: private String b(Strin ...