03 Java的数据类型分为两大类 类型转换 八大基本类型
数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
Java的数据类型分为两大类
基本类型(primitive type)
- 数值类型
- 整数类型
- byte占1个字节范围:-128-127
- short占2个字节范围:-32768-23768
- int占4个字节范围:-2147483648-2147483648
- long占8个字节范围:-9223372036854775808-9223372036854775808
- 浮点类型
- float占4个字节
- double占8个字节
- 字符类型char占2个字符
- 整数类型
- boolean类型:占1位其值只有true和false两个
- 数值类型
引用类型(reference type)
- 类
- String
- BigDecimal 数学工具类
- 接口
- 数组
面试题:Java基础八大类型有哪些?
- 类
扩展
整数扩展
//进制: 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; // 十六进制0x 0~9 A~F 16
浮点数
// float 有限 离散 舍入误差 大约 接近但不等于
// 最好不要使用浮点数进行比较
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
if(f==d){}//返回false float d1 = 12321312312312f;
flaot d2 = d1+1;
if(d1==d2){}//返回true
面试题:银行业务怎么表示?钱
DigDecimal 数学工具类
字符
char c1 = 'A';
char c2 = '中';
System.out.println((int)c1); //强制转换成Unicode对应的数值
System.out.println((int)c2); //强制转换成Unicode对应的数值 char c3 = '\u0061';
System.out.println(c3);//a
转义字符
- \n 换行
- \t 制表符
布尔值扩展
boolean flag = true
if(flage){ }
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低 --------------------------------> 高
byte,short,char-> int -> long -> float -> double
运算中,不同类型的数据先转换为同一类型,然后进行运算。
强制转换和自动类型转换
// 强制转换 (类型)变量名 高-->低
int i = 128
byte b = (baye)i; //内存溢出,byte最大值为127 // 自动转换 低-->高
int i = 128
double i =i; // 精度问题,小数点后面的数丢失
System.out.println((int)23.7) // 23
System.out.println((int)-45.89f) // -45 // char的强制转换
char c ='a';
int d = c+1;
System.out.println(d); // 输出98
System.out.println((char)d); // 输出b
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,需要强制转换
- 转换的时候可能存在内存溢出,或者精度的问题
// 操作比较大的数的时候,注意溢出问题
// JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; // -1474836480,计算是已经溢出
long total2 = money*years; // 默认是int,转换之前就已经存在问题
// 解决方式
long total2 = money*((long)years); // 先吧一个数转换为long
03 Java的数据类型分为两大类 类型转换 八大基本类型的更多相关文章
- java的数据类型分为两大类
java的数据类型分为两大类 基本类型(primitive type) 数据类型 整数类型 byte占一个字节范围:-128-127 short占两个字节范围:-32768-32767 int占四个字 ...
- dll的加载方式主要分为两大类,显式和隐式链接
之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...
- CSS的选择器分为两大类
CSS的选择器分为两大类:基本选择题和扩展选择器. 基本选择器: 标签选择器:针对一类标签 ID选择器:针对某一个特定的标签使用 类选择器:针对你想要的所有标签使用 通用选择器(通配符):针对所有的标 ...
- 【Java知识点专项练习】之 数据类型两大类
Java的数据类型分为两大类:基本类型和引用类型: 基本类型只能保存一些常量数据,引用类型除了可以保存数据,还能提供操作这些数据的功能: 为了操作基本类型的数据,java也对它们进行了封装, 得到八个 ...
- 关于fmri数据分析的两大类,四种方法
关于fmri数据分析的两大类,四种方法: 数据驱动: tca:其实这种方法,主要是提取时间维的特征.如果用它来进行数据的分析,则必须要利用其他的数据方法,比如结合ICA. ica:作为pca的一般化实 ...
- Access Violation分成两大类:运行期和设计期(很全的解释)
用Delphi开发程序时,我们可以把遇到的Access Violation分成两大类:运行期和设计期. 一.设计期的Access Violation 1.硬件原因 在启动或关闭Delphi IDE以 ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
- (一)spark算子 分为3大类
value类型的算子 处理数据类型为value型的算子(也就是这个算子只处理数据类型为value的数据),可以根据rdd的输入分区与输出分区的关系分为以下几个类型 (1)输入分区与输出分区一对一型 m ...
- 类中的两大类(string类、math类)的应用
类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...
随机推荐
- 服务器性能测试利器之sysbench
前言 sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.sysbench是基于LuaJIT的可编写脚本的多线程基准测试工 ...
- Callable接口及Futrue接口详解
Callable接口 有两种创建线程的方法-一种是通过创建Thread类,另一种是通过使用Runnable创建线程.但是,Runnable缺少的一项功能是,当线程终止时(即run()完成时),我们无法 ...
- 集合、Collection、list、set、HashSet
一.集合的理解:将多个数据放在一起 简介: 1).可以动态保存任意多个对象,使用比较方便!2).提供了一系列方便的操作对象的方法: add.remove.set. get等 1.集合中的实现和继承图 ...
- nodejs串行无关联
var async = require('async'); //串行无关联async.series({ one:function(cb) { setTimeout(function(){ consol ...
- 同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念?
同事提出个我从未想过的问题,为什么Kubernetes要"多此一举"推出静态Pod概念? 我们知道k8s中Pod可以说是一个合格的容器小管家,Pod 被设计成支持多个容器可以一起进 ...
- 7、架构--location、LNMP架构、uwsgi部署、BBS项目部署
笔记 1.晨考 1.Nginx中常用的模块 autoindex stub_status allow 和 deny basic limit_conn limit_req 2.配置步骤 1.创建连接池 2 ...
- python迭代器对象及异常处理
内容概要 内置函数(可与匿名函数一起使用) 可迭代对象 迭代器对象 for循环内部原理 异常处理 内容详细 一.内置函数 # 1. map() 映射 l1 = [1, 3, 5, 7, 9] res ...
- suse 12 二进制部署 Kubernetets 1.19.7 - 第06章 - 部署kube-apiserver组件
文章目录 1.6.部署kube-apiserver 1.6.0.创建kubernetes证书和私钥 1.6.1.生成kubernetes证书和私钥 1.6.2.创建metrics-server证书和私 ...
- pypi服务器搭建
pypi服务器搭建 [root@localhost ~]# hostnamectl set-hostname --static pypi-server [root@pypi-server ~]# yu ...
- 轻松理解JS中的面向对象,顺便搞懂prototype和__proto__的原理介绍
这篇文章主要讲一下JS中面向对象以及 __proto__,ptototype和construcator,这几个概念都是相关的,所以一起讲了. 在讲这个之前我们先来说说类,了解面向对象的朋友应该都知道, ...