语言基础第二天

变量

计算机是离不开数据 ! 也就意味着离不开变量

变量:就是来存数据的!我们可以使用变量往内存中存储数据!

1.变量的声明

声明:相当于在银行开个账户

int a;//声明一个int(整数) 的变量 变量名为a
int b,c,d;//声明了三个int(整数)的变量  变量名分别为 b  c   d
//int a; 编译错误:因为已经声明过了一个int 的变量 名字a   变量声明时,名字不能重复!

2.变量的初始化

初始化:给账户里面存钱

int a = 100;//声明一个int 的变量 名为a 并为 a这个变量里面存了100    声明+初始化
int b;//声明一个int 的变量 名为 b
b = 500;//为变量b 里面存了 500 
System.out.println(a);//100   打印输出 变量a 里面存的数据
System.out.println("a");//a  原样输出!

3.变量的使用

使用:使用账户里面的钱

在使用变量时,用到的变量的内容以最后一次赋值的数据为准!

​
(1)我们对变量的使用,其实就是使用变量里面存的内容!
int a = 5; //声明一个int 变量为a  并为 a这个变量里面存了 5
int b = a + 10;//声明一个int 变量为b  并为里面存了 a + 10计算的结果 15
System.out.println(a);//5
System.out.println(b);//15
b = 300;
System.out.println(b);//300
(2)我们在使用变量时,必须先声明和初始化!
System.out.println(m);

​

4.变量命名的规范

1.变量名不能以数字开头!可以包含数字、字母、_ 和 $

2.变量名是区分大小写的!!

3.变量名是不可以使用关键字(蓝色字体的)来进行命名!

4.变量名的命名要英文的见名知意!

​
     //变量的命名规则:
        //1.
//        int 1a; 编译错误:变量名称不能以数字开头!
        int a1;//可以!
        int _a;//可以!
        int $oo,_$,gfdg$_123;//可以!
        //2.变量严格区分大小写!
        int aa = 100;
        System.out.println("AA");//原样输出!
//        System.out.println(AA); 程序严格区分大小写!
        //3.变量名不能用关键字来进行命名
//        int class,static,void,public,int;
​
        //4.变量的命名要见名知意!!!
        int age = 18; //变量的命名要英文的见名知意!
        int nianling = 10;//不可以用拼音命名!!!
        int 年龄 = 18;//不可以用中文的见名知意!!!
        //变量命名 多个单词之间 遵循小驼峰命名法
        int myAge = 31;
        //类名遵循帕斯卡命名法:每个单词首字母都要大写!

​

数据类型决定了我们当前变量可存储的数据 和范围。

数据类型分为两大类:基本数据类型 和 引用数据类型

基本数据类型有8种:byte ,short ,int 、long 和 float、 double 、char 、boolean

不常用:byte 后续IO相关知识才会用。

short 和 float 是为了吸引C语言程序员 所保留设计的类型。

整数类型:

int:占4个字节

long:占8个字节

小数类型:

double:占8个字节

字符类型:

char:占2个字节

布尔类型:

boolean:占1个字节

内存单位换算:

GB(吉字节)

1GB = 1024MB

MB(兆字节)

1MB = 1024KB

KB(千字节)

1KB = 1024B

B(字节)

1b = 8bit(位)

整数类型:

int类型(4个字节) ,可存储 -21亿多 ~ 21亿多

1.整数的直接量,默认为int类型,直接量是不能够超过当前类型可存储的范围,否则会报错!

2.如果两个整数想除,结果是不会保留小数的!(是截断删除小数的内容,不会四舍五入)!

3.整数运算时,若超出当前类型可存储的范围,则会溢出(溢出不叫错误),但是需要避免,因为溢出的数据没有实 际参考价值。

​
//直接量
        int a = 100;//声明了一个int类型 变量名为a  并直接存了 100
//      int b = 2147483648;//编译错误:直接量超过int 可存储的最大范围
​
        int c = 5;
        int d = 2;
        System.out.println(c / d);//2  整数相除不会保留小数位
​
        int num = 2147483647;//存了int的最大值
        int result = num + 1;
        System.out.println(result);//-2147483648
​
        /**
         *      最大值+1  --------- (-2147483648)  最小值
         *      最大值+1+1 -------- (-2147483647)
         *      最大值+1+1+1 ------ (-2147483646)
         *
         * */
变量是存储数据的,但是内存大小由当前变量的类型来决定的!
int a = 5;
int b = 2147483647;

​

long类型(8个字节),可存储的范围 -900万万亿 ~ 900万万亿

1. 长整数类型 直接量 需要在直接量后面加上后缀L(建议大写) 来表示。

2.长整数类型在参与运算时,建议在第一个数据后面加上L 代表其运算结果为long类型。

​
//        long l = 2147483648;// 编译错误: 整数的直接量默认int类型  此时超过了int类型最大范围
                //直接量 后缀L
        long l1= 214748364L;//长整数类型的直接量
                 //10亿
        long a = 1000000000 * 2 * 10L;
//        System.out.println(a);//200亿
                // 30亿在计算时已经超过了int的最大值 发生了溢出 那么 后续的数据则计算不准确
        long b = 1000000000 *3 *10L;
        System.out.println(b);//-12949672960
​
        long c = 1000000000L * 3L * 10L;
        System.out.println(c);//300亿

​

小数(浮点数)类型:

double(8个字节),可以存很大很大很大......

1.浮点类型的直接量默认为 double类型。

2.我们也可以给浮点类型的直接量后缀加上大写D或d 来明确表示 double这个类型。

3. double 类型的数据 进行运算时,可能存在误差。

​
//小数直接量 默认为double类型
        double a = 3.1415926;//声明一个double类型的变量 名为a  并赋值 3.1415926
        double b = 6.999D;//也可以直接量后缀加上大写D
​
        double c = 3.0;
        double d = 2.9;
        System.out.println(c - d);//0.10000000000000009 可能存在误差 无限接近0.1
​
        double c1 = 6.0;
        double c2 = 4.9;
        System.out.println(c1 - c2);//1.0999999999999996 存在误差  无限接近1.1
​
        double d2 = 6.0;
        double d3 = 1.9;
        System.out.println(d2 - d3);//4.1

​

布尔类型

boolean(1个字节),要么是true(成立) 要么存的是false(不成立)。

​
boolean b1  = false ;
    System.out.println(b1);

​

char类型(2个字节)

  • char类型也叫做字符类型,什么是字符: 数字、字母、符号、中文。
  • char类型只能存单个字符! char c = 'A';

unicode:收录了全球的字符,统一字符码、万国码。Java中的char类型采用的那个子集 (ASCII码表)。

1. 一个字符对应一个码:表象看到的是字符,实际是处理的那个对应的码(0~65535)区间。

2.字符类型的直接量,要用单引号存储,单引号里面只能存储单个字符至少存一个!

3.Java提供的特殊符号,想进行存储的话 需要转义(转换原有的特殊含义)!

ASCII:     'a'=97             'A'=65             '0'=48

转义符: \

/**
 * 字符的使用演示类:
 * */
public class charDemo {
    public static void main(String[] args) {
        char a = '2';//声明一个char类型的变量 里面存的字符 2
//        char b = '12';// 编译错误: 字符只能存单个字符
        System.out.println(a);//字符 2
        System.out.println((int)a);// 字符2对应的码  --- 50
        char b = 50;//也可以直接存对应的码
        System.out.println(b);//打印就会显示码对应的字符
        char c = 2;//存的是码
        System.out.println(c);//打印的是c里面存的码对应的字符
        //--------------------------------
        char d = '\'';
        System.out.println(d);//'
        char d1 = '\\';
        System.out.println(d1);//  \
    }
}
​

基本类型由小到大依次为:

​ byte----short----int----long----float----double

​ char----

类型转换:

Java中类型转换分为两种

自动类型转换:

  •  将小的类型 放到 大类型的过程, 称之为自动类型转换(隐式转换)

强制类型转换:

  • 将大的类型 放到 小类型的过程,称之为强制类型转换(显式转换)

强制转换有风险,有可能会发生溢出。

/**
 * 类型转换的演示类:
 * */
public class DataTypeDemo {
​
    public static void main(String[] args) {
        //自动转换: 将小的类型 往 大的类型赋值的过程
//        int a = 5;//没有发生自动类型转换
//        long b = a; //发生了自动类型转换
//        long c = 1000; //发生了自动类型转换
//        double d = c;//发生了自动类型转换s
        int e = 10;
        double d1 = e;//自动转换
        System.out.println(d1);//10.0
        //强制类型转换:
        long a = 1000000000l;//10亿
        int b  = (int)a;//强制转换的语法,在需要转换类型的变量前面加上小括号 小括号里面写上要转换的类型
       // System.out.println(b);
​
        long c = 3000000000l;//30亿
        int d = (int)c;//强制转换的语法   强制是有风险 需要避免溢出的问题
        System.out.println(d);//溢出的值
​
        double d2 =  3.1415926;
        int i = (int)d2;//double类型数据强制转换为整数的话  小数位直接截断删除
        System.out.println(i);//3
​
    }
}

规则:

1.整数直接量,可以直接赋值给 byte 、short 、char 但是不能超过当前类型可存储的范围。

2.byte、shor、char 类型如果在进行运算时,系统自动将其结果转换为int类型。

package 02
/**
 * 类型转换的演示类:
 */
public class DataTypeDemo {
​
    public static void main(String[] args) {
        //自动转换: 将小的类型 往 大的类型赋值的过程
//        int a = 5;//没有发生自动类型转换
//        long b = a; //发生了自动类型转换
//        long c = 1000; //发生了自动类型转换
//        double d = c;//发生了自动类型转换s
//        int e = 10;
//        double d1 = e;//自动转换
//        System.out.println(d1);//10.0
//        //强制类型转换:
//        long a = 1000000000l;//10亿
//        int b  = (int)a;//强制转换的语法,在需要转换类型的变量前面加上小括号 小括号里面写上要转换的类型
//       // System.out.println(b);
//
//        long c = 3000000000l;//30亿
//        int d = (int)c;//强制转换的语法   强制是有风险 需要避免溢出的问题
//        System.out.println(d);//溢出的值
//
//        double d2 =  3.1415926;
//        int i = (int)d2;//double类型数据强制转换为整数的话  小数位直接截断删除
//        System.out.println(i);//3
​
        //--规则----------------------------
        //byte 存储范围  -128 ~ 127
​
        byte b1 = 127;
        char c1 = 65535;
        char a = '2';//50
        char b = '2';//50
        int c = a+b; // a里面字符对应的码 + b里面字符对应的码
        System.out.println(c);//100
//        char c = (char)(a+b);//将a +b的结果强制转换为char类型
//        System.out.println(c);//d
//        System.out.println((int)c);//d对应的码---100
        char  c2 = '我';
        char  c3 = '你';
        System.out.println((int)c2);
        System.out.println((int)c3);
        System.out.println(c2 + c3);//可以直接放到输出语句中 输出 c2的码 + c3的码 结果
        //若两个不同的类型进行运算,系统则会将自动其结果转换为两个类型中最大的哪个类型
        byte b2 = 10;
        byte y = (byte)(b2+10);//byte + int   其结果类型为int
    }
}

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java小高

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

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

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

打赏作者

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

抵扣说明:

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

余额充值