其他分享
首页 > 其他分享> > 尚学堂高淇讲基础02

尚学堂高淇讲基础02

作者:互联网

尚学堂高淇讲基础02

1.变量(variable)

如果我们把一个软件、一个程序看做一座大楼的话,变量就是“砖块”,一个个“砖块”最终垒成了大厦。变量也是进入编程世界最重要的概念,本节从变量的本质开始讲解,让大家一开始就能抓住变量的核心。

image-20220812144756151

 

变量的本质

变量本质上就是代表一个”可操作的存储空间",空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。

 

变量的声明

变量类似于停车场的车位。一个变量相当于一个停车位,我们通过停车位的名字找到对 应的“位置(空间)”。然后,确定上面停的是什么车。车类似于数据,是可变的

格式为:

 type varName [=value][,varName[=value]...];
 /[]中的内容为可选项,即可有可无
 数据类型变量名[=初始直[,变量名[=初始值].….];

示例:声明变量

 double salary
 long earthPo....
 int age

字节:8 8 4 byte 1字节 = 8bit

image-20220812145817542

 

 

局部变量在使用前需要初始化 也就是赋值

 

变量的分类和作用域

从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量

从表中看三者区别:

类型声明位置从属于生命周期(作用域)
局部变量 方法或语句块内部 方法/语句块 从声明位置开始,直到方法或语句块执行完毕,局部变量消失
成员变量(实例变量) 类内部,方法外部 对象 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失
静态变量(类变量) 类内部,static修饰 类被加载,静态变量就有效;类被卸载,静态变量就消失

 

2.常量和final

final 定义最终的值,不能改变

常量只能初始化一次

image-20220812161648355

经过final修饰的,我们一般称作常量

 public class Final {
     public static void main(String[] args) {
         final double PI = 3.14;
         double r = 3;
         double area = PI * r * r;
         double circe= 2*PI*r;
 ​
         System.out.println("面积是:"+area);
         System.out.println("周长是:"+circe);
    }
 }

为了更好的区分和表述,一般将1、2、3、' a’ .' b’ . true、false、" helloWorld"等称为字符常量,而使用final修饰的PI等称为符号常量。

 

3.基本数据类型

Java是一种强类型语言 每个变量都必须声明其数据类型

Java的数据类型可分为两大类∶

基本数据类型( primitive data type )和引用数据类型( reference data type )。

 

Java中定义了3类8种基本数据类型

image-20220812164935593

一个字节,是8位,2的8次方

四个字节,是32位,2的32次方

 

整型

image121212

浮点型

不精确,有误差的

带小数的数据在Java中称为浮点型。浮点型可分为float类型和double类型。

这里E38 代表 -3.403*10的38次方

类型占用存储空间表数范围
float 4字节 -3.403E38~3.403E38
double 8字节 -1.798E308~1.798E308

float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。而double表示这种类型的数值精度约是float类型的两倍,又被称作双精度类型,绝大部分应用程序都采用double类型。

 java浮点类型常量有两种表示形式
     十进制数形式,例如:3.14    314.0   0.314
     科学计数法形式,如3.14E0   3.14E2  3.14E-1
           3.14*10的2次方       3.14*10的-1次方

float类型的数值有一个后缀F或者f ,没有后缀F/f的浮点数值默认为double类型。也可以在浮点数值后添加后缀D或者d,以明确其为double类型。

需要金融计算的话,需要使用BigDecimal类

 老鸟建议
  浮点类型float, double的数据不适合在不容许舍入误差的金融计算领域。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
 public class Float {
     public static void main(String[] args) {
         double a = 3.14;
         double b = 3.14E2;
         System.out.println(b); //科学计数法表示小数
 ​
         //float f1 = 1.35; //会报错1.35是double类型的浮点常量,不能直接赋值给float
         float f2 = 1.35F;
 ​
         //浮点数是不精确的,尽量不要直接用于比较
         float c = 0.1F;
         double d = 1.0/10;
         System.out.println(c);
         System.out.println(c==d); //一个等是赋值,两个等是比较运算   false
 ​
 ​
         float e = 212312313123L;
         float f = e+1;
         System.out.println(e==f);//true
 ​
    }
 }

 

字符型

字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。 char类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

 \uFFFF   :  
  每两个FF代表两个字节   前两个FF代表256  后两个一样

 

Unicode具有从0到65535之间的编码,他们通常用从’\u0000’到\uFFFF’之间的十六进制值来表示(前缀为u表示 Unicode )

char是一个字符,一个字节 --你可以定义char a = '中' 但是定义‘中国’就会报错

 public class Char {
     public static void main(String[] args) {
         char c1 = 'a';
         char c2 = '中';
         char c3 = '\u0061';
 ​
         System.out.println(c1);
         System.out.println(c2);
         System.out.println(c3);
 ​
         char a = '\n';
         System.out.println("你好,换行谢谢"+a+"真听话");
    }
 }

 

4.boolean布尔型 _if语句使用要点+布尔值占用空间问题(一般情况下4个字节,数组下占一个字节)

boolean类型有两个常量值,true和false,在内存中占一个字节或4个字节,不可以使用О或非О的整数替代true 和false ,这点和C语言不同。boolean类型用来判断逻辑条件,一般用于程序流程控制。

测试boolean

 public class Boolean {
     public static void main(String[] args) {
         boolean flag = true;
 ​
         if (flag){
             System.out.println("boolean是true");
        }else {
             System.out.println("boolean是false");
        }
    }
 }
 老乌建议
  Less is More ! !请不要这样写:if ( flag = = true ),只有新手才那么写。关键也很容易写错成if(flag=true),这样就变成赋值flag 为true而不是判断!老鸟的写法是if ( flag )或者if ( !flag)

 

关于boolean类型 几个字节的说明:

在《Java虚拟机规范》一书中的描述︰“虽然定义了boolean 这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的 byte数组,每个元素boolean元素占8位”。也就是说JVM规范指出 boolean当做int处理,也就是4字节,boolean数组当做byte数组处理,这样我们可以得出boolean类型占了单独使用是4个字节,在数组中是确定的1个字节。

 

5.运算符

%取余 ++ 自增 --自减 赋值运算符

image-20220812233010849

 

算数运算符

算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。

二元运算符的运算规则:

整数运算:

浮点运算:

取模运算:

 

测试运算符

标签:02,变量,double,float,高淇,学堂,boolean,println,字节
来源: https://www.cnblogs.com/wangshikang/p/16581760.html