【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则

news/2024/12/13 5:00:56/

🍉内容专栏:【JAVA】

🍉本文脉络:数据类型,类型转换与提升,运算符,标识符命名规则

🍉本文作者:Melon_西西

🍉发布时间 :2023.7.12

目录

 1. 字面常量

2. 数据类型:四类八种

 3.类型转换

3.1 自动类型转换(隐式) 自动类型转换:

3.2 强制类型转换(显式) 强制类型转换:

4.类型提升

4.1 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

4.2. byte与byte的运算

5. 字符串类型

5.算术运算符

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

5.2. 增量运算符 += -= *= %=

5.3.自增/自减运算符 ++  --

5.4. 关系运算符

5.5. 逻辑运算符(重点)

5.5.1                                 布尔表达式1  &&  布尔表达式2(有一个假就是假)

5.5.2.                               布尔表达式1    ||   布尔表达式2  (有一个真就是真)​编辑

 5.5.3. 逻辑非 !               

6. 位运算符

 7. 条件运算符

 8. 运算符的优先级

9.标识符


 1. 字面常量

常量即程序运行期间,固定不变的量称为常量,分类:

1. 字符串常量:由""括起来的,比如“12345”、“hello”、“你好”。

2. 整形常量:程序中直接写的数字(注意没有小数点),比如:100、1000

3. 浮点数常量:程序中直接写的小数,比如:3.14、0.49 4. 字符常量:由 单引号 括起来的当个字符,比如:‘A’、‘1’

5. 布尔常量:只有两种true和false

6. 空常量:null

2. 数据类型:四类八种

在Java中数据类型主要分为两类:基本数据类型和引用数据类型

四类:整型、浮点型、字符型以及布尔型

八种:

 分别输出long表示的数值的取值范围:

public class Test01 {public static void main (String []args){System.out.println(Long.MAX_VALUE);System.out.println(Long.MIN_VALUE);//L要大写}
}

 关于小数:

Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分)

        float y=12.5;//会报错,不安全,因为大雨了4字节float y1=12.5f;//这样就不会报错了double num=1.1;System.out.println(num*num);//结果不是1.21,而是1.2100000000002     //除法运算小数点:int a1=1;int a2=2;System.out.println(a1/a2);//结果是0,不是0.5,不能够保存小数double b1=1;double b2=2;System.out.println(b1/b2);//结果是0.5,能够保存小数

字节是计算机中表示空间大小的基本单位.
计算机使用二进制表示数据. 我们认为 8 个二进制位(bit) 为一个字节(Byte).
我们平时的计算机为 8GB 内存, 意思是 8G 个字节.
其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.
所以 8GB 相当于 80 多亿个字节.

 3.类型转换

3.1 自动类型转换(隐式) 自动类型转换:

代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。

特点:数据范围小的转为数 据范围大的时会自动进行。

3.2 强制类型转换(显式) 强制类型转换:

当进行操作时,代码需要经过一定的格式处理,不能自动完成。

特点:数据范围大的到数据范围小的。

        int a = 10;long b = 100L;//a = b; // 编译失败,不可以把8个字节的给四个字节的//强制转换(显式):可能丢失数据,用于把大的转为小的a=(int)b;//隐式类型转换,编译器自动把a 从int升级为doubleb = a; // 可以通过编译//类型提升int a1 = 10;long b1 = 20;//int c = a1 + b1; // 编译出错: a + b==》int + long--> long + long 赋值给int时会丢失数据long d = a1 + b1; // 编译成功:a + b==>int + long--->long + long 赋值给long

注意:

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

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

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

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

4.类型提升

4.1 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的

. int与long之间:int会被提升为long

4.2. byte与byte的运算

对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算

        byte a2 = 125;byte b2 = 123;//byte c2 = a2 + b2;//报错,因为小于4字节的内容,会提升为int参与运算byte c2=(byte)(a2+b2);System.out.println(c2);//强转换,这样可能丢失数据。会截断,结果是-8int d2=a2+b2;System.out.println(d2);//结果是228,不发生截断

5. 字符串类型

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

        String str="HELLO";System.out.println(str);//string与int的转换int a5=100;//调用String这个类型的方法String s5=String.valueOf(a5);System.out.println(s5);//拼接String s6=a+"afternoon";//输出100afternoonSystem.out.println(s6);String s7=10+20+"xixi";String s8="xixi"+10+20;System.out.println(s7);//输出30xixiSystem.out.println(s8);//输出xixi1020//调用Integer这个类型的方法,来实现转换String str2="1009";int t2=Integer.valueOf(str2);System.out.println(t2+1);//输出1010

5.算术运算符

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

都是二元运算符,使用时必须要有左右两个操作数

int / int 结果还是int类型,而且会向下取整

做除法和取模时,右操作数不能为0

% 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模的

详细看下面例子:

public class Text03 {public static void main(String[] args) {//除余的数不可以为0System.out. println(5/2);        //结果是2System.out.println((float)5/2);  //相当于把5转成5.0除以2=2.5System.out.println(5/(float)2);  //相当于2转成2.0,5除以2.0=2.5System.out.println((float) (5/2));//相当于5/2等于2,把2转成2.0System.out.println(10%3);   //1System.out.println(10%-3);  //1System.out.println(-10%3);  //-1System.out.println(-10%-3); //-1System.out.println(11.5%2); //1.5}
}

5.2. 增量运算符 += -= *= %=

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

int a = 1;
a += 2;                // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1;                // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3;                // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3;                // 相当于 a = a / 3
System.out.println(a); // 输出2
a %= 3;                // 相当于 a = a % 2
System.out.println(a); // 输出2

5.3.自增/自减运算符 ++  --

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

如果单独使用,前置++和后置++没有任何区别;如果混合使用:

        int a1 = 10;int b1 = ++a1 ;  //a=a+1 ,b=aSystem.out.println(a1);  //11System.out.println(b1);  //11int a2 = 10;int b2 = a2++;   //b=a ,a=a+1System.out.println(a2);  //11System.out.println(b2);  //10

【前置++】先+1,然后使用变量+1之后的值,

【后置++】先使用变量原来的值,表达式 结束时给变量+1

只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

5.4. 关系运算符

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

        int a = 10;int b = 20;// 注意:在Java中 = 表示赋值,要与数学中的含义区分// 在Java中 == 表示相等System.out.println(a == b); // falseSystem.out.println(a != b); // trueSystem.out.println(a < b); // trueSystem.out.println(a > b); // falseSystem.out.println(a <= b); // trueSystem.out.println(a >= b); // false//注意这种是错的://System.out.println(3<a<5);//错误,算数异常

5.5. 逻辑运算符(重点)

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

5.5.1                                 布尔表达式1  &&  布尔表达式2(有一个假就是假)

5.5.2.                               布尔表达式1    ||   布尔表达式2  (有一个真就是真)

 5.5.3. 逻辑非 !               

语法规则:! 表达式                                  真变假,假变真。

int a = 1;
System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
System.out.println(!(a != 1)); // a != 1 为false,取个非就是true

 短路求值 && 和 || 遵守短路求值的规则

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.

对于  || ,如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式

& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值

6. 位运算符

位运算符主要有四个: & | ~ ^ ,~ 是一元运算符外,其余都是二元运算符。

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位 的每一位依次进行计算. 1。

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

按位或: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

.按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.

 

 7. 条件运算符

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

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值

; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.

也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.

/ 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

 8. 运算符的优先级

运算符之间是有优先级的., 在可能存在歧义的代码中加上括号即可

9.标识符

标识符:在程序中由用户给类名、方法名或 者变量所取的名字。

标识符中可以包含:字母、数字以及 下划线和 $ 符号等等。

标识符不能以数字开头,也不能是关键字,且严格区分大小写

建议:

类名:   每个单词的首字母大写(大驼峰)

变量名、方法名:首字母小写,后面每个单词的首字母大写(小驼峰)


http://www.ppmy.cn/news/843226.html

相关文章

2023愚人杯-easy_base

0x00 前言 CTF 加解密合集&#xff1a;CTF 加解密合集 0x01 题目 4C455A5645334C44474A55484D5A42544F5132574956525A50464E464F4E4C474D4656454D334359474A554751564B4949493255535532464E42544643504A350x02 Write Up 直接通过现成的工具即可&#xff1a; 以上

[acer] 地平线:mac记————lion懒人版安装教程全解(驱动贴已更新,亲测通过)

本人配置 处理器 英特尔 Core i5-2410M 2.30GHz 双核 主 板 宏碁 Aspire 4750 (英特尔 HM65 芯片组) 内 存 4 GB ( 金士顿 DDR3 1333MHz ) 主硬盘 西数 WDC WD5000BPVT-22HXZT1 ( 500 GB / 540…

关于黑苹果 的安装方法

最近在研究移动平台&#xff0c;所以对IOS很感兴趣 &#xff0c;但是 苦于开发环境必须是MacOS 一直没有实际研究。最近在网上发现Mac OS破解了&#xff0c;可以在x86架构的系统上运行了&#xff0c;特一直循环再下来给跟我一样情况的人一些参考 http://player.youku.com/pla…

打造家庭影音网络:Gen8魔改ITX实现Esxi虚拟NAS+Openwrt+Win10

原文网址&#xff1a;https://www.toutiao.com/a6664458597331632652/ 原文作者&#xff1a;Detsrt 教你手把手打造家庭网络中心&#xff1a;Gen8魔改ITX&#xff0c;实现Esxi虚拟NASOpenwrtWin10 之前搭建NAS时在值得买平台上收获到相当多的知识&#xff0c;也成功避开了许…

ubuntu 安装Nvidia驱动、CUDA11.1、Cudnn8.3.0和pytorch并测试YOLOv5

目录 1. 硬软件配置1.1 ubuntu16.04 GTX16501.1.1 ubuntu16.04的弊病1.1.1.1 输入法 Bug1.1.1.2 Nvidia 驱动 Bug1.1.1.3 内核 Bug 1.1.2 ubuntu16.04的界面丢失1.1.2.1 首次丢失界面后找回1.1.2.2 再次丢失界面后找回1.1.2.3 最后一次丢失界面再也找不回 1.2 ubuntu18.04安装…

kali linux 渗透测试学习笔记——kali linux安装

kali linux 渗透测试学习笔记——kali linux安装 很久之前写的一篇博客了&#xff0c;&#xff0c;&#xff0c;&#xff0c;想了想还是发一下吧 硬盘安装、虚拟机安装 硬盘安装&#xff1a; 下载安装镜像 https://www.kali.org/downloads/验证hash值&#xff1a;验证下载的…

如何给自己的电脑重装系统

一、写在最前面 有几句有用的建议&#xff0c;在这里先写,能让你的电脑长久运行良好&#xff1a; 国内的软件普遍都带有广告&#xff0c;这不是Windows的锅 国内的软件普遍都带有广告&#xff0c;这不是Windows的锅 不要使用360系列的产品 &#xff0c;有人和我说企业版特别良…

Windows与网络基础:VMware Workstation Pro软件常用简介

这篇文章主要讲一讲虚拟机这一款软件的一些常用的一些基本操作。有些非常用的没讲到&#xff0c;大家可以自己探索。 目的&#xff1a;熟悉虚拟机&#xff0c;懂得常用操作。 原因&#xff1a;对于这个虚拟机的一些操作不熟悉。那么后期做实验的过程中可能会比较麻烦 目录 1.文…