日拱一卒,功不唐捐
-
变量的概述
什么是变量?
变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。 -
计算机的存储单元:
计算机中储存和运算的最小单位是?
一个字节,也就是一个byte.
常用储存单位
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB -
Java中数据类型四类八种
A: 数据类型四类八种
注意:
整型常量默认是int类型
小数(浮点)默认是double类型
定义float类型的数据后面+“ f ”,否则默认是double
定义长整型数据如果超过int取值范围后面要加 “L ”(例如:100L,添加了“L ”后缀的整数常量都是长整型的) -
变量创建的三要素:
变量使用注意事项:
变量定义后可以不赋值,使用时在赋值,不赋值是不能使用
变量是有自己的作用范围,变量的有效范围是定义的一对大括号内
变量不可以重复定义 -
变量的类型转换(boolean不参与类型转换)
-
自动类型转换:
A.两种数据类型彼此兼容
B.目标类型的取值范围大于源类型的取值范围
public class Demo05 {
/**
* @param 自动类型转换
*/
public static void main(String[] args) {
// 满足条件:1.两种数据彼此兼容,2.目标数据类型的取值范围大于源类型数据类型的取值范围
byte b=2;
int x=b;
System.out.println(x);
}
}
- 强制类型转换:
A.两种类型彼此不兼容
B.目标数据类型的取值小于源类型数据类型取值范围
C.公式: 被转后的数据类型 变量名 =(被转后的数据类型)要转的数据 类型的变量名
public class Demo06 {
/**
* @param 强制类型的转换
*/
public static void main(String[] args) {
//满足条件:1.两种类型彼此不兼容,2.目标数据类型的取值小于源类型数据类型取值范围
//公式: 被转后的数据类型 变量名 =(被转后的数据类型)要转的数据类型的变量名
int a=200;
byte b=(byte) a;
System.out.println(b);
System.out.println(a);
byte c=(byte) 500;
System.out.println(c);
}
}
- 多学一招:表达式类型自动提升:
(如一个byte型的变量在运算期间,类型会自动提升为int型)
public class Demo07 {
/**
* @param 表达式类型自动提升
*/
public static void main(String[] args) {
// 例如:一个byte类型的变量在运算期间自动提升为int类型
byte b1=2;
byte b2=3;
byte b3=(byte) (b1+b2);
System.out.println(b3);
}
}
各种数据类型按照范围从小到大排列:
byte—— short —— int —— long —— double
9. java的运算符
算术运算符的注意要点:
1.在进行自增或自减的运算时,如果运算符在操作数的前面则是:先进行自增或自减运算,再进行其他运算。反之,如果运算符在操作数的后面则是:先进行其他运算,再进行自增或自减运算。
2.进行除法运算,有小数参与时,得到的结果也会是一个小数。
3.在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号
public class Demo08 {
/**
* @param 算术运算符
*/
public static void main(String[] args) {
/*
* 算术运算符的注意要点:
* 1.在进行自增或自减的运算时,如果运算符在操作数的前面则是:先进行自增或自减运算,再进行其他运算。
* 反之,如果运算符在操作数的后面则是:先进行其他运算,再进行自增或自减运算。
*
*/
int a=5;
int b=6;
int x=a+b++;
int y=a+++b;
System.out.println("x="+x);
System.out.println("y="+y);
// 2.进行除法运算,有小数参与时,得到的结果也会是一个小数。
float f=2.5f;
int a1=10;
float q = f/a1;
System.out.println("q="+q);
// 3.在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号
int b1=-5;
int b2=3;
int x1=b1%b2;
System.out.println("x1="+x1);
}
}
赋值运算符:
**注意事项:**在赋值的过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量
多学一招:将一个int类型的值赋给一个short类型的变量,需要进行强制类型转换,但是在使用赋值运算符运算时,强制类型转换会自动完成
public class Demo09 {
public static void main(String[] args) {
//注意事项:在赋值的过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量
int a=2;
int b=3;
int x=a+=b; //a=a+b
System.out.println(a);
System.out.println(b);
System.out.println("x="+x);
//多学一招:将一个int类型的值赋给一个short类型的变量,需要进行强制类型转换
//但是在使用赋值运算符运算时,强制类型转换会自动完成
short s=3;
int i =5;
s+=i;
System.out.println("s="+s);
}
}
比较运算符:
public class Demo10 {
/**
* @param 比较运算符
*/
public static void main(String[] args) {
// 比较运算符,计算结果只有2个可能,true,false
// 结算结果的数据类型, boolean类型
// 比较符号两边的数据
int i = 3;
int j = 4;
System.out.println(i==j);
System.out.println(2==1);
System.out.println(2!=1);
}
}
逻辑运算符:
逻辑运算符,对两个boolean类型数据之间进行计算
结果也是boolean类型
& : 一边是false,运算结果就是false, 见了false,就是false
| : 一边是true,运算结果就是true,见了true,就是true
^ : 两边相同为false,不同为true
! : 取反 !true = false !false=true
&& : 短路与 , 一边是false,另一边不运行
|| : 短路或 , 一边是true,另一边不运行
public class Demo11 {
/**
* @param 逻辑运算符
*/
public static void main(String[] args) {
// 逻辑运算符,对两个boolean类型数据之间进行计算
// 结果也是boolean类型
//
// & : 一边是false,运算结果就是false, 见了false,就是false
// | : 一边是true,运算结果就是true,见了true,就是true
// ^ : 两边相同为false,不同为true
// ! : 取反 !true = false !false=true
// && : 短路与 , 一边是false,另一边不运行
// || : 短路或 , 一边是true,另一边不运行
int a=10;
int b=20;
System.out.println(a>b && ++a>1);
System.out.println("a="+a);
System.out.println("b="+b);
int c=2;
int d=4;
System.out.println(c<d || ++c>1);
System.out.println("c="+c);
System.out.println("d="+d);
}
}
三元运算符:
公式:
布尔表达式 ? 结果1:结果2;
布尔表达式结果是true,三元运算符的结果,就是 结果1
布尔表达式结果是false,三元运算符的结果,就是 结果2
public class Demo12 {
/**
* @param 三元运算符
*/
public static void main(String[] args) {
// 三元运算符
// 公式:
// 布尔表达式 ? 结果1:结果2;
// 布尔表达式结果是true,三元运算符的结果,就是 结果1
// 布尔表达式结果是false,三元运算符的结果,就是 结果2
int a = 5;
int b = 3;
int c = 1;
// T && T
int n2 = (a>b && b>c) ? (c++) : (++c);
System.out.println(c);
System.out.println(n2);
System.out.println(3>5?99:88);
String s = 0==1?"哈哈":"呵呵";
System.out.println(s);
}
}
- 任务案例2-1商城库存清单程序设计
- 效果图:
- 代码如下:
/*
实现商品库存清单案例
步骤:
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);
}
}
13.Day02 知识小结…