IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java基础-数据类型 -> 正文阅读

[Java知识库]Java基础-数据类型

Java数据类型

强类型语言

  • 要求变量的使用要求严格符合规定,所有变量都必须县定义后才能使用

  • 优点:安全性高

  • 缺点:速度比较慢

弱类型语言

  • 要求变量的使用可以不符合规定,所有变量都可以不定义都能使用

Java的数据类型分为两大类

  • 基本类型(primitive type)

  • 引用类型(reference type)

基本类型

  • 数值类型

    • 整数类型

      • byte占1个字节范围:-128-127

      • short占2个字节范围:-32768-32767

      • int占4个字节范围:-2147483648-2147483647

      • long占8个字节范围:-9223372036854775808-9223372036854775807

    • 浮点类型

      • float占4个字节

      • double占8个字节

    • 字符类型char占2个字节

  • boolean类型:占1位字节只有true和false

引用类型

  • 接口

  • 数组

 ? ? ? ?//八大数据基本类型
?
 ? ? ? ?//整数
 ? ? ? ?int num1 = 1000000000; //最常用
 ? ? ? ?byte num2 = 20;
 ? ? ? ?short num3 = 30;
 ? ? ? ?long num4 = 30L; //long类型要在数字后面加个L
?
 ? ? ? ?//小数:浮点书
 ? ? ? ?float num5 = 1.1F; //float类型要在数字后面加个F
 ? ? ? ?double num6 = 3.141592653;
?
 ? ? ? ?//字符
 ? ? ? ?char name1 = 'A';
 ? ? ? ?//字符串,String不是关键字,是一个类
????????//String name2 = "aaa";
 ? ? ? ?//布尔值
 ? ? ? ?boolean flag = true;
 ? ? ? ?boolean flag1 = false;

字节

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机数据处理的基本单位,习惯上用大写B来表示

  • 1B(byte,字节)=8bit(位)

  • 字符:是指计算机中使用的字母,数字,子和符号

    • 1bit表示1位

    • 1Byte表示一个字节1B=8b

    • 1024B =1KB

    • 1024KB = 1M

    • 1024M = 1G

进制转换

  • 二进制

  • 八进制

  • 十进制

  • 十六进制

 ? ? ? ?//整数拓展 ? 进制 ? 二进制0b ? ? ? ? 八进制0 ? ? ? 十进制 ? ? ? 十六进制0x
 ? ? ? ?int i = 10;
 ? ? ? ?int i2 = 0b111; //二进制0b
 ? ? ? ?//2进制转10进制  2进制: 0b111 十进制:1*2*2+1*2+1=7 = 1*2^2+1*2^1+1
 ? ? ? ?int i3 = 0121; //八进制0
 ? ? ? ?//8进制转10进制  8进制: 0x121 十进制:1*8*8+2*8+1=81 = 1*8^2+2*8^1+1
 ? ? ? ?int i4 = 0x101; //十六进制0x ? 0~9 A-F 16
 ? ? ? ?//16进制转10进制 ? 16进制: 0x101 十进制:1*16*16+0*16+1=257 = 1*16^2+0*16^1+1
 ? ? ? ?/**
 ? ? ? ? * 十进制转2进制
 ? ? ? ? * 十进制15  15/2=7余1
 ? ? ? ? * ? ? ? ?  尾数部1 ? ? :1
 ? ? ? ? * ? ? ? ?  7/2=3余1
 ? ? ? ? * ? ? ? ?  尾数补1 ? ? :11
 ? ? ? ? * ? ? ? ?  3/2=1余1 ?  :111
 ? ? ? ? * ? ? ? ?  1直接补 ? ?  :1111
 ? ? ? ? *十进制50 ? 50/2=25
 ? ? ? ? * ? ? ? ?  尾数补0 ? ? ? ?  :0
 ? ? ? ? * ? ? ? ?  25/2=12余1 ? ?  :10
 ? ? ? ? * ? ? ? ?  12/2=6 ? ? ? ?  :010
 ? ? ? ? * ? ? ? ?  6/2=3 ? ? ? ? ? :0010
 ? ? ? ? * ? ? ? ?  3/2=1y1 ? ? ? ? :10010
 ? ? ? ? * ? ? ? ?  1 ? ? ? ? ? ? ? :110010
 ? ? ? ? *
 ? ? ? ? */
 ? ? ? ?/**十进制转8进制
 ? ? ? ? * 十进制50  50/8=6y2 ? ?  :2
 ? ? ? ? * ? ? ? ?  6 ? ? ? ? ? ? :62
 ? ? ? ? */
 ? ? ? ?/**十进制转16进制
 ? ? ? ? * 十进制50  50/16=3y2 ? ?  :2
 ? ? ? ? * ? ? ? ?  3 ? ? ? ? ? ? :32
 ? ? ? ? */
?
 ? ? ? ?/**十进制小数转2进制
 ? ? ? ? *
 ? ? ? ? * 十进制0.4
 ? ? ? ? * 乘二,取整数
 ? ? ? ? * ? ? ? ?  0.4*2=0.8 ? ? ? :0.0
 ? ? ? ? * ? ? ? ?  0.8*2=1.6 ? ? ? :0.01
 ? ? ? ? * ? ? ? ?  0.6*2=1.2 ? ? ? :0.011
 ? ? ? ? * ? ? ? ?  0.2*2=0.4 ? ? ? :0.0110 小数后面不够八位继续
 ? ? ? ? * ? ? ? ?  0.4*2=0.8 ? ? ? :0.01100
 ? ? ? ? * ? ? ? ?  0.8*2=1.6 ? ? ? :0.011001
 ? ? ? ? * ? ? ? ?  0.6*2=1.2 ? ? ? :0.0110011
 ? ? ? ? * ? ? ? ?  0.2*2=0.4 ? ? ? :0.01100110 小数后面够八位结束
 ? ? ? ? */
 ? ? ? ?/**十进制小数转2进制
 ? ? ? ? *
 ? ? ? ? * 十进制111.4
 ? ? ? ? * 整数部分直接转换 ? ? 111转2进制:1101111
 ? ? ? ? *小数部分乘二,取整数
 ? ? ? ? * ? ? ? ?  0.4*2=0.8 ? ? ? :1101111.0
 ? ? ? ? * ? ? ? ?  0.8*2=1.6 ? ? ? :1101111.01
 ? ? ? ? * ? ? ? ?  0.6*2=1.2 ? ? ? :1101111.011
 ? ? ? ? * ? ? ? ?  0.2*2=0.4 ? ? ? :1101111.0110 小数后面不够八位继续
 ? ? ? ? * ? ? ? ?  0.4*2=0.8 ? ? ? :1101111.01100
 ? ? ? ? * ? ? ? ?  0.8*2=1.6 ? ? ? :1101111.011001
 ? ? ? ? * ? ? ? ?  0.6*2=1.2 ? ? ? :1101111.0110011
 ? ? ? ? * ? ? ? ?  0.2*2=0.4 ? ? ? :1101111.01100110 小数后面够八位结束
 ? ? ? ? */
 ? ? ? ?System.out.println(i);
 ? ? ? ?System.out.println(i2);
 ? ? ? ?System.out.println(i3);
 ? ? ? ?System.out.println(i4);

?

浮点数注意事项-最好避免使用浮点数进行比较

  • float

    • 表示的长度有限的,离散的

    • 有舍入误差

    • 大约接近不等于

  • double

需要比较可以使用BigDecimal-数学工具类

        float f = 0.1f; ?//0.1
 ? ? ? ?double d = 1.0/10; ?//0.1
 ? ? ? ?System.out.println(f==d); ?//结果为:false
 ? ? ? ?float f1 = 12341241241241241f;
 ? ? ? ?float f2 = f1+1;
 ? ? ? ?System.out.println(f1==f2);//结果为:true

字符拓展

  • char

    • 字符的本质还是数字

  • 转义字符

  • 对象

?
 ? ? ? ?/**
 ? ? ? ? * 字符拓展
 ? ? ? ? */
 ? ? ? ?char c1 = 'a';
 ? ? ? ?char c2 = '中';
 ? ? ? ?System.out.println((int)c1);//强制转换成int格式
 ? ? ? ?//输出结果:97
 ? ? ? ?System.out.println(c1);
 ? ? ? ?//输出结果:a
 ? ? ? ?System.out.println((int)c2);//强制转换成int格式
 ? ? ? ?//输出结果:20013
 ? ? ? ?System.out.println(c2);
 ? ? ? ?//输出结果:中
 ? ? ? ?/**
 ? ? ? ? * 所有字符本质还是数字
 ? ? ? ? * 编码表Unicode (97 = a 65 =A) 2字节  0-65536  Excel  2 16 = 65536
 ? ? ? ? */
 ? ? ? ?char c3 = '\u0061';//输出结果a
 ? ? ? ?System.out.println(c3);
 ? ? ? ?//转义字符
 ? ? ? ?// \t 制表符,相当于空格
 ? ? ? ?// \n 换行
 ? ? ? ?//...
 ? ? ? ?System.out.println("Hello\tWorld"); //输出结果:Hello    World
 ? ? ? ?System.out.println("Hello\nWorld");//输出结果:Hello
 ? ? ? ?// ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? World
?
?
 ? ? ? ?String sa = new String("hello");
 ? ? ? ?String sb = new String("hello");
 ? ? ? ?System.out.println(sa==sb);//输出结果:false
 ? ? ? ?String sc = "hello";
 ? ? ? ?String sd = "hello";
 ? ? ? ?System.out.println(sc==sd);//输出结果:true
 ? ? ? ?//对象  从内存分析
?
        //布尔值扩展
 ? ? ? ?boolean flag = true;
 ? ? ? ?if (flag) {}
 ? ? ? ?//上下是一个意思
 ? ? ? ?if (flag == true) {}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 12:51:50  更:2021-10-29 12:54:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:29:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码