Java学习 2.Java-数据类型与运算符

简介: Java学习 2.Java-数据类型与运算符

初识java回顾:

java文件编译

一个java文件有类 类中有方法

java----->类----->方法

idea创建项目

改idea背景色

1.

2.

3.

数据类型与变量

1.字面常量

常量即程序运行期间,固定不变的量称为常量,字面值常量也是常量

字面常量的分类

2.数据类型

Java中,数据分为两种类型:基本数据类型和引用数据类型

基本数据类型有四类八种:

1.四类:整型,浮点型,字符型,布尔类型

2.八种:整数型:byte、short、int、long

             小数型:float、double

             字符型:char

             布尔类型:boolean

引用数据类型,这些类型定义的变量都是存储地址的变量

string、数组、接口、类...

可移植性:不管是在多少为操作系统下,这个数据类型所占的字节数一定

1pb=1024tb 1tb=1024gb 1gb=1024mb 1mb=1024kb 1kb=1024byte=8bit

3.变量

变量:在程序运行期间,可以改变的量

Java中不允许使用未初始化的局部变量

局部变量:定义在方法内部的变量

3.1 整型变量

也可以先定义再初始化

变量不允许不初始化

输出整数的最大/小值

        //输出整数的最小值
        System.out.println(Integer. MIN_VALUE);
        //输出整数的最大值
        System.out.println(Integer. MAX_VALUE);

integer其实也是int,只不过叫做包装类型,这个东西是int的一个加大版本

3.2 长整型 短整型

3.3 字节型

byte

128-127个字节

当给出的字面值大于当前数据类型能表示的最大范围后,便直接报错

3.4 浮点型

3.4.1 双精度浮点型

float

在数据后需要加入f,代表是float类型的数据

double

数据后无需加入f,直接表示输出double类型的数据

3.4.2 单精度浮点型

float类型在Java中占4个字节,由于表示的精度范围过小,我们一般使用double类型,不太推荐使用float

3.5 字符型变量

char

character 类型 > char 类型 前者包含后者类型le

character是char的包装类型

3.6 布尔类型

boolean类型没有规定明确的大小

boolean类型只有true和false

不能用0/1表示,所以布尔类型不能用01表示真假

3.7 类型转换

自动类型转换(隐式)只能把小字节类型赋值给大字节类型

    强制类型转换可以把大字节类型赋值给小字节类型,会造成数据的丢失

注意事项

1.不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型

2.如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但是可能精度丢失

3.将一个字面值常量进行赋值的时候,Java会自动针对数字类型进行检查

4.强制类型转换不一定成功,不相干的类型不能互相转换

3.8 类型提升

由于计算机的CPU通常是通过4个字节为单位从内存中读写数据,为了硬件上实现方便,诸如byte和short指针低于4个字节的类型,会先提升至int,再参与计算

正确的写法:

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

4. String 字符串类型

在 Java中使用String类型定义字符串类型

打印函数str1+str2,拼接字符串

java当中的字符串类型和其他类型参数进行运算==拼接的意思

当一个字符串连续拼接两个东西的和,两个参数应带括号

写在左边可以不用带括号,因为Java程序是从左至右运算

字符串转为整数

Integar.parseInt(字符串);

整数转为字符串


string.value0f(整数);


三个方法:

        //整数转为字符串 方法1:
        int zs=1104;
        String str5=String.valueOf(zs);
        System.out.println("str5="+str5);
        //方法2:
        String str6=zs+"";
        System.out.println("str6="+str6);
        //方法3:
        String str7=Integer.toString(zs);
        System.out.println("str7="+str7);

其他类型也可以转

运算符

1.什么是运算符:

对操作数进行操作时的符号,不同运算符操作的含义不同

Java中运算符可分为以下:算术运算符(+、-、*、/)、关系运算符(>、<、==),逻辑运算符、位运算符、移位运算符以及条件运算符等

2.算术运算符

1.基本四则运算符:加减乘除模(+、-、*、/、%)

a/b 不会保存小数,且除数和取模数不能为0

算术运算符报错 算数异常:

CTRL + SHIFT + / 段注释和取消段注释

单行注释:CTRL + / 句注释和取消段注释

java中求余数%不仅可以对整型取模,也可以对double型取模,但是没有意义,一般都是对整型取模的

两侧操作数类型不一致时,向类型大的操作数提升

3.自增/自减运算符 ++、--

++是给变量的值+1,--是给变量的值-1,

4.关系运算符

关系运算符主要有六个:==、 !=、 <、 >、 <= 、>=,其计算结果时true或者false

5.逻辑运算符 (重点)

逻辑运算符有三个:&&、||、!,运算结果都是boolean类型

1.逻辑与&&

运算结果:

例:

        System.out.println(a2==1&&b2==3);//true
        System.out.println(a2==1&&b2>=100);//false
        System.out.println(a2>100&&b2>=100);//false
        System.out.println(a2>100&&b2>3);//false

boolean类型只有true和false两个表达式

2.短路与:表达式1 & 表达式2

只要表达式1为假,就不会执行表达式2


3.逻辑或:表达式1 | 表达式2

只有表达式1和表达式2都为假时才为假 表达式1和表达式2都走一遍

1.         System.out.println(a2==1||b2==3);//true
2.         System.out.println(a2==1||b2>=100);//true
3.         System.out.println(a2>100||b2>=100);//false
4.         System.out.println(a2>100||b2>3);//false

4.短路或

表达式1 || 表达式2

当表达式1为真时,不会走表达式2

System.out.println(10<20||(10/0==0));//true

5.逻辑非

非真即假

Java中后只能是一个布尔表达式,不能写成!a形式

1. int a3=1;
2.         System.out.println(a3 != 1);//false
3.         System.out.println(!(a3 != 1));//true

6.短路求值

逻辑与&&和短路或||遵守短路求值的规则

        System.out.println(10>20&&10/0==0);//false
        System.out.println(10<20||10/0==0);//true

6.位操作符

按位与 &:二进制按位与 要相同输出1

按位或 |:二进制按位或 两者其中有一个1输出1

按位取反~:如果该位为0则转为1,为1则转为0

按位异或 ^: 二进制按位异或 两者不同时才输出1

       0101 1101

       0111 0011

  ^:0010 1110

7.移位运算符

左移:<< 将最左边的数移走,右边补个0

右移:>>将最右边的数移走,最左边符号位左边整数补0,负数补1

java中右移不一定满足移位运算符的性质

无符号右移:>>>

没有无符号左移

8.条件运算符

表达式1?表达式2:表达式3;

第一个表达式为布尔表达式,值为真执行第一个表达式,值为假执行第二个表达式

条件运算符必须把值直接打印或者赋值给另一个变量,不能直接使用

9.案例

boolean flg = true == true ? true : true == false ? false : false;

        boolean flg = true == true ? true : true == false ? false : false;
        System.out.println(flg);//true

10.运算符的优先级

根据自己特定的情况使用括号加运算符


目录
相关文章
|
1月前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
88 43
Java学习十六—掌握注解:让编程更简单
|
17天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
41 4
|
15天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
31 1
|
18天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
1月前
|
算法 Java 测试技术
🌟Java 零基础 | 详解 单目运算符
【10月更文挑战第14天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 7
|
25天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
1月前
|
Java 测试技术 开发者
🌟Java 零基础 | 深入理解三目运算符
【10月更文挑战第13天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
24 3
|
30天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
35 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
1月前
|
Java 测试技术 开发者
🌟Java零基础-Lambda运算符详解 🌟
【10月更文挑战第12天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 1
|
29天前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
21 0
下一篇
无影云桌面