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 ...
随机推荐
- centos7 更新源
centos7 yum源更新 先进入到yum源文件cd /etc/yum.repo.d/ 1.创建一个repo_bak目录,用于保存系统中原来yum的repo文件. sudo mkdir rep ...
- 题解 Smooth
传送门 咕了蚯蚓这题+前一天被蚊子折腾了半宿没睡=全场几乎就我这题分最低-- 发现这里光滑数是不断乘出来的--记得这是一个很经典的套路,然而当时我咕了 求一个每个值都是 \(\{p_i\}\) 中至少 ...
- WPF中Converter的使用
WPF中Converter的用于对数据的转换.以下实例将实现将数据中的性别属性的转换(0:男,1:女). 1.创建SexConverter.cs类,并实现IValueConverter接口 publi ...
- jsoup的Document类
一.简介 Document是一个装载html的文档类,它是jsoup一个非常重要的类.类声明:public class Document extends Element .Document是Node间 ...
- io中的特殊流Properties
对于去年学习IO的时候一些代码贴上来: 初识properties,因为继承自hashtable,其中可以使用put操作: package special; import java.util.Prope ...
- Vue初体验(一)
每个 Vue 应用都需要通过实例化 Vue 来实现. 语法格式如下: var vm = new Vue({ // 选项 }) 接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: 可以看到在 V ...
- 那些优秀的python代码
时间:2019-04-18 收藏:PangYuaner 标题:Python如何生成树形图案 地址:https://www.jb51.net/article/132049.htm 标题:用python- ...
- Python3-sqlalchemy-orm 创建关联表带外键并查询数据
#-*-coding:utf-8-*- #__author__ = "logan.xu" import sqlalchemy from sqlalchemy import crea ...
- uni-app 入门小白纯徒手编写组件 hello-popup
我的需求是:弹出框顶部有 title,底部有确认和取消按钮.这两部分固定,中间部分 content 的高度随自身内容会动态增长,但是它最大高度不能超过父节点 bg 的 80%,而父节点 bg 的高度也 ...
- shell循环语句for
1.方式1 for i in {list[0]} {list[1]} .. do 执行命令 done 2.方式2(三要素循环) for (( 初始值; 判断值; 步长; )) do 执行命令 done