java基础(根据狂神总结)

java基础(狂神)

注释

  • 单行

    • //
  • 多行

    • /* */
  • 文档注释(可以加参数)

    • /****

    • /**
          * @Description helloworld
          * @Author cheems
          */
      }
      

数据类型

类型

  • 基本数据类型
    • 数值类
      • 整数(查看最大字节大小,通过对应 的类的源码看)
        • byte 占1个字节
        • short 2
        • int 4
        • long 8 long的数据后面加上L
      • 浮点
        • float 4 double的数据后面加上F
        • double 8
    • 字符
      • char 2
    • 布尔类
      • boolean 1
  • 引用数据类型
    • String 不是关键词,是一个类
    • 数组
    • 接口

补充

  • 字节

    • 位(bit):是计算机内部储存的最小单位
    • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
    • 1B=8bit
    • 1bit表示一位
    • 1024B=1KB
    • 1024KB=1M
    • 10224M=1G
  • 面试题

    • 整数拓展

      • 进制:

        • 二进制 0b开头

        • 十进制

        • 八进制 0

        • 十六进制 0x

          • public class HelloWorld {
                public static void main(String[] args) {
                   int a = 010;
                   int a2 = 0b10;
                   int a3=0x10;
            
                    System.out.println(a);
                    System.out.println(a2);
                    System.out.println(a3);
                }
            }
            
          • 结果

          • 8
            2
            16

      • 浮点数

        • 浮点数是有限的,离散的,会舍入误差,这样的到的就是大约,接近但不等于

        • 因此在银行业务中不能使用浮点数

        • 使用BigDecimal这个类

        • public class HelloWorld {
              public static void main(String[] args) {
                 float f=21356463641F;
                 float f1=f+1;
                  System.out.println(f==f1);
              }
          }
          
          //true  但是实际上并不相等
          
        • float f2=0.1F;
          float f3=1/10;
          System.out.println(f2==f3);
          
          //false   但实际上是相等的
          
      • 字符拓展

        • 所有的字符本质都是数字
        • 本质都是编码集中数字所代表的符号
      • 转义字符

        • \t 制表符
        • \n 换行
      • 字符串

        • String s=new String("hello world");
                 String sd=new String("hello world");
                 System.out.println(s==sd);
           
                 String a="hello world";
                 String a1="hello world";
                 System.out.println(a==a1);
           
          //false 
          //true
          //内存地址不同
          
      • 布尔值

        • boolean flag=true;
                 if(flag){}
                 if(flag==true)
          //这是一样的	
          

类型转换

  • 自动类型转换(容量低的类型转容量高的类型)

    • 自动转换不报错
    • 不同类型的变量在进行运算时会向上转换,有long就转为long,无long就是int,有浮点,就转为最大的浮点
      • 数字不能与字符串进行加运算,而是会将数字变成字符串连接起来
      • 查看类型 ,可以在前面加上(String)(a+x),报错就可以看到
  • 强制类型转换(容量高的类型转容量低的类型,需要强制转换,不然报错)

    • 容量高的类型转容量低的类型,那么就会造成精度丢失,内存溢出等问题

    • 	int a=128;
          byte x=(byte) a;
          System.out.println(a );
          System.out.println(x);       //内存溢出
        
      //128
      //-128
      
      
      				 float f=123.45f;
              float f1=1.1223f;
              System.out.println((int)f);
              System.out.println((int )f1);
      //123
      //1         精度丢失
      
    • 注意:

      • 不能对布尔值进行转换
      • 不能把对象类型转为不相干类型
    • 强制类型转换会存在值的溢出

    • public class HelloWorld {
          public static void main(String[] args) {
             int a=10_0000_0000;
             int year=20;
              System.out.println(a*year);    //-1474836480
      
              long total=a*year;				//在这里a*year是int,已经成了-1474836480,然后转成了long
              System.out.println(total);     //-1474836480
      
              long total1=a*(long)year;      //在乘之前把一个数转成long
              System.out.println(total1);			//20000000000
      
          }
      
      }
      

变量

由类型,变量名,作用域组成

  1. 类型:可以是基本类型也可以是引用类型
  2. 变量名:必须是合法的标识符
  3. 作用域
    1. 局部变量:在方法中变量,使用时必须声明和初始化值
    2. 实例变量:方法外类中,从属于对象,不初始化,就是默认值,布尔是false,int是0,除了基本类型其余都是null
      1. 使用时必须要依靠对象
    3. 类变量:在声明时在前面加static(实例变量的基础上),从属于类,可以在类中直接使用

常量

初始化后不能改变的值

final 常量类型 常量名=初始化的值

变量名一般用大写

  • 命名规范
    • 见名知意
    • 类成员变量:首字母小写和驼峰原则
    • 局部变量:同上
    • 常量:大写字母和下划线
    • 类名:首字母大写和驼峰原则
    • 方法名:首字母小写和驼峰原则

运算符

/ 除法中若两个int相除,得到的还是int,若想要小数的结果,把一个变成浮点

幂运算:Math类

double a=Math.pow(2,3);
    System.out.println(a);
  • 逻辑运算:与&& ,或|| ,非!
    • 短路运算:一边的运算能决定这个运算的值,就不再运算下一边
    • 两边只能是布尔值 ,1/0 不能表示布尔值

位运算

左移>>相当于乘

右移<<相当于除

优先级

​ 使用括号,单目大于双目,

包机制

  • 包的命名方式:一般位域名的颠倒(不会重复)

  • 导包:import 报名

  • 关键词:

    • public 导入都可以访问
    • default/没写 只有那个包里面的可以访问
    • private 只有当前类可以访问
    • protect 除了包可以,还有外部如果有子类继承他,也可以访问

javaDoc

  • 文档注释

  • 使用命令行生成帮助文档: 在xxx.java的文件目录下开启cmd,进行javadoc -encoding UTF-8 -charset UTF-8 java文件名.java ,就会得到一堆html,有个index就是帮助文档了,文档注释中的参数就会在帮助文档中变成说明

  • 使用idea生成帮助文档:最上方菜单栏选择工具中的生成javadoc,选择生成范围,生成地址,输入参数确定。

posted @ 2023-08-29 16:13  西门黑牛  阅读(18)  评论(0编辑  收藏  举报