java基本类型(八大基础类型)

八大基本类型如下
byte
boolean
char
int
short
long
float
double

下面具体介绍各个类型:

1、booelan(布尔类型)

布尔类型占1个字节(8位),它的的值必须是true或者false,在JVM中会转换为1(true)或者0(false)。

2、char(字符类型)

char(字符类型)
char类型占2个字节(16位),用来表示字符,是基本数据类型
String表示字符串,是类类型。一个String是由0~n个char组成。

额外:关于字符编码

(1)Java语言对文本字符采用Unicode编码。由于计算机内存只能存取二进制数据,因此必须为各个字符进行编码。
(2)常见编码:
1、ASCII
它是现今最通用的单字节编码系统,它主用于表达现代英语和其他西欧语言中的字符,只用一个字节的7位,一共表示128个字符。

2、ISO-8859-1
又称为Latin-1, 是国际标准化组织(ISO)为西欧语言中的字符制定的编码,用一个字节(8位)来为字符编码,与ASCII字符编码兼容。所谓兼容,是指对于相同的字符,它的ASCII字符编码和ISO-8859-1字符编码相同。

3、GB2312
包括对简体中文字符的编码,一共收录了7445个字符(6763个汉字+682个其他字符). 它与ASCII字符编码兼容。

4、GBK
对GB2312字符编码的扩展,收录了21886个字符(21003个字符+其它字符), 它与GB2312字符编码兼容。

5、Unicode
收录了全世界所有语言文字中的字符,是一种跨平台的字符编码,Unicode具有两种编码方案:
用2个字节(16位)编码,被称为UCS-2, Java语言采用;
用4个字节(32位)编码,被称为UCS-4;

6、UTF
有些操作系统不完全支持16位或32位的Unicode编码,UTF(UCS Transformation Format)字符编码能够把Unicode编码转换为操作系统支持的编码,常见的UTF字符编码包括UTF-8、UTF-16、UTF-32


关于UTF-8,使用一至四个字节为每个字符编码,其中大部分汉字采用三个字节编码少量不常用汉字采用四个字节编码。因为 UTF-8 是可变长度的编码方式,相对于 Unicode 编码可以减少存储占用的空间所以被广泛使用

关于char类型的值
字符’a’,的表示形式:
二进制数据形式为 :0000 0000 0110 0001
十六进制数据形式为 :0x0061
十进制数据形式为 :97

//使用具体字符来表示a
char c = 'a';
//使用Unicode编码来表示字符a
char c = '\u0061';
//0x开头的数字为十六进制,,使用十六进制表示a
char c = 0x0061;
//使用十进制来表示a
char c = 97;
//0开头的数字为八进制,使用八进制表示a
char c = 0141;
//一个中文汉字就是一个字符
char a = '中';

3、整型

都是用来存整数的。

分类:

类型 在内存中占的位数或字节数 范围
Byte 8位,一个字节 -2 ^7~2 ^7-1
short 16位,2个字节 -2 ^15~2 ^15-1
int 32位,4个字节 -2 ^31~2 ^31-1
long 64位,8个字节 -2 ^63~2 ^63-1

在Java语言中,为了区分不同进制的数据,八进制数以“0”开头,十六制以“0x”开头,二进制以“0b”开头

byte b1 = 97; //十进制
byte b2 = 0141;// 八进制
byte b3 = 0x61; //十六进制
byte b4 = 0b01100001; //二进制//都是97打印出来
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
System.out.println(b4);

1、Byte(字节类型)

(1)计算机中,数据传输大多是以“位”(bit,比特)为单位一位就代表一个0或1(二进制),每8个位(bit)组成一个字节(Byte),所以,1个字节=8位0101代码,例如 0000 0001。
例如,0000 0001 ,表示二进制的数字1,它是1个字节,共8位0101代码组成。

(2)十六进制有0 1 2 3 4 5 6 7 8 9 A B C D E F ,它的范围是0~ 15 ,每4位0101代码可以表示一个十六进制的数字,因为4位表示的最小值是 0000,最大值1111 ,刚好范围是0~15 .

总结:1字节=8位

2、Byte\long\int\short的使用

整数类型的默认类型是int,对于给出一个字面值是99的数据,在没有指明这个数据是什么具体的类型的情况下,那么java默认认为是int类型。

代码一:

byte a = 1;//编译报错
//a+1中a是byte类型,字面值1没有声明类型,那么默认是int
//byte是8位,int是32位,那么结果是32位的数字
//b只是一个byte类型的变量,那么只能接收8位的数字
//修改为int b = a+1;就可以编译通过
byte b = a+1;//编译通过
//虽然1+1中的1都是默认的int类型
//但是这个俩个1都是固定的字面值
//编译器可以判断出其结果是否超出了byte表示的范围
//上面例子中a+1不能判断出结果的原因是:a是变量,是有可能发生变化的
byte c = 1+1;//编译报错
//编译器判断出其结果超出了byte的表示范围(-128~127)
byte d = 1+127;//编译报错
/*原因:32位的数据赋值给byte类型的变量,因为使用的1这些都是字面值,默认是int,注意关键点在在最左边的1,编译器不认为是符号位,所以它默认是在前面补了24个0*/
byte e = 0b11111111;//编译通过
//输出结果为255
//因为1的前面补了24个0
int e = 0b11111111;//编译通过
//输出结果为-1
//因为这里做了类型强制转换
byte f = (byte)0b11111111;

代码二:

 {byte a=56;                  //编译通过
byte b=156;                 //编译失败,超出了byte的取值范围
int c=9999999999;           //编译失败,超出了int的取值范围(10个9)
long d=999999999;           //编译通过,常量在int范围内(9个9),int类型可以自动转成long类型
long e=9999999999;          //编译失败,常量超出int范围,不可以自动转成long类型
long f=9999999999L;         //编译通过,在long类型的范围内(注意数值后面加了个L,表示这是long类型)
Long g=999999999;           //Long不是基本数据类型,不能和int直接转化
}

4、浮点型

表示小数的类型
分类为float和double类型,float的精度为7位有效数字,double的精度为16位有效数字(浮点类型的默认类型是double类型)

声明

//后面加f或者F(必加)
float f = 10.5f;
//后面加d或者D或者不加
double d = 10.5d;

代码:

//编译通过
//字面值1.5默认类型是double
double d = 1.5;
double d = 1.5D;//编译报错
//字面值1.5默认类型是double
//double和float的精确度不一样
float f = 1.5;//f2编译通过,因为字面值1的类型是int,可以自动转变为float类型
//f3编译报错,因为字面值1.5的类型是double,float不能转换为double类型。
float f1 = 10.5f;
float f2 = f1+1;
float f3 = f1+1.5;

浮点型的数据精度丢失
例如:

System.out.println(1.0-0.66);  //输出结果: 0.33999999999999997

Java中的浮点数类型float和double不能够进行精确运算,虽然大多数情况下是运行是正常的,但是偶尔会出现如上所示的问题。浮点数实际上只是个近似值,所以从二进制转化为十进制浮点数时,精度容易丢失,导致精度下降。

解决?可以使用BigDecimal类

//add方法 +
//subtract方法 -
//multiply方法 *
//divide方法
BigDecimal d1 = BigDecimal.valueOf(1.0);
BigDecimal d2 = BigDecimal.valueOf(0.66);
double result = d1.subtract(d2).doubleValue();
System.out.println(result);
//输出结果:0.34

java基础:基本类型相关推荐

  1. 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...

    一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...

  2. Java基础__Integer类型中的自动装箱

    Integer类型的自动装箱:就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱. ...

  3. Java基础—char类型数据

    char类型介绍 char类型原本表示单个字符,但由于Unicode字符集扩充,导致有些字符需要使用两个char来描述 大小: 一个char类型占两个字节,16位 范围: 为十进制数 0 ~ 6553 ...

  4. JAVA基础——基本类型

    1.基本数据类型 整数类型:byte, short, int, long 浮点数类型:float, double 字符类型:char 布尔类型:boolean 不同数据类型占用的字节数不一样,假设一个 ...

  5. JAVA基础 装箱类型

    java 装箱类型总结 概述 在java中有这8种基本类型:char.byte.short.int.long.float.double.boolean,但它们没有属性与方法,为了解决了这个问题,包装类 ...

  6. java基础——包裹类型

    public class baoguo{ //包裹类型 /的第一个字母也是大写的 new =创建 public static void main(String[]args){ //基础类型 包裹类型 ...

  7. Java基础-基本类型

    一.基本类型 ​ 8种基本类型,其中4种整型,两种浮点型,一种表示unicode的字符类型,一种布尔类型 1.整型 ​ 1)int :4字节,32位 ​ 2)short:2字节,16位 ​ 3)lon ...

  8. Java 基础【12】 日期类型

    java api中日期类型的继承关系 java.lang.Object --java.util.Date --java.sql.Date --java.sql.Time --java.sql.Time ...

  9. java基础(十) 深入理解数组类型

    戳上面的蓝字关注我们哦! 精彩内容 精选java等全套视频教程 精选java电子图书 大数据视频教程精选 java项目练习精选 1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. ...

  10. java 类说明,java基础类型说明

    一.java基础类型分为4类8种分别为: 四类分为: 整数类型 浮点类类 字符类型 布尔类型 八种分别为: 整数类型: byte short int long 浮点类型: float double 字 ...

最新文章

  1. 来聊聊COCO数据集上两大霸榜模型-CBNet和DetectoRS
  2. python网络开发框架_greenev首页、文档和下载 - Python网络服务框架 - OSCHINA - 中文开源技术交流社区...
  3. getprop 与 dumpsys 命令
  4. pythonweb开发-Web开发
  5. div根据内容改变大小并且左右居中
  6. OpenCV简单的过滤器平滑的实例(附完整代码)
  7. Youtube深度学习推荐系统
  8. 【加解密学习笔记:第一天】操作系统基础知识
  9. 计算机体系结构数据库论文,信息管理中计算机数据库系统研究论文
  10. mysql like 贪婪匹配_mysql模糊查询like与REGEXP的使用详细介绍
  11. C/C++ 编译器优化
  12. BGP Flow Specification原理
  13. HP 6L WIN7 WIN8 驱动
  14. 电子计算机扫描仪系统,人体三维扫描仪
  15. Bootstrap 折叠(Collapse)插件
  16. html的介绍及常用标签,吊打面试官系列!
  17. matlab水汽计算公式,[转载]matlab 解方程组
  18. 【记录一次服务器被攻击】-[附带解决方案]
  19. 2019浙江计算机二级考试考纲,计算机二级考试大纲(2019全国计算机二级考试大纲)...
  20. redis的持久化操作2 AOF

热门文章

  1. 生物密码具有唯一性和不变性,必须掌握在自己手中!
  2. Python数学计算工具5、Python求最最小公倍数
  3. 寒假AWD训练之初学代码审计
  4. 南阳《建筑业企业施工劳务资质备案申请表》填写说明
  5. 关于C4D:如何将已经被FFD后的模型转变成可编辑状态
  6. Java_io体系之PipedWriter、PipedReader简介、走进源码及示例——14
  7. python练习:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
  8. excel 公式规则
  9. excel怎么启用宏_用VBA让EXCEL变成股票查看软件
  10. 阿尔法编程平台python答案_阿尔法编程python答案