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

相关文章
|
4月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
63 12
|
1月前
|
Oracle Java 关系型数据库
java 编程基础入门级超级完整版教程详解
这份文档是针对Java编程入门学习者的超级完整版教程,涵盖了从环境搭建到实际项目应用的全方位内容。首先介绍了Java的基本概念与开发环境配置方法,随后深入讲解了基础语法、控制流程、面向对象编程的核心思想,并配以具体代码示例。接着探讨了常用类库与API的应用,如字符串操作、集合框架及文件处理等。最后通过一个学生成绩管理系统的实例,帮助读者将理论知识应用于实践。此外,还提供了进阶学习建议,引导学员逐步掌握更复杂的Java技术。适合初学者系统性学习Java编程。资源地址:[点击访问](https://pan.quark.cn/s/14fcf913bae6)。
134 2
|
4月前
|
Java C语言 C++
课时9:Java数据类型划分(数据类型划分)
课时9介绍了Java的数据类型划分及其操作。Java数据类型分为基本数据类型和引用数据类型。基本数据类型包括八种:数值型(整形、浮点型)、字符型和布尔型;引用数据类型有数组、类和接口。重点讲解了每种数据类型的默认值、适用场景及选择原则,如整数用int,小数用double,日期时间用Long等。掌握这些内容对编程至关重要。
课时9:Java数据类型划分(数据类型划分)
|
4月前
|
Java
课时12:Java数据类型划分(字符型)
课时12介绍了Java中的字符型数据(char),包括字符的定义、与int类型的转换及应用。通过范例展示了如何观察字符、编码转换、大小写字母互转、保存中文字符,以及Java中字符处理的灵活性。字符型使用单引号声明,可与int互相转换,支持Unicode编码,能表示任何文字,包括中文。虽然实际开发中直接操作字符型的情况不多,但理解其特性有助于更好地编程。
89 17
|
4月前
|
存储 传感器 缓存
java变量与数据类型:整型、浮点型与字符类型
### Java数据类型全景表简介 本文详细介绍了Java的基本数据类型和引用数据类型,涵盖每种类型的存储空间、默认值、取值范围及使用场景。特别强调了`byte`、`int`、`long`、`float`、`double`等基本类型在不同应用场景中的选择与优化,如文件流处理、金融计算等。引用数据类型部分则解析了`String`、数组、类对象、接口和枚举的内存分配机制。
122 15
|
3月前
|
存储 缓存 Java
理解Java引用数据类型:它们都是对象引用
本文深入探讨了Java中引用数据类型的本质及其相关特性。引用变量存储的是对象的内存地址而非对象本身,类似房子的地址而非房子本身。文章通过实例解析了引用赋值、比较(`==`与`equals()`的区别)以及包装类缓存机制等核心概念。此外,还介绍了Java引用类型的家族,包括类、接口、数组和枚举。理解这些内容有助于开发者避免常见错误,提升对Java内存模型的掌握,为高效编程奠定基础。
154 0
|
4月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
107 9
|
4月前
|
Java
课时13:Java数据类型划分(布尔型)
观察布尔型的操作。布尔是一位数学家的名字,这个布尔发明了两个单词:True、False(一个表示真一个表示假)。一般布尔类型都只表示逻辑的计算结果。
111 9
|
4月前
|
Java
课时11:Java数据类型划分(浮点类型)
课时11介绍了Java中的浮点数据类型。主要内容包括:1. 定义小数,默认使用Double类型;2. 定义Float变量,需在数值后加&quot;F&quot;或&quot;f&quot;进行强制转换;3. 观察不同类型计算结果,如Int型除法会丢失精度,需至少包含一个Double或Float类型以确保准确性。总结指出,在复杂计算中推荐使用Double类型以避免精度损失。
106 5
|
4月前
|
Java
课时10:Java数据类型划分(整型类型)
本文主要围绕Java中整型数据展开,详细讲解整型变量、常量的概念,整型数据运算规则,包括数据溢出问题及解决方法,数据类型转换(自动转换与强制转换)的原理和注意事项,同时介绍了整型数据默认值的相关知识,以及byte数据类型与int数据类型的关系和使用场景,帮助读者全面掌握Java整型数据的相关内容。
144 4