JavaSE基础知识(2)—变量和运算符

时间:2022-04-01 20:59:38

一、变量

1、理解

概念:内存中的一块数据存储空间

2、变量的三要素

数据类型
变量名
变量值

3、变量的语法和使用步骤★

步骤1:声明变量(计算机开辟一块空间)
  数据类型 变量名;
步骤2:为变量赋值(初始化)
  变量名 = 值;
步骤3:使用变量(打印、运算、比较等)
  System.out.println(变量名);

注意:
  ①前两步可以合二为一:数据类型 变量名 = 值;
  ②可以同时声明多个变量,但要求变量的类型一致
    语法:数据类型 变量名,变量名,变量名;
    示例:int a=1,b,c=1;

4、变量的使用特点

①同一个作用域,变量不可以重名
  作用域:变量的作用范围(根据变量的定义位置来确定变量的作用域)
    public static void main(String[] args){
      int a;
      String a;
    }

②变量必须先声明、赋值最后再使用
③变量的值可以更新,但必须在同一个类型范围内
④变量具备内存的“易失性”的特点

5、标识符

1、理解

  凡是可以自己起名的地方,都称为标识符。如变量,方法,类,包,接口等

2、标识符的命名规则

  1)由26个英文字母大小写,0-9 ,_或 $ 组成,数字不可以开头

  2)不可以使用关键字和保留字,但能包含关键字和保留字

  3)Java中严格区分大小写,长度无限制

  4)标识符不能包含空格

3、标识符的命名规范

  遵循“见名知义”原则

  1)包名:多单词组成时所有字母都小写:xxxyyyzzz

  2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz

  3)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz

  4)常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

二、数据类型

1、常见的数据类型

int:用于保存整型的
double:用于保存浮点型的
char:用于保存单个字符,要求字符值必须用单引号引起来
String:用于保存字符串,要求字符串值必须用双引号引起来

2、数据类型的分类 ★

JavaSE基础知识(2)—变量和运算符

3、基本数据类型详细介绍

(1)整型

  名称 所占字节空间 数值范围
byte 字节整型 1个字节 -27~27-1
short 短整型 2个字节 -215~215-1
int 整型 4个字节 -231~231-1
long 长整型 8个字节 -263~263-1

特点:

1、编译器默认的整型为int
2、long类型的标记为l或L
3、每个整型保存的数值不能超过所表示的范围,否则 会报错误!

(2)浮点型

  名称 所占字节空间
float 单精度浮点型 4个字节
double 双精度浮点型 8个字节

特点:

1、浮点型的存储和整型的存储不一样
  浮点型真实的存储,和真正的数值之间有一些差距,所以叫“浮点型”
2、如果想表示更高精度的浮点数,可以使用BigDecimal
  如果想显示指定位数的浮点数,可以使用格式的方法
    double a = 12.3;
    System.out.printf("%.2f",a/3);
3、编译器默认的浮点型为double类型
4、float类型的常量值最好加上 f或F标记
  float f = 3.6;//错误
  float f = 3.6f;

(3)字符型

  名称 所占字节空间 使用的字符编码
char 字符型 2个字节 Unicode

特点:

1.char类型的常量值形式:
  char c = '';//×  char c = ' ';//√  char c = 'c';  char c = '\u00f2';  char c = 100;
2.char类型的变量在进行运算或比较时,类型自动提升成int类型处理

  案例1:
    char c = 'd';
    System.out.println(c+2);//102

  案例2:
    char c = '2';
    char d = 2;
    System.out.println(c==2);//false
    System.out.println(d==2);//true

3.每个char类型的变量存储时,都需要先去对应的码表找到对应的码值,然后存储
      ☆char——>码值——>存储(char类型的底层实际上就是以整型存储的!)
   每个char类型的变量读取时,都需要先将码值根据码值找到对应的字符,然后访问
      ☆码值——>char——>读取

(4)布尔型

  名称 所占字节空间 表示的值
boolean 布尔 1个字节 true|false

特点:
1、用于保存关系的结果,像关系表达式、逻辑表达式的结果就可以使用布尔型存储
2、一般当做条件,用在if结构或循环结构中

4、数据类型之间的转换

(1)基本数据类型之间的转换

除:boolean

1、自动类型转换
  规则:小——>大

  JavaSE基础知识(2)—变量和运算符

  语法:double d = 1;
2、强转类型转换
  规则:大——>小
  语法:int i = (int)1.5;

  特点:
    ①自动提升的原则。表达式的最终结果的类型为 操作数中最大的类型!
    ②强转符号只针对于最近的操作数有效,一般使用小括号提升优先级

(2)String类型和基本类型之间的转换

1、基本类型——>String类型
  规则:直接拼接空字符串即可
  语法:
    char c = '中';
    String s = c+"";

2、String类型——>基本类型
  规则:除char之外,其他的都是通过 包装类型.parseXX的方法
  语法:除char之外:
    String s = "12345";
    int i = Integer.parseInt(s);
  char:
    String s = "asfgh";
    char c = s.charAt(1);//提取单个字符
    char[] ch = s.toCharArray();//将整个字符串转换成字符数组

三、运算符

1、常见运算符

算术运算符
关系运算符
逻辑运算符
赋值运算符
三目运算符

2、运算符详细介绍

(1)算术运算符

1、基本算术运算符

  + - * / %
  注意:/左右两边都是整型,结果取整
2、自增、自减运算符

  ++ --
  特点:
    ①属于一元运算符:i++、--i
    ②可以作为独立的语句或作为表达式使用
      作为独立的语句使用:i++;等价于++i;效果上等价于 i=i+1;
      作为表达式使用:int j = i++; 先赋值后自增,等价于 int temp = i++; i++; j = temp;
        int j = ++i; 先自增后赋值 
    ③自增、自减运算符,底层做了优化,所以效率较高,其次不用手动的类型转换
       int i = 10;
       i*=1.523;//√
       System.out.println(i);//15

(2)关系运算符

> < >= <= == !=

(3)逻辑运算符

  名称 语法 特点
&& / & 条件1&& 条件2 两个条件都成立,结果为true
|| / | 条件1|| 条件2 只要有一个条件成立,结果为true
!条件 如果条件成立,结果为false,否则为true

 

&&和&的区别:

  && 如果第一个条件不成立,则不再执行第二个条件,效率较高
  & 不管第一个条件是否成立,都要执行第二个条件,效率较低

||和|的区别:
  || 如果第一个条件成立,则不再执行第二个条件,效率较高
  | 不管第一个条件是否成立,都要执行第二个条件,效率较低

(4)赋值运算符

1、基本赋值运算符  =
2、复合赋值运算符  += 、-= 、*=

  特点:
    1、运算顺序从右往左
    2、赋值运算符的左边只能是变量,右边可以是变量、常量、表达式、方法调用
    3、复合赋值运算符具备以下特点
      ①i+=3;效果上等价于 i=i+3;但效率比i=i+3;较高
      ②编译器内部做了优化,不用我们手动的类型转换了
      ③复合赋值的变量必须提前进行初始化

(5)三目运算符

条件?操作数1 :操作数2
  特点:
    1、如果条件成立,结果为操作数1,否则为操作数2!
    2、两个操作数的类型要求一致或兼容

3、运算符优先级

()——>!——>++ -->算术运算符——>关系运算符——>逻辑运算符——>三目运算符——>赋值运算符

四、进制与位运算符

1、进制

(1)进制介绍

十进制:0-9 ,满10进1
二进制:0—1,满2进1,以0b或0B开头
八进制:0-7,满8进1,以0开头
十六进制:0-9 A-F,满15进1,以0x或0X开头

(2)进制转换

1、其他进制转换成十进制
  规律:从最低位开始,依次将每个位上的数提取出来,乘以2|8|16的幂(幂从0开始),最后累加即可
2、十进制转换成其他进制
  规律:不断除以2|8|16,将余数倒过来即可
3、二进制转换成八进制或十六进制
  规律:从最低位开始每3位或每4位 ,转换成一位八进制或十六进制数即可,位数不够,前面用0补齐

4、八进制或十六进制转换成二进制
  规律:将每个位上的数,拆分成3位或4位二进制,位数不够,前面用0补齐

2、位运算符

(1)常识

1、计算机底层的 都是以二进制的补码形式进行存储和运算的
2、相关概念
  正数:三码合一
  负数:

  原码:将负数进行 进制转换的结果,其中最高位代表符号位
  反码:最高位不变,其他位按位取反
  补码:反码基础上+1

(2)常见的位运算符

1、<< 左移 :a<< b.将a左移指定的b位数,空缺位补0
2、>> 右移 :a>> b.将a右移指定的b位数,空缺位补符号位
3、>>> 无符号右移:a>>> b.将a右移指定的b位数,空缺位补0
4、& 与:a&b 按位取与,两个都是1,结果为1,否则为0
5、| 或:a|b 按位取或,两个都是0,结果为0,否则为1
6、^异或:a^b 按位异或,两个相同为0,不同为1
7、~取反:~a 按位取反,如果为1,则结果为0,否则结果为1

注意:
都是以补码形式
最高位参与运算!