自学Java---基础语法---第二天

变量

变量概述

变量是内存中装在数据的小盒子,只能用它来存数据和取数据。

计算机存储单元

计算机存储设备的最小存储单元是“位(bit)”,又称为“比特位”,计算机最小的存储单元叫“字节(byte)”,字节是由连续的8个位组成。计算机是采用二进制存储数据的。
常用存储单位:
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB

基本类型之4类8种

变量必须有明确的类型,什么类型的变量装载什么类型的数据
整型:byte,short,int,long
浮点型:double,float
字符型:char
布尔型:boolean

常量与类型

Java中默认的整数类型是int,默认的浮点类型是double
尾缀加“F”的,代表float,尾缀加"L"的,代表long,大写,大写,小白开始就没理会,结果做一道题的时候自己把自己弄蒙圈了,题目中有道题小白是这么定义的int =352l,弄了2个多小时,才发现尾缀那个是L,但小白开始一直把它当成1了,自己给自己挖了个坑O(∩_∩)O哈哈~
3.14没有后缀,所以它是double类型;
5.28D为double类型;
1.26F为float类型。

定义变量

定义变量的语法格式:数据类型 变量名 = 数据值;
int a = 100;

使用变量的注意事项

1.变量定义后可以不赋值,使用时再赋值,不赋值不能使用
2.变量使用时有作用域
3.变量不可以重复定义(同一变量名,定义不同的类型是不可以的)

数据类型转换

不同的数据类型可以在一起运算,但要先进行类型转换再运算,数据类型转换遵循原则:
范围小的数据类型值(如byte),可以直接转换为范围打的数据类型值(如int)
范围打的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)
数据类型从小打大排序:byte -> short -> int -> long -> float -> double

自动类型转换
//表示范围小的数据类型转换成范围大的数据类型 
int i = 100;
double d = i;
强制类型转换
//表示范围大的数据类型转换成范围小的数据类型
double d = 3.14;
int i = (int)d;

运算符

算术运算符

运算符是用来计算数据的符号,数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数

运算符运算规则范例结果
+正号+33
+2+35
+连接字符串“中”+“国”“中国”
-负号int a=3;-a-3
-3-12
*2*36
/5/22
%取模5/21
++自增int a=1;a++/++a2
自减int b=3;a–/--a2

注意事项
1.加法熨衣服在链接字符串时要注意,只有直接与字符串相加才会转成字符串
2.除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除
3.“%”为整除取余符号,小数取余没有意义。结果符号与被取余的符号相同
4.整数做被除数,0不能做除数,否则报错

算术运算符++、–的使用

++运算符,会在原有值的基础上自增1

  • -运算符,会在原有值的基础上自减1
//++和--运算符,如果是在后边,则是先运算,后自增,如果是在前边,则是先自增,后运算
//强调一下,++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作

int a =3,b=3;
System.out.println(a++);//此时a的值是3,先运算,后自增
System.out.println(a++);//此时a的值是上边a自增后的结果,所以是4

int i = 3;
System.out.println(++i);//此时i的值是4,先自增,后运算

赋值运算

运算符运算规则范例结果
=赋值int a=22
+=加后赋值int a=2,a+=24
-=减后赋值int a=2,a-=20
*=乘后赋值int a=2,a*=24
/=整除后赋值int a=2,a/=21
%=取模后赋值int a=2,a%=20

注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

/*
 * 赋值运算符
 * +=, -=, *=, /=, %= :
 * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
 * 注意:赋值运算符左边必须是变量
 */
public class OperatorDemo2 {
    public static void main(String[] args) {
        byte x = 10;
        x += 20;// 相当于 x = (byte)(x+20);
        System.out.println(x);//运行结果是30
    }

比较运算符

运算符运算规则范例结果
==相等于4==3False
!=不等于4!=3True
<小于4<3False
>大于4>3True
<=小于等于4<=3False
>=大于等于4>=3True

这里需要注意一下:
赋值运算符的 = 符号与比较运算符的 == 符号是有区别的,如下:
赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;
比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的。

逻辑运算符

l 逻辑运算符通常连接两个其他表达式计算后的布尔值结果
l 当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断。

boolean b = 100>10;
boolean b2 = false;
System.out.println(b&&b2); // 打印结果为 false
System.out.println(b||b2); //打印结果为 true
System.out.println(!b2); //打印结果为 true
System.out.println(b && 100>10); //打印结果为 true,

运算符的规律:
l 短路与&&:参与运算的两边数据,有false,则运算结果为false;
l 短路或||:参与运算的两边数据,有true,则运算结果为true;
l 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

三元运算符

格式: (条件表达式)?表达式1:表达式2;
表达式:通俗的说,即通过使用运算符将操作数联系起来的式子,例如:
3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式。
3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。
其他表达式,不再一一举例。
三元运算符运算规则:
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。

方式一:
        System.out.println( 3>2 ? “正确” : “错误” );
// 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印

        方式二:
        int a = 3;
        int b = 4;
        String result = (a==b) ? “相等” : “不相等”;
//三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result

        方式三:
        int n = (3>2 && 4>6) ? 100 : 200;
        //三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n
        

商场库存清单案例

public class Test {
    public static void main(String[] args) {
        d1();
    }
    public static void d1(){
        System.out.println("---------------商品库存清单---------------");
        System.out.println("品牌" + "\t"+"尺寸" + "\t"+"价格" + "\t"+"库存");

        String macBrand = "苹果";
        double macSize = 16.6;
        double macPrice =1888.66;
        int macCount = 44;

        String huaweiBrand = "苹果";
        double huaweiSize = 18.6;
        double huaweiPrice =3888.88;
        int huaweiCount = 16;

        System.out.println(macBrand+ "\t"+macSize+ "\t"+macPrice+ "\t"+macCount);
        System.out.println(huaweiBrand+ "\t"+huaweiSize+ "\t"+huaweiPrice+ "\t"+huaweiCount);

        int totalCount = huaweiCount+macCount;
        double totalPrice = huaweiPrice*huaweiCount+macCount*macPrice;

        System.out.println("-----------------------------------------");
        System.out.println("库存宗苏: " +totalCount);
        System.out.println("库存商品总金额: " +totalPrice);

    }
}

运行结果:

在这里插入图片描述

作业

1.什么是变量?变量的定义格式?要使用变量需要注意什么?
变量是内从中装载数据的小盒子,只能用它来存储数据,通俗讲就是可变的量
定义变量的格式:数据类型 变量名称 = 数据值
变量必须有明确的数据类型,什么类型的变量装载什么类型的数据 同一范围内不能重复 不赋值不能使用

2.Java中的数据类型分几类?基本数据类型有哪些?
分两类:
基本数据类型:byte,short,char,int,long,float,double,boolean
引用数据类型:类,接口,枚举,数组

3.数据类型转换:
隐式转换:由低级专向高级(自动转换)
强制转换:由高级专向低级(强制转换)

面试题
	第一题:
	byte b1=3,b2=4,b;
	b=b1+b2;//错误 因为他们最终是要转向int类型 而int类型的值不能赋值给byte
	b=3+4;//正确 因为他们都是常量 具有常量类型优化机制 可以直接识别为byte
	第二题:
	byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?
	有问题 因为这个数超出了byte的取值范围 要用byte类型进行强制转换 结果是-126

	第三题:
	byte b = 10;
	b++;
	b = b + 1;//失败 因为在和一个int类型的常量进行相加的时候b自动转换成int类型 而一个int类型的数据是没办法直接赋值给byte类型的变量的
	哪句是编译失败的呢?为什么呢?

4.常见的算术运算符有哪些?
答:+ - * / %
(1)+运算符的作用有哪些?
可以作为数学运算符 也可用作字符串拼接符
(2)除法和取余的区别?
除法是数学运算机型相初操作 取余数运算符是对除法操作之后取其余数进行操作的
(3)++和–的使用规则?
分别为自增 自减 在放在 变量前面就是先进行运算放在后面就是后进行运算

5.常见的赋值运算符有哪些?
答:= += -= *= /= %=
(1)+=运算的作用是什么?
a += b;== a = a + b;
(2)扩展的赋值运算符有什么特点?
会进行自动强制数据类型转换
6. short s = 1; s = s + 1;有没有问题?如果有怎么解决?
有问题 因为short类型的专用字节数比int小 但是1是int类型 在表达式进行运算的时候就吧其值提升为int类型了 而int类型不能直接赋值给short类型的变量可以同过强制数据类型转换来解决
short s = 1; s += 1;有没有问题?如果有怎么解决?
没有问题 因为使用的是扩展赋值运算符 这样的话就会实现自动强制数据类型转换
7.分析以下需求,并用代码实现:
(1)已知一个三位数,请分别获取该三位数上每一位的数值
以下是课堂给的答案
public static void main(String[] args) {
@SuppressWarnings(“resource”)//这个注释百度了半天没弄明白到底啥意思
//下边的代码通过百度到是看明白了
char chs[] = String.valueOf(new Scanner(System.in).nextInt()).toCharArray();
System.out.println(“个位是:”+chs[2]+"\n十位是:"+chs[1]+"\n百位是:"+chs[0]);
}

//这是我自己的做法
	System.out.println("个位是:" + (678 % 10) + "\n十位是:" + (678 / 10 % 10) 
	+ "\n百位是:" +(678 / 100));

8.看程序说结果,请不要提前运行?

	public class Test1 {
		public static void main(String[] args) {
			 int x = 4;
			 int y = (--x)+(x--)+(x*10);	 
			 /*
			 (--x)由于--在前边,所以先自减再运算,此时X值为3+(x--)这里的--在后边,
			 所以先用此时X的值3做运算,运算完成后自减,到后边X*10的时候,X的值已经
			 是2了+(x*10)
			 */
			 System.out.println("x = " + x + ",y = " + y);
		}
	}

x = 2
y = 26
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值