Java零基础教程专栏——数据类型

简介: 数据类型的分类引用数据类型(除基本数据类型之外的,如String )基本数据类型:4大类8种。第 1 类:整数型(不带小数的数字):byte,short,int,long第 2 类:浮点型(带小数的数字):float,double第 3 类:字符型(文字,单个字符):char第 4 类:布尔型(真和假):boolean

数据类型

46a0dbb514f14fa4963e91918411506d.png

数据类型的分类

引用数据类型(除基本数据类型之外的,如String )

基本数据类型:4大类8种。

第 1 类:整数型(不带小数的数字):byte,short,int,long

第 2 类:浮点型(带小数的数字):float,double

第 3 类:字符型(文字,单个字符):char

第 4 类:布尔型(真和假):boolean

格式:数据类型 变量名称 = 初始值;

    byte a = 1;
        short a =1;
        int a =1;
        char a ="a";
        float a =1.1;
        double a =1.1;
        long a =1;
        booleana =true;

5bf17f747a82495688ec59b3d76159e1.png

注:1字节数(1B)=8比特(8bit)

byte 1B  (8位) (8bit)
short 2B (16位)(16bit)
int 4B   (32位)(32bit)
char 2B  (16位)(16bit)
float 4B (32位)(32bit)
double 8B(64位)(64bit)
long 8B  (64位)(64bit)
boolean 1B(8位)(8bit)
//char可以赋值给int,赋的是ASCII码

自动类型转换:

  • 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
  • 类型范围小的变量,可以直接赋值给类型范围大的变量
  • byte short char是直接转换成int类型参与运算的。

强制类型转换

可以强行将类型范围大的变量、数据赋值给类型范围小的变量。

数据类型 变量2 = (数据类型)变量1、数据

int a = 20;
byte b =  (byte)a; 

注意事项

  • 强制类型转换可能造成数据(丢失)溢出;
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
  • 强制类型转换是可以强行将类型范围大的变量、数据赋值给类型范围小的变量。

强制类型转换有哪些需要注意的?

  • 可能出现数据丢失。
  • 小数强制转换成整数是直接截断小数保留整数

运算符

运算符:对字面量或者变量进行操作的符号。

算术运算符

符号 作用 说明
+
-
*
/ 与“÷”相同,注意:在Java中两个整数相除结果还是整数。
% 取余 获取的是两个数据做除法的余数

注意:如果两个整数做除法,其结果一定是整数,因为最高类型是整数

+符号做连接符的识别

public static void main(String[] args) {
    int a = 5 ;
    System.out.println("abc" + 'a'); // abca
    System.out.println("abc" + a);   // abc5
    System.out.println(5 + a); // 10
    System.out.println("abc" + 5 + 'a'); // abc5a
    System.out.println(15 + "abc" + 15); // 15abc15
    System.out.println(a + 'a'); // 102
    System.out.println(a + "" +'a'); // 5a
    System.out.println(a + 'a'+" itheima "); // 102 itheima
    System.out.println("itheima"+ a + 'a'); // itheima5a
    System.out.println("itheima"+ ( a + 'a' ));// itheima102
}

image.png

自增、自减运算符

符号 作用 说明
++ 自增 变量自身的值加1
自减 变量自身的值减1
// 在表达式中或者不是单独操作的情况,++ -- 在变量前后存在区别
// ++ -- 在变量前面。先+1 -1 再使用。
int i = 10;
int j = ++i;
System.out.println(i); // 11
System.out.println(j); // 11
// ++ -- 在变量的后面 先使用再+1 -1
int m = 10;
int n = m++;
System.out.println(m); // 11
 System.out.println(n); // 10

image.png

自增、自减运算符是什么,有什么作用,需要注意什么?


++、–。对当前变量值+1、-1


只能操作变量,不能操作字面量


自增、自减运算符在变量前后有区别吗?


如果单独使用放前后是没有区别的。

非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。

非单独使用:在变量后 ,先使用变量,再进行变量自增/自减

赋值运算符

就是"="。

int a = 10;  // 先看“=”右边,把数据10赋值给左边的变量a存储。

扩展赋值运算符

符号 作用 说明
+= 加后赋值 a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a
-= 减后赋值 a-=b 等价于 a = (a的数据类型)(a-b); 将a - b的值给a
*= 乘后赋值 a*=b 等价于 a = (a的数据类型)(a*b); 将a ***** b的值给a
/= 除后赋值 a/=b 等价于 a = (a的数据类型)(a/b); 将a / b的商给a
%= 取余后赋值 a%=b 等价于 a = (a的数据类型)(a%b); 将a % b的商给a

注意:扩展的赋值运算符隐含了强制类型转换。

关系运算符

是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)

符号 说明
== a==b,判断a和b的值是否相等,成立为true,不成立为false
!= a!=b,判断a和b的值是否不相等,成立为true,不成立为false
> a>b, 判断a是否大于b,成立为true,不成立为false
>= a>=b,判断a是否大于等于b,成立为true,不成立为false
< a<b, 判断a是否小于b,成立为true,不成立为false
<= a<=b,判断a是否小于等于b,成立为true,不成立为false

注意:在做相等判断是,千万不要把 == 误写成 =

逻辑运算符

可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。

符号 介绍 说明
& 逻辑与 必须都是true,结果才是true; 只要有一个是false,结果一定是false。
| 逻辑或 只要有一个为true、结果就是true
逻辑非 你真我假、你假我真。 !true=false 、 !false= true
^ 逻辑异或 如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true。
    double A = 9;
        double B = 6;
        // 需求:A大于等于6.5 B要大于等于8
        // 注意:必须前后都是true结果才是true
        System.out.println("------- 与:& --------");
        System.out.println(A >= 6.5 & B >=8);
        // 需求:要么A大于等于8 要么B大于等于6.5
        // 注意:只要有一个是true 结果就一定是true
        System.out.println("------- 或:| --------");
        System.out.println(A >= 6.5 | B >=8);
        System.out.println("------- 非:! --------");
        System.out.println(!true);
        System.out.println(!false);
        // 逻辑异或:必须两个不同结果才是true
        System.out.println("-------异或:^ --------");
        System.out.println(false ^ true); // true
        System.out.println(true ^ false); // true
        System.out.println(true ^ true); // false
        System.out.println(false ^ false); // false

b96186348d6d431999396f79ab701c2c.png

短路逻辑运算符

符号 介绍 说明
&& 短路与 判断结果与“&”一样。过程是左边为false**,右边则不执行。**
|| 短路或 判断结果与“|”一样。过程是左边为true**, 右边则不执行。**

注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。

    System.out.println("-----------&&  &  || |的区别-------------------");
        int a = 10;
        int b = 20;
        // System.out.println(a > 100 && ++b > 10);
        System.out.println(a > 100 & ++b > 10);
        System.out.println(b);
        int i = 10;
        int j = 20;
        //System.out.println(i > 2 || ++j > 10);
        System.out.println(i > 2 | ++j > 10);
        System.out.println(j);


7aef5cddc99e499e9c1b79c612fdd6db.png

逻辑运算符有哪些,有什么特点?


逻辑与“&” :有一个为false、结果是false

短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了

逻辑或“|”:有一个为true、结果是true

短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了

逻辑非“!”:!false=true、 !true=false

逻辑异或“^” :相同是false、不同是true。

注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

三元运算符

格式:条件表达式 ? 值1 : 值2;

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

案例-求三个整数的最大值

需求:定义三个整数,找出最大值并打印在控制台。

分析:

  • 用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
    num1 > num2 ? num1 : num2;
  • 用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
    temp > num3 ? temp : num3;
  • 输出结果
int num1 = 10;int num2 = 30;int num3 = 20;
int temp = (num1 > num2) ? num1 : num2;
max = (temp > num3) ? temp : num3;
或者
int max = ((num1 > num2 ? num1 : num2) > num3) ? (num1 > num2 ? num1 : num2) : num3;(建议不用这种)
System.out.println(max);

运算符优先级

7b48d2f982b24db88c314e24e619badf.png

相关文章
|
7天前
|
存储 缓存 安全
Java中的数据类型
Java语言提供了八种基本类型,分为4类8种:六个数值型(四个整数型byte、short、int、long,两个浮点型float、double)、一个字符型char和一个布尔型boolean。每种基本类型有固定的位数、取值范围及默认值。此外,还存在`void`类型,但无法直接操作。基本类型支持隐式和显式类型转换,并有对应的包装类如`Integer`、`Double`等,用于在需要对象的场景中使用。包装类支持自动装箱与拆箱机制,简化了基本类型与引用类型的转换,但需要注意性能和空指针异常等问题。
Java中的数据类型
|
4天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
18天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
98 26
|
25天前
|
安全 Java 编译器
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
Kotlin教程笔记(27) -Kotlin 与 Java 共存(二)
|
25天前
|
Java 开发工具 Android开发
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
Kotlin教程笔记(26) -Kotlin 与 Java 共存(一)
|
1月前
|
Java
Java基础之数据类型
Java基础之数据类型
20 6
|
1月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
59 7
|
1月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
34 2
|
24天前
|
Java 数据库连接 编译器
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
Kotlin教程笔记(29) -Kotlin 兼容 Java 遇到的最大的“坑”
43 0
|
1月前
|
Java 编译器 Android开发
Kotlin教程笔记(28) -Kotlin 与 Java 混编
Kotlin教程笔记(28) -Kotlin 与 Java 混编
13 0