java变量

117 阅读6分钟

为什么需要变量

  1. 一个程序就相当于一个世界
  2. 变量相当于世界的每一个物质
  3. 变量是程序的基本组成单位

变量的介绍

概念

变量相当于内存中一个数据的存储空间,你可以把变量看成一个班级的某个学生,根据这个学生的名字我们就可以找到这个同学。
变量有三个基本要素(类型+名称+值)

变量声明

//数据类型 + 变量名,变量名...
String name;
int id,age;

变量初始化

//成员变量可以不用赋值,有默认初始化
//局部变量必须要初始化,否则编译不了
int a;
a = 10;
String name = "张三";
// jdk10以后,就可以不需要声明类型(从变量的初始值来判断类型)
var  i = 10

变量的使用注意事项

1.变量表示内存的一个存储区域,不同的变量,类型不同,占用的空间大小不同
2.在这个存储区域有自己的变量和数据类型
3.变量必须得先声明在使用,是有顺序的

int num = 10;//int
System.out.println(num);//10

4.在该区域的值可以在同一个类型不断变化

//初始化
int a = 10;
//错误
a = "张三";
//正确
a = 99;

5.在同一个作用域变量不可以有重复的名字

//初始化
int a = 10;
//错误
int a = 99;

6.变量的三要素(变量名,值,数据类型) ,既 变量 = 变量名 + 值 + 数据类型

数据类型

微信截图_20221011221529.png 注意:字符串是引用类型,因为字符串的本质是类

整数类型

微信截图_20221011223420.png

浮点类型

微信截图_20221013201929.png
说明

  1. 浮点数在计算机中的存储形式:浮点数 = 符号位 + 指数位 + 尾数位
  2. 尾数可能丢失 造成精度损失

浮点类型使用细节

  1. 与整数类型一样,浮点有固定长度, 不会影受到操作系统的影响
  2. Java的浮点型默认是Double型,声明float类型 需要加F或f
  3. 浮点的表达形式
public class Double_ {
    public static void main(String[] args) {
        double a = 1.1;
        double b = 1.1f;
        double c = .123;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

4.一般情况下 使用Double 因为Double比float更精准

@Test
public void m1(){
    double a = 1.1234567845;
    float b = 1.1234576845f;
    System.out.println(a);//1.1234567845
    System.out.println(b);//1.1234577
}

字符类型

1.基本介绍
字符型有单个字符,字符类型是char,char是两个字节,可以存放汉字,多个字符我们用字符串String表示。

char c1 = 'y';
char c2 = '杨';
char c3 = 97;

2.字符型使用细节
1.字符常量是用单引号''括起来的单个字符。 例如:char c1 = 'y';char c2 = '杨';char = '7';
2.java还允许使用转义字符''来将后面的字符转成特殊字符常量。例如char = '\n'(/n 表示换行)。
3.java中,char的本质是一个整数,输出时,是unicode码对应的字符。
4.可以给char赋一个整数,然后输出,这时会按照对应的unicode字符输出。
例如:

char c3 = 97;
System.out.println(c3);//a

5.char类型是可以进行运算的,相当于一个整数,因为它们有对应的unicode码值。

布尔类型

基本介绍

  1. 布尔类型也叫boolean类型,boolean类型数据只允许取值true和false,没有null。
  2. boolean类型只占一个字节。
  3. 布尔类型适用于逻辑运算,一般用于流程控制语句。
  • if条件控制语句
  • while循环控制语句
  • do-while循环控制语句
  • for循环控制语句
  1. 案列演示:
boolean team = true;
if(team){
    System.out.println("成功");
}else {
    System.out.println("失败");
}

基本数据类型数据转换

一,自动数据类型转换

基本介绍
当java程序在进行赋值或者运算时,精度小的类型自动转为精度大的数据类型,这个就是自动类型转换。
自动数类型转换注意和细节

  1. 有多种类型的数据进行运算时,系统会先将所有精度小的转换成精度最大的那种数据类型,在进行计算。
int n = 10;
float num1 = n + 1.1;//错误, n + 1.1的最大类型时double
float num2= n + 1.2F;//正确,n + 1.2F的最大类型时float
double num3 = n +1.3;//正确,n + 1.3的最大类型时double
  1. 我们把精度大的数据类型转换成精度小的数据类型,此时就会报错。
int num1 = 1.9;//错误,double类型的精度比int类型的精度大
  1. byte,short和char之间不会相互自动转换。
// 如果要把具体的值赋给byte,先判断该值是否在byte范围内(-128——127),如果是就可以
byte b1 = 1;//正确,1在 -128——127 范围内
int n = 2;
byte b2 = n;//错误, 变量赋值,需要判断类型
char c = b1;//错误,  byte,short和char之间不会相互自动转换。
  1. byte,short和char他们可以计算,计算时先转换成int数据类型。
 byte b1 = 1;
 byte b2 = 3;
 short s1 = 2;
 short s2 = b1 + s1;//错误,  b1 + s1 是int类型
 int n1 = b1 + s1;//正确
 byte b3 = b1 + b2;//错误,  b1 + b2 是int类型

5.boolean不参与类型转换

boolean temp = true;//boolean不参与类型转换
int num1 = temp;//错误, boolean不参与类型转换

二,强制类型转换

基本介绍
自动类型转换的逆过程,将精度大的数据类型转换成精度小的数据类型。使用时要加强制转换符(),但可能会造成精度损失;格外注意。

int n = (int)1.9;
System.out.println(n);

强制转换类型说明

  1. 当数据的大小从大转换成小的时候,就需要使用到强制转换。
  2. 强转符号只针对于最近的操作数有效,往往会使用小括号来提升优先级。
int a = (int)10*1.5 + 5.5;
int b = (int)(10*1.5 + 5.5);
System.out.println(a);
System.out.println(b);
  1. char可以赋值int的常量值,但不能赋值int的变量值,需要强制转换。
char  c1 = 10;
int n1 = 10;
char c3 = n1;//错误
char c4 = (char)n1;//正确
  1. byte和short,char类型在进行运算时,当做int类型处理

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

基本介绍

  1. 在开发中,我们会经常需要将基本数据类型转换成String类型,或者将String类型转换成基本数据类型。
  2. 基本数据类型转换String类型,语法: 在数据类型的值+""就好了。
//例如
int i = 10;
float f =1.3f;
double d = 1.2;
boolean b = true;
String s1 = i + "";
String s2 = f + "";
String s3 = d + "";
String s4 = b + "";
System.out.println(s1 + " "+ s2 + " "+ s3 + " "+ s4);
  1. Stirng类型转换成基本数据类型,语法:通过基本数据类型的包装类调用parseXXX()方法即可。
Interger.parseInt("123");
Double.parseDouble("123.9");
Float.parseFloat("123.95");
Short.parseShort("12");
Long.parseLong("1234");
Boolean.parseBoolean("true");
Byte.parseByte("12");

注意细节

  1. 在将一个String类型转换成基本数据类型时,要确保能转换成有效数据,例如我们可以把"1234"转换成一个整数,但不能把"HelloWord!"转换成一个整数。
  2. 如果格式不正确,就会抛出异常,程序终止。