Java基础系列(8)- 数据类型
数据类型
强类型语言
要求变量的使用合乎规定,所有的变量都必须先定义才能使用。Java是强类型语言。
弱类型语言
变量定义比较随意,比如“12”+3,可以是int型123,也可以是String型123
Java数据类型
分为两大类:
基本类型(primitive type)
数值类型
整数类型
1.)byte:占一个字节,范围:-128~127
2.)short:占两个字节,2的15次,范围:-32768~32767
3.)int:占四个字节,2的31次,范围:-2147483648~2147483647
4)long:占八个字节,2的63次,范围:-9223372036854775808~9223372036854775807
浮点类型
1.)float:占四个字节,单精度,尾数可以精确到7位有效数字,范围:-3.403E38~3.403E38
2.)double:占八个字节,双精度,精度是float的两倍,范围:-1.798E308~1.798E308
字符类型
1.)char:占两个字节,用'',声明一个字符,或者转义字符
boolean类型:占1位,其值只有true和false
引用类型(reference type)
- 类
- 接口
- 数组
// 整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; // long类型需要在数字的后面加一个L或l,以做声明。如果不做声明,会以int类型取存数据,在把数据自动装换为long。 long l1 = 2147483649; //不加L,编译会报错
long l2 = 2147483649L; // 正常编译 // 浮点数(小数)
float num5 = 50.1F; // float类型需要在数字的后面加一个F,因为java的浮点型常量默认是double,所以声明float时要加F或f float f1 = 32.2; //报错,因为不加f,会被认为时double,而double转float需要强制转换,所以报错。 double num6 = 3.12321312321321321321321321321312312; // 字符,只能是一个字符
char name = 'A'; // 不能是AA 字符用''
char myByte = '\n'; // 转义字符也用''
// 字符串,String不是关键字,是类,字符串用""
String namea = "ssm";
// 布尔值
boolean flag = true;
boolean flag = false;
Q:为什么float和int都是4个字节,但是float表示的范围更大,而且还可以表示小数点?
https://zhuanlan.zhihu.com/p/84453627
位和字节
Q:什么是位?
位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数。
Q:什么是字节?
字节(byte):是计算机 数据处理 的基本单位,习惯上用大写的B来表示。
1024B = 1KB
1024KB = 1M
1024M = 1G
1024G = 1TB
Q:位和字节的联 系
1B(byte,字节)= 8bit(位)
Q:什么是字符?
是指计算机中使用的字母、数字、字、和符号。
整数拓展
// 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; // 八进制
int i3 = 0x10; // 十六进制0x
浮点数
最好完全避免使用浮点数进行比较,银行业务避免使用浮点数,可以使用BigDecimal(数学工具类)
// float 存在误差
// 最好完全避免使用浮点数进行比较 float f1 = 0.1F;
double d1 = 0.1/10;
System.out.println(f1 == d1); // false float f2 = 2132132132132232F;
float f3 = f2 + 1;
System.out.println(f2 == f3); // true
字符
// 强制转换 (int)
char c1 = 'a';
char c2 = '沈';
System.out.println((int)c1);
System.out.println((int)c2); // 转义字符
// \t \n....
Java基础系列(8)- 数据类型的更多相关文章
- Java基础系列1:深入理解Java数据类型
Java基础系列1:深入理解Java数据类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括四个 ...
- 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
目录 目录 string基础 Java String 类 创建字符串 StringDemo.java 文件代码: String基本用法 创建String对象的常用方法 String中常用的方法,用法如 ...
- 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
目录 final使用 final变量 final修饰基本数据类型变量和引用 final类 final关键字的知识点 final关键字的最佳实践 final的用法 关于空白final final内存分配 ...
- 夯实Java基础系列5:Java文件和Java包结构
目录 Java中的包概念 包的作用 package 的目录结构 设置 CLASSPATH 系统变量 常用jar包 java软件包的类型 dt.jar rt.jar *.java文件的奥秘 *.Java ...
- 夯实Java基础系列9:深入理解Class类和Object类
目录 Java中Class类及用法 Class类原理 如何获得一个Class类对象 使用Class类的对象来生成目标类的实例 Object类 类构造器public Object(); register ...
- 夯实Java基础系列13:深入理解Java中的泛型
目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试 ...
- 夯实Java基础系列14:深入理解Java枚举类
目录 初探枚举类 枚举类-语法 枚举类的具体使用 使用枚举类的注意事项 枚举类的实现原理 枚举类实战 实战一无参 实战二有一参 实战三有两参 枚举类总结 枚举 API 总结 参考文章 微信公众号 Ja ...
- Java工程师学习指南第1部分:夯实Java基础系列
点击关注上方"Java技术江湖",设为"置顶或星标",第一时间送达技术干货. 本文整理了微信公众号[Java技术江湖]发表和转载过的Java优质文章,想看到更多 ...
- Java基础系列1:Java基本类型与封装类型
Java基础系列1:Java基本类型与封装类型 当初学习计算机的时候,教科书中对程序的定义是:程序=数据结构+算法,Java基础系列第一篇就聊聊Java中的数据类型. 本篇聊Java数据类型主要包括两 ...
- Java基础系列2:深入理解String类
Java基础系列2:深入理解String类 String是Java中最为常用的数据类型之一,也是面试中比较常被问到的基础知识点,本篇就聊聊Java中的String.主要包括如下的五个内容: Strin ...
随机推荐
- 用三个while循环和tkinter实现一个显示屏
用三个while循环和tkinter实现一个显示屏 import tkinter as tk import time # 输入框是跟程序打交道的一个途径,例如程序要求你输入账号密码,那么它就需要提供两 ...
- pikachu Over Permission
Over Permission 如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作. 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的. 一般越 ...
- Pytest-Allure报告的Logo的完美定制
--本次需求:如何把生成的pytest-allure报告的logo修改成自定义的logo? --步骤如下: --1.找到本地电脑安装的allure-2.13.2路径E:\allure-2.13.2\p ...
- 为何要打印日志?C++在高并发下如何写日志文件(附源码)?
为何要打印日志?让程序裸奔不是一件很快乐的事么? 有些BUG就像薛定谔的猫,具有波粒二象性,当你试图去观察它时它就消失了,当你不去观察它时,它又会出现.当你在测试人员面前赌咒发誓,亲自路演把程序跑一遍 ...
- join控制线程的执行循序 T1 -> T2 -> T3
/** * 控制线程的执行循序 T1 -> T2 -> T3 * join实现 */ public static void join(){ Thread t1 = new Thread(( ...
- [ES6深度解析]13:let const
当Brendan Eich在1995年设计了JavaScript的第一个版本时,他犯了很多错误,包括从那时起就成为该语言一部分的一些错误,比如Date对象和当你不小心将它们相乘时对象会自动转换为NaN ...
- java String数组城市
String[] citys = {"北京","天津","河北","山西","内蒙古"," ...
- GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组
1 drop table orders; 2 create table orders ( 3 o_id int auto_increment primary key, 4 orderdate date ...
- MFC 绘制坐标系
主要讨论映射模式:MM_ANISOTROPIC,MM_ISOTROPIC.及相关方法的应用. 1,先建立一个MFC单文档,过程不再赘述. 2,在View类中找到CMainFrame::PreCreat ...
- js 中连续的 3 个点 three dots (...) in javascript
这个叫扩展运算符 https://dev.to/sagar/three-dots---in-javascript-26ci 5 种用法 1 function myFunc(...[x, y, z]) ...