Java教程

第二天学习内容

本文主要是介绍第二天学习内容,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、数据类型拓展

1 整数拓展:

   二进制0b

   八进制0

   十六进制0x

2 浮点数拓展:

   float:有限    离散    有舍入误差    大约    接近但不等于

   最好完全使用浮点数进行比较

   银行业务用BigDecimal

3 字符拓展:

   所有的字符本质还是数字。使用强制转换转换为数字:

   char  c1="A";

   System.out.println((int)c1);

   Unicode编码表(65=A)2字节  0 - 6536

4 转义字符:

   \t:制表符

   \n:换行

5 布尔值扩展:  

   boolean flag = true;

   if (flag==true){}

   if (flag){}  √

   Less is More! 代码要精简易读

 

二、类型转换

   int i = 128;

   byte b = (byte) i;  //内存溢出

   由于Java是强类型语言,要进行某些运算的时候要用到类型转换。

   低——————————————————→高

    byte,shot,char → int → long → float → double

   强制转换    (类型)变量名     高 → 低

   自动转换    低 → 高

   运算中,不同类型的数据先转化为同一类型然后进行运算。

   注:1 不能对布尔值进行转换

          2 不能把对象类型转换为不相干的类型

          3 再把高容量转换到低容量的时候,强制转换 

          4 转换的时候存在内存溢出或者精度问题

   JDK7新特性:数字之间可以用下划线分割         

   int a = 10_0000_0000;

   int b = 20;

   int total1 = a*b;//  -1474836430   计算的时候溢出了

   long total2 = a*b;//  默认是int,转换之前已经存在问题了

   long total3 = a*((long)b);//   先把一个数转换为long

 

三、变量:可以变化的量

   Java是一种强类型语言,每个变量都必须声明其类型。

   Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

   数据类型  变量名 = 值;可以使用逗号隔开来声明多个同类型变量。

   注:每个变量都有类型,类型可以是基本类型,也可以是引用类型。

          变量名必须是合法的标识符。

          变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

 

    变量作用域:类变量、实例变量、局部变量

    Public class Variable{

          static int allClicks = 0;          // 类变量:static

          String str = "Hello World";    // 实例变量:从属于对象;如果不进行初始化,输出这个类型的默认值   0   0.0   

          布尔值默认:false

          除了基本类型,其余的默认值都是null

 

          public void method(){

                 int i = 0;                         // 局部变量在{}里面:必须声明和初始化值

           }

      }

 

     变量的命名规范:

     1 所有变量、方法、类名:见名知意

     2 类成员变量:首字母小写和驼峰原则:monthSalary

     3 局部变量:首字母小写和驼峰原则

     4 常量:大写字母和下划线:MAX_VALUE

     5 类名:首字母大写和驼峰原则:Man, GoodMan

     6 方法名:首字母小写和驼峰原则:run(), runRun()

 

四、常量:初始化后不能再改变值。不会变动的值。

     常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变

     final 常量名 = 值;

     final double PI = 3.14;

     常量名一般使用大写字符

 

     static final double PI = 3.14;

     final static double PI = 3.14;  //  修饰符,不存在先后顺序

     Ctrl + D:复制当前行到下一行

     

五、运算符

     多个数据类型操作中有一个数据类型为long/double,结果的数据类型也为long/double。

     没有long/double的时候结果的数据类型都为int

  1 关系运算符返回的结果:ture/false    布尔值

     ++     --    自增   自减    一元运算符

     int b = a++                 //执行这行代码后,先给b赋值,再自增

     //a++     a = a + 1

     int c = ++a                 //执行这行代码前,先自增,再给c赋值

  2 幂运算  2^3   2*2*2=8          很多运算,我们会使用一些工具类来操作

     double pow = Math.pow(2,3);

     System.out.println(pow);

  3 逻辑运算符

     与(and)     或(or)     非(取反)

     短路运算

 

        A =  0011   1100

        B =  0000   1101

————————————————————————————————————————————

     A&B = 0000  1100            与运算:A与B上下位比较,上下都为1则输出1,上下不同则输出0

       A|B = 0011  1101            位运算:A与B上下位比较,上下都为0则输出0,上下不同则输出1

      A^B =  0011  0001           异或运算:A与B上下位比较,上下相同则输出0,上下不同则输出1

        ~B =  1111  0010           取反

 

      << 左移       *2

      >> 右移       /2

      2*8=16    2*2*2*2

      0000  0000     0

      0000  0001     1

      0000  0010     2

      0000  0011     3

      0000  0100     8

      0001  0000    16

      System.out.println(2<<3);

 

      字符串连接符   +

      + 号运算符两侧,只要有一侧出现了String类型,就会把另一侧都转化为String类型,再进行连接

 

      X ? Y : Z        如果X==true,则结果为Y,否则为Z

 

      区分优先级:()

 

学习自:www.kuangstudy.com

这篇关于第二天学习内容的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!