变量:变量是内存中装载数据的小盒,你只能用它来存数据和取数据
计算机存储单元:硬盘属于永久存储,内存属于临时存储
1.定义出所有数据类型的变量
/*
定义Java中的变量
定义出所有数据类型的变量
四类八种
*/
public class Variable{
public static void main(String[] args){
//定义整数类型,字节类型 byte类型
//内存中1个字节, -128-127
byte b = 100;
System.out.println(b);
//定义整数类型,短整型,short类型
//内存中2个字节,-32768-32767
short s = 200;
System.out.println(s);
//定义整数类型,整型,int类型
//内存中4个字节,-2147483648-2147483647
int i = 500000;
System.out.println(i);
//定义整数类型,长整型,long类型
//内存中8个字节
long l = 1232435443234L;
System.out.println(l);
//定义浮点数据,单精度,float类型
//内存中4个字节
//float f = 1.0; //提示损失精度
float f = 1.0F;
System.out.println(f);
//定义浮点数据,双精度,double类型
//内存中8个字节
double d = 2.2;
System.out.println(d);
//定义字符类型,char
//内存中2个字节,必须单引号包裹,有且仅有一个字符
char c = '刷';
System.out.println(c);
//定义布尔类型,boolean
//内存中1个字节,数据值,true,false
boolean bool = true;
System.out.println(bool);
}
}
输出结果:
2. 常量:字符串,双引号,包裹,"0-n个字符"
/*
常量:字符串,双引号,包裹,"0-n个字符"
*/
public class Variable_1{
public static void main(String[] args){
//定义变量,字符串类型,数据类型 String 表示字符串的数据类型
String s = "我爱Java";
//String 属于引用类型,定义方式和基本类型一样
System.out.println(s);
}
}
输出结果:
3.变量定义和使用的注意事项
/*
变量定义和使用的注意事项
1.变量定义后,不赋值,不能使用
2.变量是有自己的作用范围,变量的有效范围,定义的一对大括号内
3.变量不允许重复定义
*/
public class Variable_2{
public static void main(String[] args){
int j = 10;
System.out.println(j);
}
int i = 1;
//int k = true;报错
}
输出结果:
4.数据类型的转换
/*
数据类型的转换
自动:取值范围小的类型,自动转换成取值范围大的类型
boolean不参与类型转换
*/
public class DataCovert{
public static void main(String[] args){
//定义double类型的变量
double d = 1000; //出现类型自动转换,int自动转换成double
System.out.println(d);
int i = 100;
double d2 = i; //出现类型自动转换,int自动转换成double
System.out.println(d2);
byte b = 10;
int j = b; //自动类型转换,byte自动转换成int
System.out.println(j);
}
}
输出结果:
5.数据类型的强制转换
/*
数据类型的强制转换
强制:数据类型取值范围大的,转成取值范围小的
数据类型的强制转换,公式
被转后的数据类型 变量名 = (被转后数据类型)要被转的数据
强制类型转换,没有要求的时候,不要做,容易丢数据
*/
public class DataCovert_1{
public static void main(String[] args){
//double浮点,转成整数int
double d = 3.14;
//int i = d;
//System.out.println(i); //编译出错
int i = (int)d;
System.out.println(i);
byte b = (byte)200; //可运行,但是会丢数据
System.out.println(b);
}
}
输出结果:
6.算数运算符
/*
算数运算符
+ 加法,连接
- 减法
* 乘法
/ 除法
% 取模,获取余数
++ 自增1
-- 自减1
*/
public class Operator{
public static void main(String[] args){
// + 连接作用,将一个字符串和其他数据连接起来
// + 遇到字符串,变成连接符号"5+5=55"
// + 任何类型只要和字符串+,所有的数据都变成了字符
System.out.println("5+5="+5+5);
//除法运算
int i = 100;
int j = 9;
System.out.println(i/j);
//取模运算,两个数相除,获取的是余数
int k = 6;
int m = 4;
System.out.println(k%m);
//自增运算 ++
int a = 3;
int b = 4;
a++; //变量a自己增加1
System.out.println(a);
++b;
System.out.println(b);
}
}
输出结果:
7.自增++ 写在前面和后面的区别
/*
++ 写在变量前面和写在后面,区别
a = 1
a++
++a
符号写在前面,还是写在后面,在变量自己独立计算的时候,没有区别
但变量,要是参与了其他运算,就有区别
j = i++ ++后算,先将i的值,赋值j,i自己再++
n = ++m ++先算,变量m先自加1,变量赋值给n
*/
public class Operator_1{
public static void main(String[] args){
int i = 5;
int j = i++;
System.out.println(i); //6
System.out.println(j); //5
int m = 5;
int n = ++m;
System.out.println(m);
System.out.println(n);
}
}
输出结果:
8.赋值运算符
/*
赋值运算符
=
+= -= *= /= %=
*/
public class Operator_2{
public static void main(String[] args){
//= 赋值运算,将右面的值,赋值给左边的变量
int i = 3;
i = i + 3;
System.out.println(i);
//+= 赋值运算符 i+=3 i=i+3
int j = 5;
j+=6;
System.out.println(j);
//%= m=10 m%=5 m=m%5
byte b = 1;
//b = b + 1;//b本身是字节,1是int 算完结果为4字节,结果赋值给b,强转出错了
}
}
输出结果:
9.比较运算符
/*
比较运算符,计算结果只有2个可能,true,false
计算结果的数据类型,boolean类型
== 比较符号两边的数据
!= 比较符号两边的数据
> 比较符号两边的数据
< 比较符号两边的数据
<= 比较符号两边的数据
>= 比较符号两边的数据
*/
public class Operator_3{
public static void main(String[] args){
int i = 3;
int j = 4;
System.out.prinln(i=j);
System.out.prinln(i==j);
System.out.prinln(2==1);
System.out.prinln(2!=1);
}
}
输出结果:
10.逻辑运算符
/*
逻辑运算符,对两个boolean类型数据之间进行计算
结果也是boolean类型
& : 一边是false,运算结果就是false,见了false,结果就是false
| :一边是true,运算结果就是true,见了true,结果就是true
^ :两边相同为false,不同为true
! :取反 !true = false !false = true
&&: 短路与,一边是false,另一边不运行
||:短路或,一边是true,另一边不运行
*/
public class Operator_4{
public static void main(String[] args){
System.out.println(false & true);
System.out.println(true | true);
System.out.println(false ^ false); //F
System.out.println(true ^ false ); //T
System.out.println(true ^ true); //F
System.out.println(!true);
System.out.println("-----------------------");
int i = 3;
int j = 4;
System.out.println(3>4 & ++j>2);
System.out.println(i);
System.out.println(j);
System.out.println(3==3 || ++j>2);
System.out.println(i);
System.out.println(j);
}
}
输出结果:
11.三元运算符
/*
三元运算符
公式:
布尔表达式 ? 结果1:结果2;
布尔表达式结果是true,三元运算符的结果,就是结果1
布尔表达式结果是false,三元运算符的结果,就是结果2
*/
public class Operator_5{
public static void main(String[] args){
System.out.println(3>5?99:88);
String s = 0==1?"haha":"hehe";
System.out.println(s);
}
}
输出结果:
12.实现商品库存清单案例
/*
实现商品库存清单案例
步骤:
1.实现表头,是固定数据,直接写输出语句 sop
2.表格中间,商品数据,采用变量形式,定义变量,找对数据类型 输出所有变量
3.表格尾巴,一部分数据固定 另一部分,商品数据进行数学计算,运算符
*/
public class Shopp{
public static void main(String[] args){
//输出表头固定数据
System.out.println("--------------商场库存清单-------------");
System.out.println("品牌型号 尺寸 价格 库存数");
//定义表格中的数据变量
//品牌型号,String, 尺寸,价格,double 库存int
String macBrand = "MacBookAir";
double macSize = 13.3;
double macPrice = 6988.88;
int macCount = 5;
String thinkBrand = "ThinkPadT450";
double thinkSize = 14;
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);
}
}
输出结果: