尚学堂高淇讲基础02
作者:互联网
尚学堂高淇讲基础02
1.变量(variable)
如果我们把一个软件、一个程序看做一座大楼的话,变量就是“砖块”,一个个“砖块”最终垒成了大厦。变量也是进入编程世界最重要的概念,本节从变量的本质开始讲解,让大家一开始就能抓住变量的核心。
变量的本质
变量本质上就是代表一个”可操作的存储空间",空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。
变量的声明
变量类似于停车场的车位。一个变量相当于一个停车位,我们通过停车位的名字找到对 应的“位置(空间)”。然后,确定上面停的是什么车。车类似于数据,是可变的。
格式为:
type varName [=value][,varName[=value]...];
/[]中的内容为可选项,即可有可无
数据类型变量名[=初始直[,变量名[=初始值].….];
示例:声明变量
double salary
long earthPo....
int age
字节:8 8 4 byte 1字节 = 8bit
局部变量在使用前需要初始化 也就是赋值
变量的分类和作用域
从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量
从表中看三者区别:
类型 | 声明位置 | 从属于 | 生命周期(作用域) |
---|---|---|---|
局部变量 | 方法或语句块内部 | 方法/语句块 | 从声明位置开始,直到方法或语句块执行完毕,局部变量消失 |
成员变量(实例变量) | 类内部,方法外部 | 对象 | 对象创建,成员变量也跟着创建。对象消失,成员变量也跟着消失 |
静态变量(类变量) | 类内部,static修饰 | 类 | 类被加载,静态变量就有效;类被卸载,静态变量就消失 |
2.常量和final
final 定义最终的值,不能改变
常量只能初始化一次
经过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种基本数据类型
-
数值型- byte1、 short2、int4、 long8、float4、double8
-
字符型-char
-
布尔型- boolean
一个字节,是8位,2的8次方
四个字节,是32位,2的32次方
整型
浮点型
不精确,有误差的
带小数的数据在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.运算符
%取余 ++ 自增 --自减 赋值运算符
算数运算符
算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。
二元运算符的运算规则:
整数运算:
-
如果两个操作数有一个为Long,则结果也为long.
-
没有long时,结果为int。即使操作数全为short , byte,结果也是int。
浮点运算:
-
如果两个操作数有一个为double ,则结果为double。
-
只有两个操作数都是float,则结果才为float。
取模运算:
-
其操作数可以为浮点数,一般使用整数,结果是“余数”,"余数”符号和左边操作数相同,如:7%3=1 ,-7%3=-1,7%-3=1。
测试运算符
标签:02,变量,double,float,高淇,学堂,boolean,println,字节 来源: https://www.cnblogs.com/wangshikang/p/16581760.html