Java2021-10-12课堂笔记

目录

布尔类型变量

字符串类型变量

转义字符

变量的作用域

变量的命名规则

常量

数据类型转换

运算符

关系运算符

逻辑运算符

位运算符

移位运算

条件运算符

表达式优先级


布尔类型变量

基本语法:

boolean 变量名 = 初始值;

代码:

boolean a = true;
System.out.println(a);

注意事项:

  • boolean类型的变量只有两种取值,true表示真,false表示假。没有c语言里1和0来表示真假的用法。
  • Java的boolean类型和其他类型不能相互转换,例如用boolean类型的数据与int类型进行运算就会报错。
  • boolean类型有写jvm的实现时占1个字节,有的是占1个比特位没有明确的规定。

字符串类型变量

基本语法格式:

String 变量名 = "初始值";

代码:

String n = "dhasu";
System.out.println(n);

 注意事项:

  • String是一个引用类型不是基本类型
  • 字符串中的一些特定的不太方便直接表示的字符串需要进行转义
  • Java使用双引号+若干字符的方式表示字符串字面值
  • +号可以用来拼接字符串例如:
System.out.println("hello"+"world");//拼接
System.out.println("hello"+10+20);//结果是hello1020,因为是从左向右读取的首先是hello和10拼接所以变成了字符串hello10,然后再和20拼接所以结果是hello1020
System.out.println(10+20+"hello");//结果是30hello

转义字符

\n:换行

\t:水平制表符

\':单引号

\":双引号

\\:反斜杠

变量的作用域

变量分为成员变量局部变量,成员变量又分为普通成员变量静态成员变量

什么是变量的作用域?

变量的作用域就是变量的作用范围,找变量作用域的时候,就去找变量定义的花括号就可以了。

例子:

class Test{
    public static void main(String[] args){
        {
            a = 99;
            System.out.println(a);//编译成功
        }
        System.out.println(a);//编译失败,找不到变量a
    }
}

在Java当中没有所谓的全局变量这样的概念。

变量的命名规则

硬性指标:

  1. 一个变量名只能包含数字,字母,下划线,美元符号。
  2. 数字不能开头。
  3. 变量名是大小写敏感的,例如num和Num是两个不同的变量。

软性指标:

  1. 变量命名要具有描述性,见名知意。
  2. 变量名尽量不要使用拼音。
  3. 变量名的词性推荐使用名词。
  4. 变量名推荐小驼峰命名法,当一个变量由多个单词组成时,除了当一个单词外,其他单词的首字母都要大写。

常量

常量包含:

  1. 字面值常量
  2. final修饰的变量(c语言里是const)

例子:

1.字面值常量

10          //int字面值常量(十进制)

0x10       //int字面值常量(八进制)

0x10        //int字面值常量(16进制)

10L          //long字面值常量

true           //boolean字面值常量

其他类型就不一一举例了 

2.final关键字修饰的常量

final int a = 10;

a = 20;       //编译出错,无法为最终变量a分配值

常量不能再程序运行过程中发生修改

常量和变量的区别

  • 变量:程序运行的时候,可以改变的量,在程序运行的时候,才知道里面的值是多少
  • 常量:在程序运行的过程当中,不可以修改,在程序编译的时候,就已经确定其值是什么了

数据类型转换

总结:

  1. 不同数字类型(比如整型,浮点型)的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型。
  2. 如果把范围大的类型赋值给范围小的,要进行强制类型转换,所以可能会发生精度丢失。互不相干的两个类型不能进行强制转换。
  3. 将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查。
  4. 毫不相干的两种数据类型不能相互进行转换

例子:

int a =10;

double = 1.0

a = b;            //报错,可能会损失精度

b = a;           //编译通过,int的范围小于double

不同类型

int a = 10;

boolean b = true;

b = a;       //编译出错,两种类型不兼容

a = b;        //编译出错,两种类型不兼容

强制类型转换

int a = 0;

double b = 10.5;

a = (int)b;       //double可以强制类型转换成int,但是结果出现了精度损失,10.5变成了10

int a = 10;

boolean b =true;

b = (boolean)a;      //编译出错,类型不兼容

数值提升

  1. 当int和long混合运算的时候,int会提升成long,得到的结果还是long类型,需要用long类型的变量接收结果,如果非要用int来接收就需要强制类型转换。
  2. 由于计算机的CPU通常是按照四个字节为单位从内存中读写数据,为了硬件上实现方便,如byte和short这种低于四个字节的类型,会先提升成int,再参与计算。
  3. 不同类型的数据混合运算,范围小的会先提升成范围大的。

int和String之间的相互转换

int num = 10'

String ret = String.valueOf(num);  //使用方法转换

String ret2 = num+"";         //通过字符串拼接转换成字符串

String str = "123";

int ret = Integer.valueOf(str);    //将String类型的str转换为int,把基本数据类型变成包装类,使用类中的方法来改变数据类型

运算符

  • 基本的四则运算:+  -  *   /  %
  • 增量赋值运算符:+=  -=  *=  /=  %=
  • 自增自减运算符: ++  --

注意事项:

  • int / int结果还是int,如果想要小数得使用浮点型来计算
  • 0不能作为除数,除0会抛出异常(错误)
  • %表示取余,或者叫求模,不仅可以对int类型求模也能对小数求模

关系运算符

主要有六个:==  !=  <>  <=  >=

注意事项:关系运算符的表达式返回值都是boolean类型,要么是true,要么是false,一般是用在if语句。

例子

int a = 10;
int b = 20;
System.out.println(a == b);  //false
System.out.println(a != b);  //true
System.out.println(a < b);   //true
System.out.println(a > b);   //false
System.out.println(a <= b);  //true
System.out.println(a >= b);  //false

逻辑运算符

主要有三个:&& ||  !

注意事项:

  • 逻辑运算符的表达式,操作数和返回值都是boolean

逻辑与 &&:

两个表达式都为true,结果就为true,否则为false

逻辑或 ||:

两个表达式都为false,结果就为false,否则为true

逻辑非 !:

表达式为true,结果为false,表达式为false,结果为true

短路:

  • 对于&&,如果左侧表达式的值为false,则表达式整体的值一定为false,此时就不会计算右侧的表达式直接返回结果false
  • 对于||,如果左侧的表达式的值为true,则表达式的值一定为true,此时就不会计算右侧表达式直接返回结果true

位运算符

Java中对数据的操作的最小单位不是字节,二十二进制位

位运算符主要有四个:&  |    ~  ^   

  • 按位与 &:如果两个二进制位都是1,则结果为1,否则结果为0
  • 按位或 |:如果两个二进制位都是0,则结果为0,否则结果为1
  • 按位取反 ~:如果该位为0,则结果为1,否则结果为0
  • 按位异或 ^:如果两个数字的二进制位相同,则结果为0,否则结果为1

注意事项:

  • 位操作表示按二进制位运算,计算机中都是使用二进制来表示数据的,也就是说按照二进制的每一位来依次进行运算
  • 当&和|的操作数为整数时,表示按位运算,为boolean时候,表示逻辑运算
  • 在运算时要注意操作数的进制,最好对其进行进制转换

移位运算

移位运算符有三个:<<  >>  >>>

  • 左移  <<:最左侧的二进制位舍弃掉,最右侧空出来的地方补0
  • 右移  >>:最右侧的二进制位舍弃掉,最左侧补符号位(正数的符号位为0,负数为1)
  • 无符号右移  >>>:最右侧的二进制位舍弃掉,最左侧补0

注意事项:

  • 都是按照二进制位来运算
  • 没有无符号左移
  • 由于计算机计算移位效率高于计算乘除,当某个代码刚好乘除2的n次方时可以用来代替运算
  • 移动负数位或者移位位数过大都没有意义
     

条件运算符

只有一个:表达式1?表达式2:表达式3

  • 当表达式1的值为true时,整个表达式的值为表达式2的值
  • 当表达式1的值为false时,整个表达式的值为表达式3的值

注意事项:这里的表达式都是boolean表达式

表达式优先级

不需要记忆谁的优先级高或者优先级低,只需要根据自己的逻辑加上括号就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值