韩顺平30天学Java笔记 2-java变量

本文详细介绍了Java中的基本数据类型,包括整数、浮点、字符和布尔类型,以及它们的取值范围和存储空间。同时,讨论了+号在不同类型之间的运算规则,以及数据类型的自动转换和强制转换。此外,还讲解了如何在Java中进行String与基本数据类型的转换,以及在转换过程中需要注意的细节问题。
摘要由CSDN通过智能技术生成

基本概念

变量相当于内存中一个数据储存空间的表示

注意事项

  • 变量表示内存中的一个储存区域(不同的变量,类型不同,占用的空间大小不同,比如:int四个字节,double就是八个字节)
  • 该区域有自己的名称和类型
  • 变量必须先声明,后使用
  • 该区域的数据/值可以在同一类型范围内不断变化
  • 变量在同一个作用域内不能重名
  • 变量 = 变量名 + 值 + 数据类型

+号的使用

  • 当左右两边都为数值型时,则作加法运算
  • 当左右两边有一方为字符串,则作拼接运算
  • 运算顺序从左到右
  • “hello” + 100 + 3 = hello1003
  • 100 + 3 + “hello” = 103hello

数据类型

  • 基本数据类型
    • 数值型
      • 整数类型,存放整数(byte[1],short[2],int[4],long[8])
      • 浮点(小数)类型(float[4],double[8])
    • 字符型(char[2]),存放单个字符’a’
    • 布尔型(boolean[1])
  • 引用数据类型
    • 接口
    • 数组([])

整数类型

类型占用储存空间范围
byte1字节-128~127
short(短整型)2字节-(215)~215-1
int4字节-(231)~231-1
long8字节-(263)~263-1
  • 整型细节
    • java的整型常量默认为Int型,声明long型常量后需要加’l’或’L’
    • bit:计算机中的最小储存单位。byte:计算机中基本存储单元 1byte = 8 bit.

浮点类型

  • 浮点型的分类
类型占用储存空间范围
单精度(float)4字节-3.403E38 ~ 3.403E38
双精度(double)8字节-1.798E308 ~ 1.798E308
  • 说明
  1. 关于浮点数在机器中存放形式,浮点数=符号位 +指数位+尾数位

  2. 尾数部分可能丢失,造成精度损失(小数都是近似值)

  3. java的浮点型常量默认为double型,声明float时后面要带’f’或者’F’

float num1 = 1.1F
double num2 = 1.1f

以上两者都是正确的

  1. 浮点型常有两种表示形式

    • 十进制数形式: .512 5.12 512.0f
    • 科学计数法形式
  2. 通常情况下,应该使用double型,因为他比float更精确

  3. 当我们对运算结果是小数的进行相等判断时,应该是以两个数的差值的绝对值,在某个精度范围内判断

字符类型

  • 基本介绍

    • 字符类型可以表示单个字符,字符类型是char,char是两个字节
    char c1 = 'a'   // a
    char c2 = '\t'  
    char c3 = '张'  //张
    char c4 = 97   // a
    
    
    • 当输出数字时,会输出该数字表示的字符
  • 字符细节

    • 字符常量是用单引号括起来的单个字符
    • java中允许转义符’'来将其后的字符转变为特殊字符常量
    • 在java中,char的本质是一个整数,在输出时,时unicode码对应的字符
    • 可以直接给char赋予一个整数,在输出时,会按照对应的unicode字符输出
    • char类型是可以进行运算的,相当于一个整数,因为他们都有对应的unicode码 (‘a’+10 =107)
char c5 = 'b' + 1;
System.out.println((int)c5); //99
System.out.println(c5); //c
  • 字符类型本质
    • 字符型存储到计算机中,需要将字符对应的码值(整数)找出来
    • 字符和码值的对应关系是通过字符编码表决定的
    • 常用的字符编码表有
      • ASCII(ASCII编码表一个字节表示,一共128个字符,实际上一个字节可以表示256个字符,只用128个)
      • unicode (unicode编码表 固定大小的编码,使用两个字节来表示字符,字母和汉字同意都是占用两个字节,这样浪费空间)
      • utf-8 (大小可变的编码,字母用一个字节,汉字使用三个字节)
      • gbk (可以表示汉字,而且范围广,字母使用一个字节,汉字使用两个字节 65536)
      • gb2312
      • big5码

布尔类型

注意事项:不能用0或非0的整数替代false和true

基本数据类型转换

  • 自动类型转换
    • 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
    • 数据类型按精度(容量)大小排序为:
      • char - > int - > long - > float - > double
      • byte - > short - > int - > long - > float - > double
int num = 'a' // char -> int
double d1 = 80 // int -> double
System.out.println(num) //97
System.out.println(d1) //80.0
  • 自动类型转换细节
    • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算
    • 当我们把精度(容量)大的数据类型赋值给精度小的数据类型时,就会报错,反之就会进行自动类型转换
    • (byte,short)和char之间不会相互自动转换
    • byte, short, char 他们三者可以计算,在计算时首先转换为int类型
    • boolean 不参与转换
    • 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型

强制类型转换

  • 强制符号只针对于最近的操作数有效,往往会使用小括号提升优先级
  • char类型可以保存Int的常量值,但不能保存int的变量值,需要强转
char c1 = 100; //ok
int m = 100;  //ok
char c2 = m;  //错误
char c3 = (char)m;  //ok
System.out.println(c3);  //100对应的字符d
  • byte和short类型在进行运算时,当作int类型处理

string和基本数据类型的转换

  • 基本类型转String类型
    • 语法:将基本类型的值+""即可
    int n1 = 100;
    boolean b1 = true;
    double n2 = 3.4;
    String str1 = n1 + "";
    String str2 = b1 + "";
    String str3 = n2 + "";
    
  • String类型转基本数据类型
    • 语法:通过基本类型的包装类调用parseXX方法即可
    • 字符串转成字符char, 含义是指 把字符串的第一个字符取出来
Integer.parseInt("123");
Double.parseDouble("123.1");
Float.parseFloat("123.45");
Boolean.parseBoolean("true");
Byte.parseByte("12");
  • String转基本类型细节
    • 在将String类型转成基本数据类型时,要确保String类型能够转成有效的数据,比如我们可以把"123",转成一个整数,但是不能把"hello"转成一个整数
    • 如果格式不正确,就会抛出异常,程序就会终止
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

xsdgfdjsjsk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值