当前位置: 首页 > news >正文

【韩老师零基础30天学会Java 】03章 变量

第三章 变量

1. 变量介绍

为什么需要变量?

变量是程序的基本组成单位
变量有三个基本单位:类型+名称+值

在这里插入图片描述
在这里插入图片描述

//1.定义变量int age =20;double score=88.6;char gender='男';String name='jack';

变量使用注意事项

  1. 变量表示内存中的一个存储区域[不同的变量,类型不同,占用的空间大小不同,比如:int 4r个字节,double 就是 8个字节]
  2. 该区域有自己的名称[变量名]和类型[数据类型]
  3. 变量必须先声明,后使用,即有顺序
  4. 该区域的数据可以在同一类型范围内不断变化
  5. 变量在同一个作用域内不能重名
  6. 变量=变量名+值+数据类型,这一点请大家注意。变量三要素

2. +号的使用

在这里插入图片描述

3. 数据类型🚩

在这里插入图片描述

int-4 byte-1 short-2 long-8
float-4 double-8
char-2 boolean-1
String不属于基本数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

面试题:浮点数是右什么组成的?

浮点数=符号位+指数位+尾数位

通常情况下,应该使用double型,因为它比float型更精确。

public class IntDetail{public static void main(String[] args){//浮点数使用陷阱:2.7和8.1/3 比较double num11=2.7;double num12=8.1/3;//2.7System.out.println(num11);//2.7System.out.println(num12);//2.6999999999999997if(num11==num12){System.out.println("相等");}//正确写法if (Math.abs(num11-num12)<0.000001){System.out.println("差值非常小,到规定的精度,认为相等");}}
}

得到一个重要的使用点:当我们对运算结果是小数的进行相等判断时,要小心❗❗❗
应该是以两个数的差值的绝对值,在某个精度范围类判断。❗❗❗
细节:如果是直接查询得到的小数或者直接赋值,是可以判断相等。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

public class IntDetail{public static void main(String[] args){char c4=97;System.out.println(c4);//结果:a}
}

在这里插入图片描述

单引号引起来的是字符,双引号是字符串❗
在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。

		char c4=97;char c5='a';System.out.println(c4);//结果:aSystem.out.println((int)c5);//结果:a

面试题:ASCII编码表一共有多少字符?

一共有128个字符,由一个字节表示,实际上一个字节可以表示256个字符,只用了128个。

Unicode编码表,字母和汉字统一都用两个字节表示。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用细节说❗❗❗
不可以0或非0的整数替代false和true,这点和C语言不同。

4. 编码

在这里插入图片描述

5. 数据类型转换

√ 介绍
当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型
这个就是自动类型转换。
√ 数据类型按精度(容量)大小排序为(背,规则)
在这里插入图片描述

自动类型转换注意和细节:

  1. 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
  2. 当我们把精度(容量)大 的数据类型赋值给精度(容量)小 的数据类型时,就会报错,反之就会进行自动类型转换。
  3. (byte,short)和 char之间不会相互自动转换。
  4. byte,short,char 他们三者可以计算,在计算时首先转换为int类型
  5. boolean 不参与转换
  6. 自动提升原则: 表达式结果的类型自动提升为操作数中最大的类型。

在这里插入图片描述

强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。
使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。

		int n1=(int)1.9;int n2=2000;byte b1=(byte)n2;System.out.println("n1=" + n1);//结果:1(造成精度损失)System.out.println("b1=" + b1);//结果:-48(造成数据溢出)		

在这里插入图片描述

练习
在这里插入图片描述
答案:
1)可以 / 错误(int–>short)
2)可以 / 不可以(int–>byte) / 可以
3)可以 / 可以 / 可以
4)可以 / 可以 / 不可以(int–>short)

在这里插入图片描述

		//基本数据类型->Stringint n1=100;float f1=1.1F;double d1=4.5;boolean b1=true;String s1=n1+"";String s2=f1+"";String s3=d1+"";String s4=b1+"";System.out.println(s1+" "+s2+" "+s3+" "+s4);//String->基本数据类型String s5="123";Double num1=Double.parseDouble(s5);Float num2=Float.parseFloat(s5);Long num3=Long.parseLong(s5);Byte num4=Byte.parseByte(s5);int num5=Integer.parseInt(s5);boolean b=Boolean.parseBoolean("true");short num6=Short.parseShort(s5);System.out.println("================");System.out.println(num1);//123.0System.out.println(num2);//123.0System.out.println(num3);//123System.out.println(num4);//123System.out.println(num5);//123System.out.println(num6);//123System.out.println(b);//true//怎么把字符串转成字符char ->含义是指把字符串的第一个字符得到System.out.println("================");System.out.println(s5.charAt(0));//1

在这里插入图片描述

6. 作业

在这里插入图片描述
答案:
30
8

在这里插入图片描述

	char c1='\n';char c2='\t';char c3='\r';char c4='\\';char c5='1';char c6='2';char c7='3';System.out.println(c1);System.out.println(c2);System.out.println(c3);System.out.println(c4);System.out.println(c5);System.out.println(c6);System.out.println(c7);
		String book1="天亮";String book2="江湖";System.out.println(book1+book2);char c1='男';char c2='女';System.out.println(c1+c2);double price1=123.56;double price2=100.11;System.out.println(price1+price2);

答案:
天亮江湖
52906
223.67000000000002

		String name="jack";int age=20;double score=90.8;char gender='男';String hobby="打篮球";System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n"+name+'\t'+age+'\t'+score+'\t'+gender+'\t'+hobby);

输出:
在这里插入图片描述

7. 小结


http://www.mrgr.cn/news/69330.html

相关文章:

  • MySQL数据库:SQL语言入门 【2】(学习笔记)
  • pgSQL-timescaledb复制表出现的问题
  • AR眼镜方案_AR智能眼镜阵列/衍射光波导显示方案
  • Java线程的sleep和wait的区别
  • <项目代码>YOLOv8 番茄识别<目标检测>
  • AI制作ppt
  • pyspark入门基础详细讲解
  • 暮雨直播 1.3.2 | 内置直播源,频道丰富,永久免费
  • 玩的花,云产品也能拼团了!!!
  • 常用的c++特性-->day02
  • 三周精通FastAPI:38 针对不同的编程语言来生成客户端
  • 分享:文本转换工具:PDF转图片,WORD转PDF,WORD转图片
  • 测试实项中的偶必现难测bug--短信触发H5拒绝行为
  • 机器学习-倒数5个项目(05)
  • 代码随想录第二十五天
  • 梦熊NOIP第一场
  • USB-A 5Gbps和USB-A 10Gbps的区别
  • Ascend Extension for PyTorch是个what?
  • 库打包工具 rollup
  • 组会 | Attention 中有意思的部分
  • 共筑开源技术新篇章 | 2024 CCF中国开源大会盛大开幕
  • 系统架构师2023版:习题
  • APP广告变现流量售卖,选择API还是SDK对接
  • 小白投资理财 - 看懂 RSI 指标
  • DNS作业
  • 宏定义和函数调用的区别