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数据类型

HelloWorld

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

简单介绍

在这里插入图片描述

注意事项:

  1. 一个Java文件当中,只能有一个public的类
  2. 类名和文件名要相同
  3. 字节码文件 -class文件,一个类对应一个字节码文件好处:随取随用
  4. 文件名不可以是中文和数字

数据类型

在Java中,各类型变量所占字节,都和操作系统没有直接关系

  1. Java当中没有所谓的无符号类型,只有有符号的
  2. Java当中没有全局变量
  3. 在方法中定义的叫:变量
  4. 在类的内部、方法的外部定义的,统称为属性(成员变量)
  5. Java中的变量不许以数字开头
  6. 标识符:数字、字母、下划线、$(不推荐使用)
  7. Java中定义变量名的时候采用小驼峰命名

8种基本数据类型如下:

<一>四种整数类型:

1.整型 int

若一个局部变量未初始化,就不能使用这个变量,否则会出现程序错误
此处也体现了Java的安全性

在Java中,一个int变量占4个字节

基本语法格式:

int 变量名=初始值
int a = 10;

使用以下代码查看Java中整型数据范围:
任何类型都可以这样查看范围

System.out.println(Integer.MAX_VALUE);  // int 的最大值
System.out.println(Integer.MIN_VALUE);  // int 的最小值

表示范围:-231~(231-1),大概就是:-21亿到+21亿
注意事项:

  1. 若运算结果超出 int 最大范围,就会出现溢出的情况
  2. int对应的包装类:Integer

2.长整型 long

在Java中,一个long变量占8个字节
基本语法格式:

long 变量名 = 初始值;
long a = 10L;

表示范围:-2?3~(2?3-1)

注意事项:

  1. long a=10L,若不加L,则a是长整型,10是整型;
  2. L或者l 都可以,但小写l 容易与数字1 混淆,故一般写成"L"
  3. long对应的包装类:Long

3.短整型 short

在Java中,一个short变量占2个字节
基本语法格式:

short 变量名 = 初始值;
short a = 10;

注意事项:

  1. short对应的包装类:Short

4.字节类型 byte

在Java中,一个byte变量占1个字节
基本语法格式:

btye 变量名 = 初始值;
byte a = 10;

注意事项:

  1. byte对应的包装类:Byte
  2. byte的最大值是127,在给byte类型变量赋值的时候,不能超过最大值,若超过,则就不再是byte类型,而是int类型

<二>两种浮点类型:

1.单精度浮点型 float

在Java中,一个float变量占4个字节
基本语法格式:

float 变量名 = 初始值;
float a = 3.14f; //写作 3.14F 也行

注意事项:

  1. 由于 float 能表示的数据范围精度较小,一般在工程上用到浮点数,优先考虑 double
  2. 在Java中,不允许把一个 double类型的值直接复制给 float,会出现编译出错,体现了Java的安全性
  3. . float对应的包装类:Float

2.双精度浮点型 double

在Java中,一个double变量占8个字节
基本语法格式:

double 变量名 = 初始值;
double a = 3.14;

注意事项:

  1. 一般情况,如果以后写项目,遇到小数,建议使用double类型
  2. 小数没有精确值,只有一个范围
  3. double对应的包装类:Double

<三>一种字符类型:

字符类型 char

在Java中,一个char变量占2个字节
基本语法格式:

char 变量名 = 初始值;
char ch = 'a';
char ch = '哈'; // 一个汉字两个字节

注意事项:

  1. char对应的包装类:Character
  2. Java在处理char类型的数据时,在底层是按unicode码来处理的

<四>一种布尔类型

布尔类型 boolean

在Java中,boolean 类型没有明确的大小
基本语法格式:

boolean 变量名 = 初始值;
boolean flg = false;

注意事项:

  1. boolean对应的包装类:Boolean
  2. 在Java中,布尔类型只有两个取值,是 true 和 false
  3. 在Java中,没有所谓的0是假,非0是真,真只有true,假只有false

总结

数据类型包装类Java中所占字节数
intInteger4
longLong8
shortShort2
byteByte1
floatFloat4
doubleDouble8
charCharacter2
booleanBoolean没有规定

引用数据类型如下:

本篇只提字符串类型:

字符串类型 String

基本语法格式:

String 变量名 = "初始值";
String str = "Hello";

注意事项:

  1. 字符串的+操作,表示字符串的拼接
  2. 若有两个String类型的变量进行比较,a==b是对两个变量的地址值进行比较
  3. 当一个+表达式中存在字符串时,都是执行字符串的拼接行为

类型转换:

隐式 / 显式 类型转换

隐式:把一个小类型转换为大类型
显式:把一个大类型转换为小类型,需进行强制类型转换

// 隐式类型转换:
int a = 10;
long b = a;
//显式类型转换:
long a = 10;
int b = (int)a;

不同数字类型的变量之间赋值,表示范围更小的类型能隐式转成范围较大的类型,反之,则需要强制类型转换

int 和 boolean 相互赋值

int 和 boolean两种毫不相干的类型,不能相互赋值

类型转换小结

  1. 不同数字类型的变量之间赋值,表示范围更小的类型能隐式转成范围较大的类型
  2. 如果需要把范围大的赋值给范围小的,则需要强制类型转换,但可能会精度丢失

数值提升:

int 和 long混合运算

int a = 10;
long b = 20;
int c = a + b;  //编译出错,从long转成int会丢失精度
long d = a + b; // 编译通过

结论:当int和long混合运算时,int 会提升成 long,得到的结果是 long类型,需要使用 long类型来接收结果,若要使用 int类型来接收的话,就需要使用强制类型转换

byte和byte运算

byte a = 10;
byte b = 20;
byte c = a + b;  
System.out.println(c);
上述代码会出现编译出错,从int转换为byte可能会有损失

结论:byte之间的运算,虽然 a 和 b 都是byte,但是计算a+b,会先将其提升成 int,再进行计算,得到的结果也是int,则不能赋值给 byte类型的c

由于计算机的CPU通常是按照4个字节为单位从内存中读取数据,为了硬件上方便实现,像byte和short这种不是4个字节的数据类型,会先提升成int,再参与计算

则正确写法为:

byte a = 10;
byte b = 20;
byte c = (byte)(a + b);  
System.out.println(c);

类型提升小结不同类型的数据混合运算时,范围小的会提升成范围大的

补充:

String 和 int之间的相互转换:

1.将 int 转换成 String

int num = 10;
String str1 = num + "";
String str2 = String.valueof(num);

2.将 String 转换成 int

String str = "10";
int num = Integer.parseInt(str);

包装类的好处,就是可以调用类的很多方法来实现我们的目的

数据类型总结

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 13:23:41  更:2021-07-28 13:23:50 
 
开发: 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年5日历 -2024/5/9 3:21:55-

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