1)变量概述
变量:内存中的一块空间,用来存储数据;
2)计算机存储单源
硬盘–永久存储数据;内存–临时存储数据,运行时加载数据;
8 bits = 1Byte(计算机中最小存储单元-8位1字节,系统不会分配1bit,最小1Byte)
1 kB = 1024B
1 MB=1024kB
1 GB=1024MB
1 TB=1024GB
3)基本数据类型(4类8种)
- 变量必须要有明确的类型,什么类型的变量装载什么类型的数据;
Java数据类型:
四类 八种 字节数
整型 byte 1 (+-)
short 2 (+-)
int 4 (+-)
long 8 (+-)
浮点型 float 4
double 8
字符型 char 2(表示字符 )
布尔型 boolean 1(只有2个值true、false)
4)常量和数据类型
-
注意常量的数据类型是什么,当常量值过大过小时可能会报错;
-
整数常量可以根据所在的范围来确定类型,java中默认的整数类型为int类型,指定数据类型必须加后缀,整数常量过大需要加后缀;
100 //默认int类型 12345678901 //超出了默认int类型的取值范围,在Java中为错误的常量,必须加L 12345678901L //long类型 100L //long类型
-
浮点类型的常量也可以使用后缀,java中默认的浮点类型为double,float类型必须加后缀F
3.14 //double 3.14D //double 3.14F //float
5)变量创建3要素
-
在内存中,占有一个小的区域,存储数据,内存数据可以变化;
-
内存存储数据区域–>变量:创建变量需要3个要素:
类型、名字、数据
//数据类型 变量名 变量值 int a = 3; //变量未赋值,不能使用 int a;
6)定义所有的基本数据类型变量
-
error:错误: 编码 GBK 的不可映射字符 (0x80);解决方法:记事本打开java文件,设置utf-8编码 或
javac -encoding UTF-8 Variable.java
-
定义变量,变量可变,方便计算;
public class Variable{
public static void main(String[] args)
{
//1byte
byte b = 100;
System.out.println(b);
//2byte
short s = 200;
System.out.println(s);
//4bytes
int i = 500;
i = 15;
System.out.println(i);
//8byte
long l = 12345678901L; //必须加后缀L,long类型常量
System.out.println(l);
//flaot 4B
float f = 1.0F; //必须加F,浮点类型常量默认为double
System.out.println(f);
//double 8B
double d = 2.0;
double d2 = 2.0D;
System.out.println(d);
System.out.println(d2);
//char类型 2B
char c = '我'; //单引号括字符
System.out.println(c);
//bool 1B
boolean bool = true;
System.out.println(bool);
}
}
编译运行:
javac -encoding utf-8 Variable.java
java Variable
7)定义字符串变量
-
字符串属于引用类型,不属于基本类型,使用方式同基本类型;
/** * 常量:字符串,双引号,包裹起来 */ public class Variable_1{ public static void main(String[] args) { //定义字符串变量,属于引用类型,不属于基本类型 //定义方式和基本类型一样 String s= "我爱Java"; System.out.println(s); } }
8)定义变量使用注意事项
- 定义变量后,不赋值,不能使用;
- 变量具有自己的作用范围,有作用域限制,变量的有效范围,定义在一对大括号内;
- 变量不可以重复定义;
9)自动类型转换
- 不同类型的变量可以一起进行运算,但需要先进行类型转换再运算;
- 范围小的数据类型可以直接转换为大的,范围大的数据类型不能直接转换为小的;
- 布尔类型不参与类型转换;
10)强制类型转换
-
强制转换:将数据类型取值范围大的,转换为取值范围小的;
public class DataConvert_1 { public static void main(String[] args) { //double浮点,转换为整数int double d = 3.14; int i = (int)d; System.out.println(i); byte b = (byte)200; //损失精度,输出值非127,考虑补码--- System.out.println(b); } }
11)算术运算符
- 运算符是用来计算数据的符号,数据可以是常量,也可以是变量;
- + 起连接作用:将一个字符串和其他数据连接起来,任何类型只要和字符串+,所有数据都变成了字符串;
- 整数除法会进行截断;
- 取模运算,两数相除,取余数;
- 自增自减的含义;
12)赋值运算符
= += -= /= %=
各种运算符使用;
//注意几种典型错误
byte b = 1;
b = b + 1; //error : 1 为int类型,b+1会发生强制类型转换为int类型
b = (byte)(b+1); //right : 进行强制类型转换
b += 1; //right: 这种复合运算符,将等号左右两边进行计算,会将结果自动强制转换为等号左边的数据类型;
b += 2; //等效于 b = (byte)(b + 2);
13)比较运算符
- 比较运算符计算结果只有2种:
true
、false
; - 比较运算符:
== != > < >= <=
- 注意区分赋值运算符合比较运算符
14)逻辑运算符
& | ! && || ^
- 异或:相同为false,不同为true;
15)三元运算符
布尔表达式 ? 结果1 : 结果2
;
16)商场库存清单
实现效果:
/*
实现商品库存清单
1.实现表头,固定数据,直接写输出语句
2.表格中间,商品数据,采用变量形式 定义变量 找对数据类型
3.表格尾巴,一部分数据固定
*/
public class Shop {
public static void main(String[] args) {
System.out.println("--------商场库存清单----------");
System.out.println("品牌型号 尺寸 价格 库存");
//定义数据变量
String macBrand = "MacBookAir";
double macSize = 13.3;
double macPrice = 6988.88;
int macCount = 5;
String thinkBrand = "ThinkpadT450";
double thinkSize = 14.0;
double thinkPrice = 5999.99;
int thinkCount = 10;
String asusBrand = "ASUS-FL5800";
double asusSize = 15.6;
double asusPrice = 4999.5;
int asusCount = 18;
//打印变量
System.out.println(macBrand + " " + macSize
+ " " + macPrice + " " + macCount);
System.out.println(thinkBrand + " " + thinkSize
+ " " + thinkPrice + " " + thinkCount);
System.out.println(asusBrand + " " + asusSize
+ " " + asusPrice + " " + asusCount);
//计算总库存
int totalCount = macCount + thinkCount + asusCount;
//总金额
double totalMoney = macCount * macPrice + thinkCount * thinkPrice + asusCount * asusPrice;
System.out.println("总库存数:" + totalCount);
System.out.println("库存商品总金额数:" + totalMoney);
}
}