03 变量

本文详细介绍了Java中的基本数据类型,包括整型、浮点型、字符型和布尔型,阐述了它们的存储空间、范围以及使用细节。同时,讲解了变量的声明、赋值和注意事项,以及数据类型之间的转换。此外,还提供了实例代码展示变量的使用和类型转换,并给出了相关的编程作业。最后,探讨了字符串与基本数据类型的转换方法。
摘要由CSDN通过智能技术生成

Java变量

概念

变量相当于内存中的一个数据存储空间的表示。通过访问这个变量就相当于数据存储的空间。

变量使用的基本步骤

// 声明变量
int a;
// 变量赋值
a = 15;
// 打印
System.out.println(a);

// 也可以定义的同时进行赋值。
int b = 10;

变量使用的注意事项

  1. 变量表示内存中的一个存储空间。不同类型的变量,占用空间大小不同。
  2. 变量一定有自己的变量名称和数据类型。
  3. 变量必须先声明,然后使用。
  4. 变量的数据/值可以在同一类型范围中不断地变化。
  5. 变量在同一作用域内不能重名。
  6. 变量 = 变量名 + 值 + 数据类型。(变量的三要素)

数据类型

每个数据都定义了明确的数据类型,在内存中分配了不同大小的存储空间(字节)

说明:

  1. java数据类型分为两大类:基本数据类型,引用数据类型。
  2. 基本数据类型有8种:byte,short, int, long, float, double, char, boolean
  3. 引用数据类型:类,接口,数组

1. 整数类型(整型)

类型占用存储空间范围
byte 字节1字节-128~127
short 短整型2字节-215~215-1
int 整型4字节-231~231-1
long 长整形8字节-263~263-1
整型的使用细节(IntDetail.java文件)
  1. Java各种整数类型有固定的范围和字段长度,不受具体操作系统的影响,以保证java程序的可移植性。
  2. Java的整型常量默认为int值,声明long型常量后面加大/小写L
  3. Java程序中变量常声明为int型,除非不足以表示大数,才使用long。
  4. bit:计算机中的最小存储单元。byte是计算机的基本存储单元1byte = 8bit

2. 浮点类型

类型占用存储空间范围
float 单精度4字节-3.403E38~3.403E38
double 双精度8字节-1.798E308~-1.798E308

说明:

  1. 浮点数在机器中的存储形式简单说明:浮点数 = 符号位 + 指数位 + 尾数位
    具体存储可以看我的C语言专栏-C语言进阶数据的存储
  2. 尾数部分可能丢失。造成精度的损失。(小数都是近似值)
使用细节
  1. 与整数类型类似,Java浮点类型也有固定的范围和字段长度,不受OS的影响。
  2. Java浮点数常量(具体值)默认为double类型,声明float型常量,后面需要加f或F
  3. 浮点型常量有两种表达形式
    十进制如3.1415 3.1415f(必须要有小数点)。
    科学计数法形式:3.14e2 3.14e-2
  4. 通常情况下应使用double型,因为它比float更精确。
  5. 浮点数使用有陷阱。
浮点数使用的陷阱

阅读以下代码

double num1 = 2.7;
double num2 = 8.1/2.7;
System.out.println(num1); // 结果为2.7
System.out.println(num2); // 结果为接近2.7的一个小数。不是2.7

当我们对运算结果是小数的结果进行判断时,要非常的小心。

解决方法: 使用精度进行判断。

解决

if(Math.abs( num1 - num2 ) < 0.000001){} 
//计算两个数的绝对值。0.000001不是固定的,根据需求来

3. 字符类型(char)

字符类型可以表示单个字符,字符类型为char, char是两个字节(可以存放汉字),搓个祖父我们用字符串String。

使用细节
  1. 字符常量是用单引号(' ')括起来的单个字符。
  2. Java中还允许使用转义字符\来将其后的字符变为特殊的字符常量。
  3. 在底层,char的本质是一个整数,在输出时,是Unicode码对应的字符。
  4. 可以直接给char赋值一个整数,然后输出时,会按照对应的Unicode字符输出。
  5. char类型是可以进行运算的。相当于一个整数,因为他都对用有Unicode码。

4. 布尔类型:boolean

  1. 布尔类型也叫boolean类型,boolean类型数据只有true和false。
  2. boolean类型占一个字节。
  3. boolean类型适用于逻辑运算,一般用于程序流程控制。

类型转换

1. 自动类型转换

当java程序在进行赋值或运算时,精度小的类型会自动转化为精度大的精度类型,这就是自动类型转换

数据类型转换精度(容量)大小排序:

(小)char - int - long - float - double(大)

(小)byte - short - int - long - float - double(大)

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

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

强制类型转换细节说明
  1. 当进行数据从大到小,就需要使用强制类型转换。
  2. 强制类型转换符号只针对于最近的操作数有效,往往会使用小括号提升优先级。
  3. char类型可以保存int的常量值,但不能保存int的变量值,需要进行强制类型转换。
  4. byte和short,char类型在进行运算时,当做int类型处理。

基本数据类型和 String 类型的转换

我们经常需要将基本数据类型转换成String类型,或者将String类型转换成基本数据类型。

  • 基本数据类型转换成String类型,使用基本数据类型+""即可完成
int n1 = 100;
float n2 = 1.1f;
double n3 = 3.4;
boolean b = true;
String s1 = n1 + "";
String s2 = n2 + "";
String s3 = n3 + "";
String s4 = b + "";
System.out.println(s1 + " " + s2 + " " + s3 + " " + s4);
  • String类型转换成基本数据类型,使用包装类调用parseXX方法
//进行类型转换
int num1 = Integer.parseInt(s5);
double num2 = Double.parseDouble(s5); 
float num3 = Float.parseFloat(s5); 
long num4 = Long.parseLong(s5);
byte num5 = Byte.parseByte(s5); 
boolean b = Boolean.parseBoolean("true"); 
short num6 = Short.parseShort(s5);

结果

System.out.println(num1);//123 
System.out.println(num2);//123.0 
System.out.println(num3);//123.0 
System.out.println(num4);//123 
System.out.println(num5);//123 
System.out.println(num6);//123 
System.out.println(b);//true
注意事项
  1. 在将String类型转换成基本数据类型时,要确保String类型能够转成有效的数据。
    如:可以将“123”转换成数据,不能把"hello"转换成一个整数。

  2. 如果格式不正确,就会抛出异常,程序会终止。

本章作业

  1. 程序阅读输出什么?
public class Homework01{
    public static void main(String[] args){
        int n1;
        n1 = 13;
        int n2;
        n2 = 17;
        int n3;
        n3 = n2 + n1;
        System.out.println("n3 = " + n3);
        int n4 = 38;
        int n5 = n4 - n3;
        System.out.println("n5 = " + n5);
    }
}
  1. 在char类型,分别保存\n \t \r \\ 1 2 3 等字符,并打印输出。
  2. 编程,保存两本书名,用+拼接看效果。
    保存两个性别,用+拼接看效果。
  3. 编程实现
姓名年龄成绩性别爱好存储
xxxxxxxxxx

​ 要求:

  • 用变量将姓名、年龄、成绩、性别、爱好 存储

  • 使用+

  • 添加适当的注释

  • 添加转义字符,使用一条语句输出。

个人答案

  1. 结果如下
38
8
  1. 在char类型,分别保存\n \t \r \\ 1 2 3 等字符,并打印输出。
public class Homework02{
    public static void main(String[] args){
        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);
    }
}
  1. 编程,保存两本书名,用+拼接看效果。
    保存两个性别,用+拼接看效果。
public class Homework03{
    public static void main(String[] args){
        // 保存书名
        String book1 = "水浒传";
        String book2 = "西游记";
        System.out.prinln(book1 + book2);
        
        // 保存性别使用char即可
        char c1 = '男';
        char c2 = '女';
        System.out.prinln(c1 + c2);
    }
}
  1. 编程实现
public class Homework03{
    public static void main(String[] args){
        // 定义变量
        String name = "Lichen";
        int age = 20;
        double score = 80.9;
        char gender = '男';
        String hobby = "play";
        // 输出信息
        System.out.println("姓名\t年龄\t成绩\t性别\t爱好\n" + name + "\t"
                          + name + "\t" + age + "\t" + score + "\t"+ gender + "\t"
                          + hobby + "\t")
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Python中,可以使用概率论中的随机变量分布来进行统计计算。常见的离散型分布包括二项分布和泊松分布,连续性分布包括正态分布、均匀分布和指数分布等。这些分布可以用来计算概率、期望和方差等统计量。 对于正态分布,可以使用scipy.stats库中的norm模块进行计算。例如,可以使用norm.cdf函数计算小于某个值的概率,使用norm.ppf函数计算给定累积概率时的反函数值。代码示例如下: ``` from scipy.stats import norm # 计算小于40的概率 p1 = norm.cdf(40, loc=50, scale=10) # 计算30到40之间的概率 p2 = norm.cdf(40, loc=50, scale=10) - norm.cdf(30, loc=50, scale=10) # 计算小于2.5的概率 p3 = norm.cdf(2.5, 0, 1) # 计算-1.5到2之间的概率 p4 = norm.cdf(2) - norm.cdf(-1.5) # 计算累计概率为0.025时的反函数值 q1 = norm.ppf(0.025, loc=0, scale=1) # 计算累计概率为0.975时的反函数值 q2 = norm.ppf(0.975, 0, 1) print(p1, p2, p3, p4, q1, q2) ``` 对于计算随机变量的概率分布的均值和方差,可以使用numpy库进行计算。代码示例如下: ``` import numpy as np # 假设有一个数据框df,其中包含了不合格品数和概率 mymean = sum(df['不合格品数'] * df['概率']) # 计算均值 myvar = sum((df['不合格品数'] - mymean) ** 2 * df['概率']) # 计算方差 mystd = np.sqrt(myvar) # 计算标准差 print(mymean, myvar, mystd) ``` 以上是关于Python统计学中随机变量的概率分布的一些基本操作和计算方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python统计学03——随机变量的概率分布](https://blog.csdn.net/weixin_46277779/article/details/126673517)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎丶辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值