Java修炼之凡界篇 筑基期 第02卷 语法 第03话 数据类型
数据类型
PS:平常生活中,也会用到一些数据的类型,例如:数字、字符(文字)、是、非,且数字分为整数和小数,在Java中也是和生活中一样,有属于自己的数据类型,Java种有八大基本数据类型和一些引用类型。
什么是字节?什么是位?
- 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来进行表示
- 1B(byte字节) = 8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示1个字节,1B=8bit
单位换算
- 1B=8bit
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
- 1024G=1TB
- 1024T=1P
- 1024P=1E
- 1024E=1Z
- 1024Z=1Y
- 1024Y=1BB
- 1024BB=1NB
- 1024NB=1DB
基本类型(primitive type)
数值类型
整数类型
- byte占1个字段,其长度范围:-128~127
- short占2个字节,其长度范围:-32768~32767
- int占4个字节,其长度范围:-2147483648~2147483647
- long占8个字节,其长度范围:-9223372036854775808~9223372036854775807
浮点类型
- float占4个字节
- double占8个字节
字符类型
- char占2个字节
boolean类型
- boolean类型也叫布尔类型,占1位,其值只有true和false
public class DataType {public static void main(String[] args) {// 八大基本数据类型// 数值类型// 整数类型int num1 = 10;byte num2 = 20;short num3 = 30;// Long类型要在数字后面加个Llong num4 = 30L;// 小数:浮点数,float类型要在数据后面加个Ffloat num5 = 55.5F;double num6 = 3.141592653;// 字符,只能给一个字符char str1 = '中';// 布尔值:是非boolean isFlag1 = true;boolean isFlag2 = false;}
}
引用类型(reference type)
- 类
- 接口
- 数组
数据类型拓展
PS:平常生活中我们使用的都是十进制,计算机使用的是二进制
public class DataTypeExpansion {public static void main(String[] args) {// 一、整数知识拓展 进制 二进制0b 十进制0 八进制0 十六进制0xint i1 = 10; // 十进制int i2 = 010; // 八进制int i3 = 0x10; // 十六进制 0~9 A~Fint i4 = 0x11; // 十六进制 0~9 A~FSystem.out.println(i1); // 输出结果10System.out.println(i2); // 输出结果8System.out.println(i3); // 输出结果16System.out.println(i4); // 输出结果17System.out.println("=============================");// 二、浮点数知识拓展// 不能使用float和double去进行计算和比较,会出现精度丢失问题// 涉及金钱业务都需要使用BigDecimal类去进行计算和比较// 以小数0,1举例float f1 = 0.1f;double d1 = 1.0 / 10;System.out.println(f1 == d1);// 输出falseSystem.out.println(f1);// 输出0.1System.out.println(d1);// 输出0.1float f2 = 42253425362f;float f3 = f2 + 1;System.out.println(f2 == f3);//输出结果true,两个结果本应该不相等,但是现在相等了// float 长度有限,且离散,存在舍入误差,只能表示接近但是不等于System.out.println("=============================");// 三、字符知识拓展char c1 = 'a';char c2 = '王';// 变量前加上圆括号并在括号中写上数据类型,这种方式叫做强制转换// 这是固定写法,后续会讲到,先有个认识System.out.println(c1);// 输出aSystem.out.println((int) c1); // 输出97,强制转换System.out.println(c2);// 王System.out.println((int) c2);// 输出29579,强制转换// 结论:所有字符其本质仍然是数字// 编码 Unicode 2个字节 0~65536(范围不会固定,仍然会增长) // 表中使用97去代表a,使用29579代表文字王,范围为:u0000~uffffchar c3 = '\u0061';System.out.println(c3);// 输出aSystem.out.println("=============================");// 四、转译字符知识拓展// CR-->\r LF-->\n,在编辑器中可以很轻易的看见,如Notepad++// 对于换行的动作,各个系统环境下都不一样// Linux/Unix一般是一个0x0A表示换行(\n)// Windows一般是0x0D和0x0A表示换行(\r\n)// 苹果系统一般是0x0D采用CR回车符表示换行(\r)// \t 制表符对应计算机键盘上的Tab键System.out.println("Hello\tWord"); // 输出Hello Word// \n 换行符System.out.println("Hello\nWord"); // 输出Hello// Word// \r 回车符System.out.println("Hello\rWord"); // 只输出Word,很神奇吧System.out.println("=============================");// 五、字符串知识拓展String s1 = new String("Hello Word");String s2 = new String("Hello Word");System.out.println(s1 == s2); //输出falseSystem.out.println(s1.equals(s2)); //输出trueString s3 = "Hello Word";String s4 = "Hello Word";System.out.println(s3 == s4);//输出true// 我们眼中看着数据相等的字符串,为什么程序执行后,却不相等呢// 后续会讲到,从内存的角度去讲解,就会知道为什么不相等System.out.println("=============================");// 六、boolean布尔型知识拓展boolean b1 = true;// 如果b1为真可以执行,和生活当中做假设一样,如果什么什么,就怎么怎么样if (b1) {System.out.println("1==:" + b1);}if (b1 == true) {System.out.println("2==:" + b1);}b1 = false;if (b1)System.out.println("3==:" + b1);System.out.println("4==:" + b1);// 以上3种程序编写方式都可以// 程序执行结果// 1==:true// 2==:true// 4==:false}
}
Java修炼之凡界篇 筑基期 第02卷 语法 第03话 数据类型相关推荐
- Java修炼之凡界篇 筑基期 第02卷 语法 第06话 运算符
运算符 Java语言支持的运算符: 算术运算符:+, -, *, /, %, ++, – 赋值运算符:= 关系运算符:>, <, >=, <=, ==, !=, instanc ...
- Java修炼之凡界篇 筑基期 第02卷 语法 第04话 类型转换
类型转换 Java是强类型语言,在进行有些运算时,需要用到类型转换 低----------------------->--------------------------->高 byte, ...
- Java修炼之凡界篇 筑基期 第02卷 语法 第01话 注释
注释 平时编写程序代码时,代码量在很少的时候,还能够记得和看懂自己写的程序,但是项目结构复杂并且时间长了之后,我们不一定会都记得,这个时候呢就需要用到程序的注释了 注释不会被程序所执行,是供编程的人员 ...
- Java修炼之凡界篇 筑基期 第05卷 数组 第03话 数组基本特点和边界
数组基本特点和边界 数组基本特点 数组长度是确定的,数组一旦被创建,其大小就是不可以在更改 数组元素必须是相同类型,不允许出现混合类型 数组元素可以是任何数据类型,包括基本类型和引用类型 数组变量属于 ...
- Java修炼之凡界篇 筑基期 第06卷 面向对象 第03话 构造器
构造器 构造器创建 类中构造器也被称为构造方法 程序案例: public class Application {public static void main(String[] args) {// n ...
- Java修炼之凡界篇 筑基期 第02卷 语法 番外1 原码 反码 补码
原码 反码 补码 博客整理自 原码, 反码, 补码 详解 - ziqiu.zhang - 博客园 (cnblogs.com) 机器数与真值 在学习原码.反码和补码之前,需要先了解什么是机器数,什么是真 ...
- Java修炼之凡界篇 筑基期 第06卷 面向对象 第05话 static关键字
static 关键字 在<Java编程思想>有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建 ...
- Java修炼之凡界篇 筑基期 第04卷 方法 第01话 什么是方法
什么是方法 什么是方法 方法是 Java 语言中程序语句的集合,它们在一起去执行某一项功能 方法是解决一类问题步骤的有序组合 方法包含在类或者对象中 方法在程序中被创建,在其他地方被引用(调用) 方法 ...
- Java修炼之凡界篇 筑基期 第01卷 入门 第04话 JDK JRE JVM
JDK JRE JVM JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK), 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里 ...
最新文章
- Ajax解决缓存的5种方法
- 海量端口扫描工具masscan
- 移植uboot第八步:裁剪、修改默认参数、分区
- jquery图片幻灯片(小图列表,大图展示)
- 《C++面向对象高效编程(第2版)》——3.4 赋值操作符
- 【干货】2014年值得仔细研究的十大神级文案
- 更改应用程序图标_【iOS12人机交互指南】6.2-应用图标
- 【Linux】一步一步学Linux——unalias命令(206)
- adaboost算法java代码_04-04 AdaBoost算法代码(鸢尾花分类)
- oracle处理回车换行符
- spring jpa.踩坑经验分享
- HTML5画布(矩形)
- 删数问题 山东理工oj2072(贪心)
- 海量数据搜索——搜索引擎
- Mac卸载Anaconda
- linux查看程序bss段,[必须掌握].bss段和.data段的区别
- 分享 | masked自编码器(MAE):一种可扩展的用于计算机视觉任务的自监督学习器
- utility restore.php,PHP实现短网址还原实例代码
- python动态规划爬楼梯_Python走楼梯问题解决方法示例
- python选择日期控件_【Python】python 日期操作