重学Java 3 变量 数据类型转换 运算符

路上难免会有许多挫折,你要学会应对,要坚不可摧

                                                                ——24.1.12

一、常量

1.概述:在代码的运行过程中,值都不会发生改变的数据

2.分类:

        整数常量:所有整数,包含正负

        小数常量:所有带小数点的

        字符常量:带单引号的 ' ',单引号中必须有且只能有一个内容

        字符串常量:带双引号的 " ",双引号中内容随意

        布尔常量:true(真)  false(假)   ->  不能加双引号

        空常量:null        代表的是数据不存在

二、变量

1.变量的数据类型介绍

2.变量的定义

3.变量的使用

4.标识符

1.变量的介绍及使用

1.变量的数据类型:

        基本数据类型:四类八种

                整型:byte、short、int、long

                浮点型:float、double

                字符型:char

                布尔型:boolean

        引用数据类型:类、数组、接口、枚举、注解

2.变量的定义

①概述:在代码的运行过程中,值会随着不同的情况而随时发生改变的数据

②作用:一次接受一个数据

        将来定义一个变量,接受一个值,后续可能会根据不同的情况对此值进行修改,此时可以使用变量

③定义:

        a、数据类型  变量名  =  值

                eg、int a = 10;

        b、数据类型 变量名;

              变量名 = 值;

                eg、int a;

                        a = 10;

        c、连续定义三个相同类型的变量

                数据类型 变量名1,变量名2,变量名3;

                变量名1 = 值;变量名2 = 值;变量名3 = 值;

                        eg、int i,j,k;

                                i = 10;

                                j = 20;

                                k = 30;

                数据类型 变量名1 = 值,变量名2 = 值,变量名3 = 值;

                eg、int i=10,j = 20,k = 30;

正确读法:先看等号右边,再看等号左边,将等号右边的数据赋值给等号左边的变量,哪怕等号右边有运算,我们都得先将等号右边的运算算出一个值来,最后赋值给等号左边的变量

④注意:

        a.字符串不属于基本数据类型,属于引用类型,用string表示

           string是一个类,只不过字符串在定义的时候可以和基本数据类型格式一样

3.变量的使用 

byte num1 = 100;
System.out.println(num1);
//100short num2 = 1000;
num2 = 1001;
System.out.println(num2);
//1001int num3 = 10000;
num3 = 1;
System.out.println(num3);
//1long num4 = 10L;
System.out.println(num4);
//10float num5 = 2.5F;
System.out.println(num5);
//2.5double num6 = 2.5;
System.out.println(num6);
//2.5char num7 = 'A';
System.out.println(num7);
//Aboolean num8 = true;
boolean num9 = false;
num8 = num9;
System.out.println(num8);
//false//String 是一个引用数据类型,属于类的一种,但是定义和基本类型一致
String name = "王菲";
System.out.println(name);
//王菲e

4.变量的运算 

int num1 = 10;
int num2 = 3;
int sum = num1 + num2;
int sub = num1 - num2;
int mul = num1 * num2;
System.out.println(sum);
//13
System.out.println(sub);
//7
System.out.println(mul);
//30

5.变量_转义字符  \ 

转义字符:\

简单理解:将普通字符转成有特殊含义的字符

                  将有特殊含义的字符转化为普通字符                

        例如:n:普通字符        t:普通字符

                   \n:换行符           \t:制表符,就是tab键

6.变量_float和double的区别

①float的小数位只有23位二进制,能表示的最大十进制为2的23次方(8388608),是7位数,所以float型代表的小数,小数位能表示7位

②double型小数位只有52位二进制,能表示的最大十进制位(4 503 599 627 370 496),是16位数,所以double型代表的小数,小数位能表示16位

③切记:开发不要用float或double直接参与运算,因为直接参与运算会有值不准的问题

7.变量使用的注意事项

①变量不初始化(第一次赋值),不能直接使用

②在同一个作用域(大括号)中,一个变量只能定义一次,不能重复定义

③不同作用域中的数据,尽量不要随意互相访问,在小作用域中可以直接访问大作用域中的变量,在大作用域中不可以直接访问小作用域中的变量

三、标识符

1.概述:给类,方法,变量取的名字

2.注意:

        a.硬性规定(必须遵守)

           标识符可以包含”英文字母“,”数字“,”_“和”$“

            标识符不能以数字开头        int i1 = 100(√),int 1i = 100(×)

            标识符不能是关键字        int static = 100(×)

        b.软性建议(最好遵守)

            给类取名字:遵循大驼峰式 -> 每个单词的首字母大写

            给方法和变量取名字:遵循小驼峰式 -> 从第二个单词开始往后首字母大写

            取名字见名知意

四、数据类型转换

1.什么时候会发生类型转换?

        a、等号左右两边类型不一致

        b、不同类型的数据做运算

2.分类:

        a、自动类型转换

              将取值范围小的数据类型赋值给取值范围大的数据类型->小自动转大

              取值范围小的数据类型和取值范围大的数据类型数据做运算 -> 小自动转大

        b、强制类型转换

              当将取值范围大的数据类型赋值给取值范围小的数据类型 -> 需要强转

3.基本类型中取值范围从小到大排序:

        byte、short、char -> int -> long -> float -> double

1.自动类型转换

①将取值范围小的数据类型赋值给取值范围大的数据类型->小自动转大

②取值范围小的数据类型和取值范围大的数据类型数据做运算 -> 小自动转大

//将取值范围小的int类型套到取值范围大的类型long中,发生了自动类型转换
long num1 = 100;
System.out.println(num1);int i = 10;
double b = 2.5;//double = int + double
//double = double + double
//int自动提升为了double,发生了自动类型转换
double sum = i + b;
System.out.println(sum);

2.强制类型转换

①当将取值范围大的数据类型赋值给取值范围小的数据类型 -> 需要强转

②如何强转:

        取值范围大的数据类型 变量名 = (取值范围小的数据类型)取值范围小的数据类型数据

3.强制类型转换注意事项 

①不要随意写成强转的形式,会有精度损失问题数据溢出现象,除非没有办法

②byte和short定义的时候,如果等号右边是常量,如果不超过byte和short的范围,不需要我们自己强转,jvm会自动转型,超过范围需要我们手动强转

③如果byte,short等号右边有变量参与,byte与short自动提升为int,然后结果再次赋值给byte或者short的变量,需要我们自己手动强转

④char类型数据如果参与运算,会自动提升为int类型,如果char类型的字符提升为int类型会去ASCII码表(美国标准交换代码)范围内去查询字符对应的int值,如果在ASCII码表范围内没有对应的int值,则会去unicode(万国码)码表中寻找

byte b = 10;
System.out.println(b);b = (byte)(b + 1);
System.out.println(b);
char c = 'A';
System.out.println(c+0);

当超出范围时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345665.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何有效使用360评估

导语:360度评估是绩效考核方法之一,被评估者不仅可以从自己、上司、部属、甚至顾客处获得多种角度的反馈,也可从这些不同的反馈清楚地认识到自己的不足、长处与发展需求。但360度评估也有其适用的范围和条件,华为总裁任正非给出了…

大一统的监控探针采集器 cprobe

需求背景 监控数据采集领域,比如 Prometheus 生态有非常多的 Exporter,虽然生态繁荣,但是无法达到开箱即用的大一统体验,Exporter 体系的核心问题有: 良莠不齐:有的 Exporter 写的非常棒,有的…

SQL语句详解一

概念 什么是 SQL?(如果还未安装MySQL请参考此文章安装下) Structured Query Language:结构化查询语言其实就是定义和操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为"方言"。 SQ…

sqlmap性能优化

sqlmap性能优化 🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🎈🌭🌭&#…

【数据结构与算法】单链表(无头单向非循环)

文章目录 1. 概念2. 链表分类3. 链表与顺序表对比4. 无头单向非循环链表实现(C语言)4.1 SingleLinkedList.h4.2 Test.c4.3 SingleLinkedList.c 1. 概念 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指…

【python】matplotlib画图常用功能汇总

目录: 一、matplotlib画图风格二、matplotlib图像尺寸和保存分辨率三、matplotlib子图相关功能创建子图:绘制子图:设置子图属性:调整布局:示例代码: 四、matplotlib字体设置字体族和字体的区别字体选择和设置1. Matplo…

1992年-2020年ESA_CCI土地覆盖数据介绍、下载与数据分享

数据介绍 ESA CCI Land Cover是欧洲空间局(European Space Agency,ESA)的一个项目,其目标是生成全球土地覆盖的高质量、一致性和长期的时间序列数据,分辨率大约为300米。 该项目是ESA气候变化计划(Climate…

网页的介绍

目录 什么是网页: 网页的组成: 什么是HTML: 网页的总结: 浏览器: web标准: 为什么需要Web标准: web标准的构成: 什么是网页: 1.网站是指在因特网上根据一定的规…

Linux QT以太网配置及相关知识

Linux QT以太网配置及相关知识 平台和内容概述安装Qt Creator设计用户界面编辑源代码自定义LineEdit创建槽函数以太网逻辑功能实现静态配置ui逻辑:功能概述代码实现DNS退出程序输入框中的ip规范保存数据和读取数据构建文件编译运行平台注意点开机自动配置以太网总结平台和内容…

3年测试经验,用例设计竟然不知道状态迁移法?

3年测试经验,用例设计竟然不知道状态迁移法? 1、概念 状态迁移法主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态&#xff0c…

前端重置密码报错记录

昨天晚上,我写了重置密码的前端,测试的时候报错 今天上午,我继续试图解决这个问题,我仔细检查了一遍,前端没有问题 可以正常接收输入的数据并且提交 但是后端接收到的数据为空,后端接口也没有问题 但后端收…

如何从电脑找回/恢复误删除的照片

按 Shift Delete 以后会后悔吗?想要恢复已删除的照片吗?好吧,如果是这样的话,那么您来对地方了。在本文中,我们将讨论如何从 PC 中检索已删除的文件。 自从摄影的概念被曝光以来,人们就对它着迷。早期的照…