Java基础知识笔记

注释

  1. 单行注释 //

  2. 多行注释 /**/

  3. JavaDoc:文档注释, /** */

标识符注意点

数据类型

基本类型(primitive type)

数值类型

整数类型

  1. byte占一个字节范围: -128-127

  2. short占两个字节范围:-32768-32767

  3. int站四个字节范围:-2147483648-2147483647

  4. long占8个字节范围:-9223372036854775808-9223372036854775807

浮点类型

  1. float站四个字节

  2. double占八个字节

字符类型

char 占两个字节

Boolean类型

占一位,其值只有true和false

引用类型(reference type)

  1. 接口

  2. 数组

什么是字节

类型转换

 // 整数拓展:  进制  二进制0b 十进制  八进制0  十六进制0x
        int i = 10;
        int i2 = 010; // 八进制
        int i3 = 0x10; // 十六进制

        // 浮点数拓展? (银行业务怎么表示? 用BigDecimal(数学工具类) )
        // 最好完全避免使用浮点数进行比较
        // 最好完全避免使用浮点数进行比较
        // 最好完全避免使用浮点数进行比较
        float f = 0.1f; // 0.1
        double d =1.0/10; // 0.1

        System.out.println(f==d); // false
        float d1 = 231313f;
        float d2 = d1 + 1;
        System.out.println(d1==d2); // true


        // 字符拓展? 所有的字符本质还是数字  编码 Unicode 2字节 0-65536 Excel 2的16次方 = 65536
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1); // 强制转换

        System.out.println(c2);
        System.out.println((int)c2); // 强制转换

        // U0000 UFFFF
        char c3 = '\u0061';
        System.out.println(c3); // a

        // 转义字符 \t(制表符)可空格    \n可换行
        System.out.println("hello\tworld"); // hello world


        // 对象 从内存分析
        String sa = new String("hello world");
        String sb= new String("hello world");
        System.out.println(sa==sb); // false

        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc==sd);


        // 布尔值拓展
        boolean flag = true;
        if (flag){}

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

        // 强制转换 (类型)变量名  高---低
        // 自动转换 低---高
        /*
        * 注意点:
        * 不能把布尔值进行转换
        * 不能把对象类型转换转换为不相干的类型
        * 在把高容量转换为低容量的时候,强制转换、
        * 转换的时候可能存在内存溢出,或者精度有问题
        * */
        System.out.println(i); // 128
        System.out.println(b); // -128
        System.out.println((int)23.7); // 23
        System.out.println((int)-45.89f); // -45


        // 操作比较大的数的时候,注意溢出问题
        // JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years; // -1474836480,计算机溢出
        System.out.println(total); // 默认是int,转换之前已经存在问题了?

        long  total3 = money*((long)years); // 先把一个数转换为long
        System.out.println(total3); // 20000000000

        // l经常会看成1, 所以使用大写的L

变量

// 类变量 static
    static double salary = 2500;
    // 属性:变量

    // 实例变量:从属对象;(类的里面,方法的外面),这个类型的默认值 0 0.0
    // 布尔值: 默认是false
    // 除了基本类型,其他的默认值都是null
    String name;
    int age;

    // main方法
    public static void main(String[] args) {
        // 局部变量:必须声明和初始化
        int i = 10;
        System.out.println(i);

        // 变量类型 变量名字=new Demo05();
        Demo05 demo05 = new Demo05();
        System.out.println(demo05.name);
        System.out.println(demo05.age);


        // 类变量 static
        System.out.println(salary);
    }

    // 其他方法
    public void add() {

    }

常量

 // static为修饰符,不区分前后
    static  final  double PI = 3.14;
    // final static  double PI = 3.14;
    public static void main(String[] args) {
        System.out.println(PI);
    }

变量的命名规范

基本运算符

   // 二元运算符
        // ctrl + D :复制当前行到下一行
        int a = 10;
        int b = 30;
        int c = 20;
        int d = 16;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);


 long a =1231231131L;
        int b = 123;
        short c = 10;
        byte d = 8 ;
        // 如果一个为null 就都为null ,有一个为double就都为double
        System.out.println(a+b+c+d); // long
        System.out.println(b+c+d); // int
        System.out.println((double)c+d); // int



  // 关系运算符返回的结果:正确 错误 布尔值

        int a = 10;
        int b = 20;
        int c = 21;
        // 取余(模运算)
        System.out.println(c%a); // c/a 21/10 = 2...1
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);



 // ++ --  自增 自减  一元运算符
        int a = 3;
        int b = a++; // 执行完成这行代码后,先给b赋值,再自增
        // a++ a=a+1
        System.out.println(a);
        // ++a a=a+1
        int c = ++a; // 执行完成这行代码后,先自增 ,再给b赋值
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);


         // 幂运算 很多运算,我们会使用一些工具类来操作
        double pow = Math.pow(2,3);
        System.out.println(pow);

逻辑运算符

 // 逻辑运算符
        // 与(and) 或(or) 非(取反)
        boolean a = true;
        boolean b = false;

        System.out.println("a && b:"+(a && b)); // 逻辑与运算,两个变量都为真,结果才为真
        System.out.println("a || b:"+(a || b)); // 逻辑或运算,两个变量有一个为真,结果为真,两个变量为假,则结果为假
        System.out.println("!(a && b):"+!(a && b));  // 逻辑非,变量为真,结果为假,反之,变量为假,结果为真

        // 短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(d); //false
        System.out.println(c); // 5 因为c<4为false,直接返回false ,计算机没有执行c++ < 4

位运算

// 位运算 效率极高
        /*
        * A = 0011 1100
        *
        * B = 0000 1101
        *
        * A&B = 0000 1100 // 如果对应位都为1,则为1,为1和0,则为0
        *
        * A|B =0011 1101 // 如果对应位都为0,则为0,为1和0,则为1
        *
        * A^B =0011 0001 // 如果对应位都为0,则为0,如果对应位都为1,则为0,如果对应位为1和0,则为1
        *
        * ~B = 1111 0010
        *
        *
        * 面试题
        * 怎么运算2*8 ? 2*2*2*2
        *
        * <<左移 *2 System.out.println(2<<3); // 16
        * 0000 0000  0
        * 0000 0001  1
        * 0000 0010  2 // 逢2进1
        * 0000 0011  3
        * 0000 0100  4
        * 0000 1000  8
        * 0001 0000  8
        *
        * 右移 >> /2
        * */
        System.out.println(2<<3); // 16

扩展赋值运算符

// 扩展赋值运算符
        int a = 10 ;
        int b = 20 ;

        a+=b; // a = a+b
        a-=b; // a = a-b
        System.out.println(a);

连接字符串

// 字符串连接符 + , String
        // 面试题 ""+a+b 和 a+b+"" 的区别
        System.out.println(""+a+b); // 1020 只要有字符串且字符串在前,会先转换为String再进行连接
        System.out.println(a+b+""); // 字符串在后面,先进行运算

三元运算符

 // 三元运算符 ? :
        // x ? y : z // 如果x==true,则结果为y, 否则结果为z
        int score = 80;
        String type = score < 60 ? "不及格":"及格啦"; // 必须掌握
        // if
        System.out.println(type);

包机制

JavaDoc(帮助文档)

/**
 * @Package : operator
 * @Author : llq
 * @Date : 2022-11-17 17:02
 * @Desc :
 */
public class Demo09 {
   String name;

    /**
     * 
     * @param name
     * @return
     * @throws Exception
     */
   public String test(String name) throws  Exception{
       return  name;
   }
}

 想要更详细的讲解,可去看狂神说Java的视频Java基础12:JavaDoc生成文档_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值