Day01

JAVA DAY01

创建空项目

  1. File-New-Project-Empty Project

  2. File-Project Structure-Project-选择java版本,level选择8

 

三种注释

 //两个斜杠就是单行注释
 
 /**
 *以"/**"开头,以"*/"结尾就是文档注释,中间每一行都要加上一个*
 */
 
 /*
 以"/*"开头,以"*/"结尾就是多行注释,中间不必加上*
 */

 

数据类型注意事项

  1. long类型要在数字后面加一个L,或者在前面加上(Long)

  2. float后面要加一个F,或者在前面加上(Float)

  3. long可以不必加,但float必须加因为java默认声明小数是double类型的

  4. 字符char用单引号定义

     

JAVA中的数据类型拓展

  1. 二进制0b,八进制0,十进制,十六进制0x

     int a = 10;//十进制
     int b = 0b1010;//二进制
     int c = 012;//八进制
     int d = 0xA;//十六进制
     //最后输出结果全是10
  2. 浮点数float是有限的,如果太大会四舍五入,比如

     float a = 123423421342;
     float b = a+1;
     
     float c = 10.1f;
     double d = 10.1;

    a是等于b的,因为浮点数只取前面6-7位;c不等于d

    所以最好完全避免使用浮点数进行比较!!!

    使用BigDecimal进行比较。

  3. 对char的强致转换

     char c1 = 'a';
     char c2 = '中';
     System.out.println(c1);
     System.out.println((int)c1);
     System.out.println(c2);
     System.out.println((int)c2);
     /*输出结果分别为
     a
     97
     
     20013
     */

    所有的字符本质都是数字

    使用char输出Unicode编码时,前面加\u进行Unicode的转译

  4. 转化后的内存溢出

     int i = 128;
     byte b = (byte)i;

    输出结果,b的值为-128,因为byte区间为-128-127,至于为什么是128变成了-128:

    首先了解

    1. 计算机中的数字以补码存储

    2.  

    类型正数负数
    原码 将数字转换为二进制,即得到源码 符号位改为1
    反码 反码与源码相同 除符号位全部取反
    补码 补码与反码相同 反码+1

    比如-1的原码、反码、补码分别为:1000 0001,1111 1110,1111 1111

    128,二进制(原码)为0000 0000 0000 0000 0000 0000 1000 0000(32位),(补码)为0000 0000 0000 0000 0000 0000 1000 0000,byte只取最后8位,1000 0000(补码),原码为1000 0000,为-128,至于为什么不是-0,可通过-128=-127-1推导出来

    再比如-129转为byte为127,-129原码1000 0000 0000 0000 0000 0000 1000 0001,补码1111 1111 1111 1111 1111 1111 0111 1110,取最后8位0111 1110(补码),原码为0111 1110就是127

    再再比如129转为byte为-127,129原码0000 0000 0000 0000 0000 0000 1000 0001,补码相同,取最后8位1000 0001(补码),原码为1111 1111为-127

  5. 数字可以用下划线分割,_不会被输出

  6. 强制转化的顺序

     int money = 10_0000_0000;
     int years = 20;
     int total = money*year;//这里数据会溢出
     long total2 = money*years;//虽然long类型数据就不会溢出了,但是money*year先计算结果为int类型,再将其转成了long类型

    以上在转换类型前已经存在问题,修正:

     long total3 = money*((long)years);//直接提升整个表达式的精度
  7. 实例变量:从属于对象,如果不初始化,则输出默认值0或0.0,布尔值默认是false,除了基本类型,默认值都是null

     public class Deemo{
         int age;
         String name;
     public static void main(String []args){
         Deemo abc = new Deemo();
         System.out.println(abc.age);输出0
         System.out.println(abc.name);//输出null
      }
     }
  8. 类变量static

     public class Deemo{
         static int age;
     public static void main(String []args){
          System.out.println(age);//输出0
     }
     }
  9. 变量的命名规范

    1. 类变量:首字母小写和驼峰原则:monthSalary

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

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

    4. 类名:首字母大写和驼峰原则:GoHan

 

基本运算符

  1. long、int、short、byte不同数据类型进行运算,有一个数为long就全部为long,没有long但有int就为int,然后时short。有一个为double就全部为double

  2. ++ --表示自增、自减

     int a = 3;
     int b = a++;
     System.out.println(a);//输出结果为4
     int c = ++a;
     System.out.println(a);//输出结果为5
     System.out.println(b);//输出结果为3
     System.out.println(c);//输出结果为5
    1. 第一个a输出为4,是因为b=a++表示,b=a然后a=a+1;第二个a输出为5,是因为c=++a表示,a=a+1然后c=a

  1. java中的幂运算,用Math工具,Math.pow(3,2)表示3的2次方

posted @ 2021-04-11 14:46  蜂皇浆兵  阅读(63)  评论(0)    收藏  举报