java笔记寒假02

Posted on 2021-12-28 20:00  超喜欢小小  阅读(261)  评论(0)    收藏  举报

第二天

一、

1、整数拓展

   进制 二进制0b 十进制 八进制0 十六进制0x

 int i = 10;
 int i2 = 010; //八进制0
 int i3 = 0x10; //十六进制0x 0~9 A~F 16
 System.out.println(i);
 System.out.println(i2);
 System.out.println(i3);
 输出结果
 10
 8
 16

2、浮点数拓展

 //银行业务关于钱的怎么表示
 //BigDecimal 数学工具类
 //float 有限 离散 舍入误差 大约 接近但不等于
 //double
 //最好完全避免使用浮点数进行比较
 float f = 0.1f; //0.1
 double d = 1.0/10; //0.1
 System.out.println(f==d)  //flase
 float d1 =23231333131313113f;
 float d2 = d1+1;
 System.out.println(d1==d2);   //ture
 //因为不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。
 //根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值

3、字符拓展

 char c1 = 'A';
 char c2 = '中';
 System.out.println(c1);             A
 System.out.println((int)c1);//强制类型转换   65
 System.out.println(c2);              
 System.out.println((int)c2);//强制类型转换   20013
 //所有的字符本质还是数字
 //编码 Unicode 十六进制 占两个字节 0~65536
 char c3 = '\u0061';
 System.out.println(c3); //a
 转义字符
     \t  制表符
     \n  换行
     等等
   System.out.println("hello\tworld");  // hello world

二 、类型转换

1、java是强类型语言,有些运算要用到类型转换

2、运算中,不同类型的数据先转化为同一类型,然后再运算

 低------------------------------------->高
 byte,short,char->int->long->float->double
 char本质还是数字,所以上面这些都可以进行运算
         int i = 128;
         byte b = (byte)i;//超出byte范围,内存溢出,所以后面输出的数不对
         System.out.println(i);    128
         System.out.println(b);    -128
         //强制转换 (类型)变量名 高->低
         int i = 128;
         double b = i;
         System.out.println(i);  128
         System.out.println(b);  128.0
         //自动转换   低->高
         /* 注意点:
             1、不能对布尔值进行转换
             2、不能把对象类型转换为不相干的类型
             3、转换的时候可能存在内存溢出,或者精度问题,小数点后面的直接舍去
             */
         char c = 'a';
         int d = c+1;
         System.out.println(d);   98
         System.out.println((char)d);    b
         int money = 10_0000_0000;
         int years = 20;
         int total = money*years;//数值太大,计算的时候就已经溢出了 -1474836480
         long total2 = money*years;//默认是int,转换前就存在问题了 -1474836480
         long total3 = money*((long)years);//先把一个数转为long 20000000000

三、变量

1、变量就是可以变化的量 变量可以对内存中的数值进行操作

2、java是一种强类型语言,每个变量都必须声明其类型

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

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

4、每个变量都有类型,类型可以是基本类型,也可以是引用类型(string)

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

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

 //类
 public class WU {
     //类里面还可以定义 属性:变量
 
     //类变量 static 也写在方法外面
     static double salary = 2500;//可以直接输出
 
     //实例变量:从属于对象,如果不自行初始化,会变成这个类型的默认值
     //默认值是0 0.0
     //布尔值:默认是false
     //除了基本类型,其余的默认值都是null
     String name;
     int age;
 
     //main方法,主程序方法
     public static void main(String[] args) {
         //局部变量是在方法里面的;
         //局部变量使用前必须声明和初始化值;
         //局部变量只在自己所在的方法里面有效。
 
         //实例变量的使用
       //变量类型 变量名字 = new WU();
         WU wu = new WU();//new WU();之后按alt+回车
         System.out.println(wu.age);
         System.out.println(wu.name);
    }
 
 
     //其他方法
     public void add(){
 
    }
 }
 

四、常量

1、初始化后不能再改变值,不会变动的值

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

关键词是final 修饰符,不存在先后顺序

 static final double PI =3.14;
 final static double PI = 3.14;
 //两者是一样的

3、常量名一般使用大写字符