数据类型

java有两大类数据类型:基本数据类型引用数据类型

基本数据类型

  • 整数型:byte、short、int、long
  • 浮点型:float、double
  • 字符型:char
  • 布尔型:boolean

各种基本数据类型的取值范围:

数据类型 位数 默认值 取值范围 举例说明
byte(位) 8 0 -2^7 - 2^7-1 byte b = 10;
short(短整数) 16 0 -2^15 - 2^15-1 short s = 10;
int(整数) 32 0 -2^31 - 2^31-1 int i = 10;
long(长整数) 64 0 -2^63 - 2^63-1 long l = 10l;
float(单精度) 32 0.0 -2^31 - 2^31-1 float f = 10.0f;
double(双精度) 64 0.0 -2^63 - 2^63-1 double d = 10.0d;
char(字符) 16 0 - 2^16-1 char c = 'c';
boolean(布尔值) - false true、false boolean b = true;
void

举例:byte数据类型在计算机中的表示:

注意事项

  • 字符串不是基本类型,而是引用类型
  • 浮点型可能只是一个近似值,并非精确的值
  • 表示范围与字节数不一定相关,如float比long表示范围广,但是float是4字节,long是8字节
  • 浮点数中默认类型是double,整数中默认类型是int
  • 如果要给long变量赋值,常量应该加后缀 L 或者 l
  • 如果要给floag变量赋值,常量后缀应该加 F 或者 f

整数类型

整数类型的默认类型是 int

浮点数类型

浮点数类型的默认类型是 double

字符类型

字符类型的常量有三种表示的方式:

  1. 直接通过单个字符指定字符型常量:如 'A''B''5'
  2. 通过转移字符表示特殊字符型常量:如 '\n''\\'
  3. 直接使用Unicode值来表示字符型常量:如: '\u66f9''\u950b'

常用的转义字符:

Unicode编码表:

Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分
Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。 编码从0到127的字符与ASCII编码的字符一样,比如字母"a"的Unicode 编码是0x0061,十进制是97,而"a"的ASCII编码是0x61,十进制也是97, 对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来 编码,看一下Unicode对汉字的编码

基本数据类型的转换

当数据类型不一样时,将会发生数据类型转换

自动转换(隐式)

  1. 特点:代码不需要进行特别说明,自动完成
  2. 规则:数据范围从小到大

注意:

  • char、byte、short等类型在计算时首先会转换为int类型,然后在进行计算
  • boolean 类型不能发生数据类型转换

强制转换(手动)

语法:(要转换的目标类型) 要转换的数据

  1. 需要自己生命如何转换
  2. 会出现数据或精度损失

JavaSE复习~基本数据类型的更多相关文章

  1. javaSE复习之——线程

    线程其实就是程序执行的一条路径,一个进程中可以包含多条线程,多线程并发执行可以提高程序效率,可以同使完成多项任务 多线程的应用场景 迅雷多线程一起下载 服务器同时处理多个客户请求 多线程原理(单核CP ...

  2. JavaSE复习日记 : 八种基本数据类型

    /* * 基本数据类型 * * Java里的8种基本数据类型: * byte --- 1 byte = 8 bit; * short --- 2 byte = 16 bit; * int --- 4 ...

  3. JavaSE复习日记 : 算是个小前言吧

    /* * Java也学了好久了,抽个时间整理了一下课堂笔记,也有些是我刚开始学会犯的一些错误.在这里浅谈一下JavaSE的基础内容,对我来说也是一种不错的复习方式. * * 那好,对于初学者来说,学习 ...

  4. javaSE复习总结

    之前匆匆忙忙学完了java,后来又接着学习ee,然而,越是想要快一点最后反而会更慢一点.因为匆忙间 我几乎什么都没学会.在后面的学习中实在非常吃力.就把javase 的视频大部分又重新看了一遍.真的收 ...

  5. JavaSE复习日记 : 接口

    /* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但 ...

  6. JavaSE复习日记 : Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符

    // Java操作符\关系运算符\逻辑运算符\赋值运算符\字符串连接符\三元运算符 /* * 一 Java操作符 * * Java操作符都有哪些? * +, -, *, /, %, ++, -- * ...

  7. ndk学习之C语言基础复习----基本数据类型、数组

    关于NDK这个分类在N年前就已经创建了,但是一直木有系统的记录其学习过程,当然也没真正学会NDK的技术真谛,所以一直也是自己的一个遗憾,而如今对于Android程序员的要求也是越来越高,对于NDK也是 ...

  8. JavaSE复习~Java语言发展史

    Java概述 什么是Java语言? Java语言是美国Sun公司(Stanford University NetWork),在1995年推出的高级编程语言. 所谓编程语言,是计算机的语言,人们可以使用 ...

  9. JavaSE复习巩固

    第二天:复习if语句,扫描器,switch语句,循环语句 1.if语句---流程控制语句 if之前学的语句是顺序结构 1.1 单个if的语法结构 if(条件判断){ 满足条件需要做的事情: } int ...

随机推荐

  1. 错误记录(三):Python

    1,在函数中传入字典代替不定长参数 func(**d) # 传入时候要注意用**解包 2,一些常见的名字少用,容易和系统或其他包重名 3,递归中不能count+=1 #!/usr/bin/python ...

  2. AcWing 895. 最长上升子序列

    //设上升序列的最后一个数字为第i个,那么就以第i-1个位分类标准, //i-1可以没有,也可以是在数组中下标为1,下标为2 //一直到下标为i-1的数字 #include <iostream& ...

  3. 2.7 Axure rp (快速原型设计工具)

    一.   Axure rp 下载安装 直接百度栏输入Axure rp即可下载.安装无特别处,一直点击下一步即可. 安装的如果是英文版,可以下载汉化包,进行汉化. 汉化参照网址:http://www.a ...

  4. webpack4.41.0配置二(加载器_url-loader/babel-loader/sass-loader)

    loader是webpack用来预处理源文件的,比如typesrcipt形式的文件最终都得转成浏览器可以执行的js文件 (注:以下的配置代码不一定与下方一摸一样,具体与官网上https://webpa ...

  5. Go_CSP并发模型

    go语言的最大两个亮点,一个是goroutine,一个就是chan了.二者合体的典型应用CSP,基本就是大家认可的并行开发神器,简化了并行程序的开发难度,我们来看一下CSP. 11.1.CSP是什么 ...

  6. linux下grep分析apache日志的命令集合

    https://my.oschina.net/hmc0316/blog/112004 实例:月份英文简写英文全称一月Jan.January二月Feb.February三月Mar.March四月Apr. ...

  7. css动画效果之transition(动画过渡效果属性)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Codeforces Round #599 (Div. 2) B1. Character Swap (Easy Version)

    This problem is different from the hard version. In this version Ujan makes exactly one exchange. Yo ...

  9. plsql 导出oracle数据库

    plsql 导出数据库有两个问题,一个是只导出结构,一个是导出表结构加数据这样的,首先人家让我导成sql语句 这不是简单,首先打开PLSQL 一.导出结构 1.然后tools->Export U ...

  10. drf三大组件之频率认证组件

    复习 """ 1.认证组件:校验认证字符串,得到request.user 没有认证字符串,直接放回None,游客 有认证字符串,但认证失败抛异常,非法用户 有认证字符串, ...