黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符

时间:2022-06-07 00:39:47

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

1:常量
 (1)在程序执行的过程中,其值不发生改变的量
 (2)分类:
  A:字面值常量
  B:自定义常量(后面讲)
 (3)字面值常量
  A:字符串常量 "hello"
  B:整数常量 12,23
  C:小数常量 12.345
  D:字符常量 'a','A','0'
  E:布尔常量 true,false
  F:空常量 null(后面讲)
 (4)在Java中针对整数常量提供了四种表现形式
  A:二进制 由0,1组成。以0b开头。
  B:八进制 由0,1,...7组成。以0开头。
  C:十进制 由0,1,...9组成。整数默认是十进制。
  D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

2:进制转换
 (1)其他进制到十进制
  系数:就是每一个位上的数值
  基数:x进制的基数就是x
  权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
  
  结果:系数*基数^权次幂之和。
 (2)十进制到其他进制
  除基取余,直到商为0,余数反转。
 (3)进制转换的快速转换法
  A:十进制和二进制间的转换
   8421码。
  B:二进制到八进制,十六进制的转换

3:变量
 (1)在程序的执行过程中,其值在某个范围内可以发生改变的量
 (2)变量的定义格式:
  A:数据类型 变量名 = 初始化值;
  B:数据类型 变量名;
    变量名 = 初始化值;

4: 数据类型:

Java是一种强类型语言,针对每种数据都提供了对应的数据类型。

    1):基本数据类型:byte、short、int、long、float、double、char、boolean

    2):引用数据类型: 数组、类、接口。

级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double

自动类型转换:从低级别到高级别,系统自动转的;

强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;


 (3)基本数据类型
  A:整数   占用字节数
   byte   1
   short   2
   int    4
   long   8
  B:浮点数
   float   4
   double   8
  C:字符
   char   2
  D:布尔
   boolean   1
   
  注意:
   整数默认是int类型,浮点数默认是double。
   
   长整数要加L或者l。
   单精度的浮点数要加F或者f。

5:数据类型转换
 (1)boolean类型不参与转换
 (2)默认转换
  A:从小到大
  B:byte,short,char -- int -- long -- float -- double
  C:byte,short,char之间不相互转换,直接转成int类型参与运算。
 (3)强制转换
  A:从大到小
  B:可能会有精度的损失,一般不建议这样使用。
  C:格式:
   目标数据类型 变量名 = (目标数据类型) (被转换的数据);
 (4)思考题和面试题:
  A:下面两种方式有区别吗?
   float f1 = 12.345f;
   float f2 = (float)12.345;
  B:下面的程序有问题吗,如果有,在哪里呢?
   byte b1 = 3;
   byte b2 = 4;
   byte b3 = b1 + b2;
   byte b4 = 3 + 4;
  C:下面的操作结果是什么呢?
   byte b = (byte)130;
  D:字符参与运算
   是查找ASCII里面的值
   'a'  97
   'A'  65
   '0'  48
   
   System.out.println('a');
   System.out.println('a' + 1);
  E:字符串参与运算
   这里其实是字符串的连接
   
   System.out.println("hello"+'a'+1);
   System.out.println('a'+1+"hello");
   System.out.println("5+5="+5+5);
   System.out.println(5+5+"=5+5");

6:(1)算术运算符+,-,*,/,%,++,--

  • A:%

    • 当左边的绝对值小于右边:结果是左边
    • 当左边的绝对值等于右边或者是右边倍数的时候:结果是0
    • 当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
    • 取余的正负号取决于左边,右边忽略不记
    • 用途:任意正整数%2 结果是要么0,要么1。用于切换条件
  • B:++,--

    • 递增,递减运算符。就是加1或者减1
    • 单独存在,放在操作数的前面或者后面,结果一样
    • 参与运算时:
      • 放在变量的前面,先自身加或者减1,然后再参与运算
      • 放在变量的后面,先参与运算,然后再自身加或者减1
  • C:+

    • 作为数据的符号(正号)
    • 做加法运算
    • 字符串连接符"5 + 5 =" + (5 + 5);
    • 黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符

(2)赋值运算符
  A:=,+=,-=,*=,/=,%=等
  B:=叫做赋值运算符,也是最基本的赋值运算符
   int x = 10; 把10赋值给int类型的变量x。
  C:扩展的赋值运算符的特点
   隐含了自动强制转换。
   
   面试题:
    short s = 1;
    s = s + 1;
    
    short s = 1;
    s += 1;
    请问上面的代码哪个有问题?
 (3)比较运算符
  A:==,!=,>,>=,<,<=
  B:无论运算符两端简单还是复杂最终结果是boolean类型。
  C:千万不要把==写成了=

黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
 (4)逻辑运算符
  A:&,|,^,!,&&,||
  B:逻辑运算符用于连接boolean类型的式子
  C:结论
   &:有false则false
   |:有true则true
   ^:相同则false,不同则true。
    情侣关系。
   !:非true则false,非false则true
   
   &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
   ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
 (5)位运算符  A:^的特殊用法
   一个数据针对另一个数据位异或两次,该数不变
  B:面试题
   a:请实现两个变量的交换
    **采用第三方变量
    **用位异或运算符
     左边a,b,a
     右边a^b
   b:请用最有效率的方式计算出2乘以8的结果
    2<<3
 (6)三元运算符
  A:格式
   比较表达式?表达式1:表达式2;
  B:执行流程:
   首先计算比较表达式的值,看是true还是false。
   如果是true,表达式1就是结果。
   如果是false,表达式2就是结果。
  C:案例:
   a:比较两个数据是否相等
   b:获取两个数据中的最大值
   c:获取三个数据中的最大值

7、转义字符

    概念:通过 \ 来转变后面字母或符号的含义。

    常用转义字符:

        \b:退格  

        \n:换行

        \t:制表符,相当于tab键

        \r:回车

        \\:表示反斜杠

        \':表示单引号

        \":表示双引号