重学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.rhkb.cn/news/236840.html

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

相关文章

2-认识小程序项目

基本结构 myapp├─miniprogram┊ └──pages┊ ┊ └──index┊ ┊ ┊ ├──index.json┊ ┊ ┊ ├──index.ts┊ ┊ ┊ ├──index.wxml┊ ┊ ┊ └──index.wxss┊ ┊ └──logs┊ ┊ ├──index.json┊ ┊ ├──index.ts┊ ┊ ├…

第 3 章 Keepalived 双机热备

技能展示: 会构建双机热备系统 会构建 LVSHA 高可用群集 在这个高度信息化的 IT 时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求…

C++力扣题目98--验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入…

bootloader学习笔记及SD卡启动盘制作

Bootloader介绍 在操作系统运行之前运行的一小段代码,用于将软硬件环境初始化到一个合适的状态,为操作系统的加载和运行做准备(其本身不是操作系统) Bootloader基本功能 1、初始化软硬件环境 2、引导加载linux内核 3、给linux…

深入了解static关键字的作用和应用--java面向对象学习

Static修饰成员变量 Static是什么 叫静态,可以修饰成员变量,成员方法 成员变量按有无static修饰分俩种: 类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对…

CCF模拟题 202309-2 坐标变换(其二)

问题描述 试题编号: 202309-2 试题名称: 坐标变换(其二) 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 对于平面直角坐标系上的坐标 (x,y),小 P 定义了如下两…

Web开发:SQLsugar的安装和使用

一、安装 第一步,在你的项目中找到解决方案,右键-管理解决方案的Nuget 第二步,下载对应的包,注意你的框架是哪个就下载哪个的包,一个项目安装一次包即可 点击应用和确定 安装好后会显示sqlsugar的包 二、使用&#xf…

【前端转安卓】-Java基础知识笔记

常量定义:final public class HelloWorld {// 静态常量public static final double PI 3.14;// 声明成员常量final int y 10;public static void main(String[] args) {// 声明局部常量final double x 3.3;} }变量声明、赋值 String username,address,phone,te…

C++力扣题目513找树左下角的值

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路 本题要找出树的最后一行的最左边的值。此时大家应该想…

odoo17 | Qweb模板简介

前言 到目前为止&#xff0c;我们的房地产模块的界面设计还相当有限。构建列表视图很简单&#xff0c;因为只需要字段列表。表单视图也是如此&#xff1a;尽管使用了几个标签&#xff0c;如 <group>标签或 <page>标签 &#xff0c;但在设计方面几乎没什么可做的。…

开通微信商家转账到零钱怎么做?场景模板

商家转账到零钱是什么&#xff1f; 商家转账到零钱功能是指商家可以通过支付平台将资金直接转账到用户的零钱账户中。在这种情况下&#xff0c;商家不需要用户提供银行账户信息&#xff0c;而是使用支付平台的转账功能将资金直接转移到用户的零钱账户中。 商家转账到零钱的使…

【前后端的那些事】treeSelect树形结构数据展示

文章目录 tree-selector1. 新增表单组件2. 在父组件中引用3. 父组件添加新增按钮4. 树形组件4.1 前端代码4.2 后端代码 前言&#xff1a;最近写项目&#xff0c;发现了一些很有意思的功能&#xff0c;想写文章&#xff0c;录视频把这些内容记录下。但这些功能太零碎&#xff0c…

紫光展锐5G扬帆出海 | Blade系列勇当拉美5G先锋

5G对拉丁美洲&#xff08;简称“拉美”&#xff09;绝大多数消费者来说还是一个新鲜技术。GSMA报告显示&#xff0c;过去五年&#xff0c;拉美运营商在移动网络方面的资本开支大部分用于部署4G网络。但在5G网络方面拉美也在积极大力投入中&#xff0c;紧跟全球5G发展大潮&#…

企业微信forMAC,如何左右翻动预览图片

1、control commandshifd 进入企业微信的debug调试模式 2、按照如下步骤选择 3、重启企业微信

【TC3xx芯片】TC3xx芯片电源管理系统PMS详解

目录 前言 正文 1.供电模式选择&#xff08;Supply Mode Selection&#xff09; 1.1 供电域 1.2 供电模式 1.3 供电阈值 1.4 供电上升和下降行为Supply Ramp-up and Ramp-down Behavior 1.5 EVRC产生供电 2. 电源监控 2.1 电源监控原理 2.2 Primary低电压监控 2.3 …

前端面试题集合五(css)

CSS 面试知识点总结 本部分主要是笔者在复习 CSS 相关知识和一些相关面试题时所做的笔记&#xff0c;如果出现错误&#xff0c;希望大家指出&#xff01; 目录 1.介绍一下标准的 CSS 的盒子模型&#xff1f;低版本 IE 的盒子模型有什么不同的&#xff1f;2.CSS 选择符有哪些…

本地静态资源打包出来,本地配置ng访问服务器(uniapp打包成h5后,使用打包资源连接测试环境测试)

1.下载ng https://nginx.org/en/download.html 2.解压下载的压缩包 3.打包h5静态资源 4.将打包出来的资源放入ng -》html文件夹下面 5.进入ng-》conf-》nginx.conf 进行转发配置 6.启动ng服务&#xff0c;点击nginx.exe 7.浏览器直接访问http://localhost:8081/#/&#x…

C++内存管理机制(侯捷)笔记3

C内存管理机制&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 第三讲&#xff1a;malloc和…

C++进阶--AVL树

AVL树 一、AVL树的概念二、AVL树节点的定义三、AVL树的插入四、AVL树的旋转4.1 左单旋4.2 右单旋4.3 左右双旋4.4 右左双旋 五、AVL树的验证六、AVL树的删除七、AVL树的性能 一、AVL树的概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退…

分裂联邦学习论文-混合联邦分裂学习GAN驱动的预测性多目标优化

论文标题&#xff1a;《Predictive GAN-Powered Multi-Objective Optimization for Hybrid Federated Split Learning》 期刊&#xff1a;IEEE Transactions on Communications, 2023 一、论文介绍 背景&#xff1a;联邦学习作为一种多设备协同训练的边缘智能算法&#xff0…