Java基础(向B站狂神说Java学习)

Java 基础

注释
  1. 注释可以方便我们更好的读代码,必要的注释可以提高差错效率

  2. 注释有三种

    //单行注释
    /*
      多行注释
    */
    /**文档注释
      *
      */
    
标识符

类名,方法名以及变量名都可以叫做标识符

命名有规则,不可以乱命名,一些特殊符号如& % 等不可以出现。一般由大小写字母,数字_和$组成可以,但是数字不可以放在开头。

数据类型
基本数据类型
byte    1b 
short   2b
int     4b
long    8b  100L(末尾加L)
char    2b
float   4b  1.0F(末尾加F)
double  8b
boolean 1bit

引用数据类型
类
接口
数组
数据类型扩展
        //=======整数=======
        int a1 = 10;  //十进制
        int a2 = 0b10;//二进制
        int a3 = 010; //八进制
        int a4 = 0x10;//十六进制

        //=======浮点数=======
        float b1 = 0.1f;
        double b2 = 1.0 / 10;
        System.out.println(b1 == b2);//false
        double b3 = 0.1;
        System.out.println(b1 == b3);//false
        double b4 = 123123123;
        double b5 = b4 + 1;
        System.out.println(b4 == b5);//但是有时候会相等
	    //不要完全使用浮点数

        //=======字符=======
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println(c2);

        System.out.println((int)c1);//97
        System.out.println((int)c2);//20013

        char c3 = '\u0061';//代表了a在unicode码的编号
        System.out.println(c3);//a
		
		//=======转义字符=======
		//不全
类型转换

低-------------------------------------------->高

byte,short,char->int->long->float->double

  1. 强制类型转化:高到低

  2. 自动类型转化:低到高

    public class Day2 {
        public static void main(String[] args) {
            int a = 128;
            byte b = (byte)a;//内存溢出
            System.out.println(a);
            System.out.println(b);//byte 有符号类型 -128 -> 127
    
            int c = 123;
            double d = c;//自动类型转化 低到高
            System.out.println(c);
            System.out.println(d);
    
            //=====注意=====
            /*
            1. 低到高自动类型转化,高到低强制类型转化
            2. 转化过程注意内存溢出和精度丢失
            3. 不可以对布尔类型进行转化(boolean)
             */
    
            //扩展
            int e = 10_0000_0000; //可以用下滑线表示,易读jdk7 add
            int g = 20;
            System.out.println(e*g);
            long f = (long)e*g;
            long h = e*g;//自动转化
            System.out.println(f);//20000000000
            System.out.println(h);//-1474836480
            //h:e,g先相乘,但还是int,在转化前就已经溢出了
            //f:e先转化为long,再相乘,得到的是long
        }
    }
    
    变量.常量.作用域
    1. 变量

    //数据类型 数据名 值

    变量要具有可读形,方便阅读

    1. 变量作用域

      根据作用域的不同:

      类变量 实例变量 局部变量

      public class Day3 {
          //常量       修饰符不分前后的,变量前的都叫修饰词(现在我这么认为)
          static final double PI = 3.14;
          //类变量     可以直接用,可以不用初始化,有点像c语言的全局变量,不用像实例一样麻烦
          static double age;
          //实例变量   可以不用初始化,会自己赋初始值:基本变量为0,其他为NULL
          //面向对象   布尔值默认为false
          int name;
          public static void main(String[] args) {
              int a = 1;
              System.out.println(a);
              Day3 day3 = new Day3();//将Day3这样写才可以用里面的值
              System.out.println(day3.name);
              System.out.println(age);
          }
          public void add()//应该是不可以乱取的
          {
             // System.out.println(a);//不可以识别a error
              Day3 day3 = new Day3();
          }
      }
      
      
    2. 命名规则

      所有方法,变量见名知意

      类变量:首字母小写驼峰 monthSalary

      局部变量:首字母小写驼峰 monthSalary

      方法名:首字母小写驼峰 monthSalary

      类名:首字母大写驼峰 MonthSalary

      常量:大写字母加下划线 MAX_VALUE

运算符
package Basic_of_Java;

public class Day4 {
    public static void main(String[] args) {
        //算数运算符
        //Crtl+D 可以是当前所在的行复制到下一行
        int a = 10;
        int b = 20;
        int c = 21;
        System.out.println(a+b);
        System.out.println(a*b);
        System.out.println(a-b);
        System.out.println(a/(double)b);
        System.out.println(c%b);

        //赋值运算符
        System.out.println("----------");
        int a1 = 10;
        int a2 = 20;
        System.out.println(a1);
        a1 = a2;
        System.out.println(a1);

        //关系运算符 返回布尔值boolean
        int b1 = 13;
        int b2 = 14;
        System.out.println("----------");
        System.out.println(b1 > b2);
        System.out.println(b1 < b2);
        System.out.println(b1 >= b2);
        System.out.println(b1 <= b2);
        System.out.println(b1 == b2);
        System.out.println(b1 != b2);
        //还有instance of

        //自动转化 低向高
        byte c1 = 10;
        short c2 = 125;
        int c3 = 1234;
        long c4 = 12345678;
        double c5 = 0.1;
        System.out.println("----------");
        System.out.println(c1+c2+c3);
        System.out.println(c4+c5);//小数+整数->科学计数法表示
        System.out.println(c2+c5);//太长才会
    }
}
package Basic_of_Java;

public class Day5 {
    public static void main(String[] args) {
        //自增++ 自减--
        int a = 2;
        int b = a++;
        //a = a + 1 先赋值再自增
        System.out.println(b);
        System.out.println(a);
        //a = a + 1 先自增再赋值
        int c = ++a;
        System.out.println(c);
        System.out.println(a);

        //Math 运用
        //Math.pow 类型是 double  double -> int 需要强制转化(高到低)
        double d = Math.pow(2,3);
        System.out.println(d);

    }
}

package Basic_of_Java;

public class Day6 {
    public static void main(String[] args) {
        //逻辑与&& 逻辑或|| 逻辑非!
        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 c1 = 2;
        boolean a1 = (c1 < 4) && ((c1++) < 4);
        System.out.println("----------");
        System.out.println(a1);
        System.out.println(c1);//3

        int c2 = 5;
        boolean a2 = (c2 < 4) && ((c2++) < 4);
        System.out.println("----------");
        System.out.println(a1);
        System.out.println(c2);//5

        //总结:当与运算在第一个就遇到false时候不会在在执行&&后面的,叫做短路运算

        //位运算
        /*
        A 0011 0101
        B 1110 0001
        ------------
        A & B 0010 0001
        A | B 1111 0101
        A ^ B 1101 0100 //相同取0 不同取1
          ~B  0001 1110 
        ------------
        >>  *2    <<  /2
        面试题
        2*8 高效运算 运用底层算更快
        2*(2<<2)
         */
    }
}
package Basic_of_Java;

public class Day7 {
    public static void main(String[] args) {
        //字符链接符 +
        int a = 16;
        int b = 14;
        //string在后面,a+b先运算再转化成字符串后拼接
        System.out.println(a+b+"");
        //string在前面,全部转化成字符串后直接拼接:""+16 = "16"+14= "1614"
        System.out.println(""+a+b);

        //条件运算符
        //x?y:z    x是否为true,是返回y,不是返回z
        int core = 50;
        String isPass = (core > 60)? "及格":"不及格";
        System.out.println("----------");
        System.out.println(isPass);
    }
}
包机制

package com.Adomi.www (举例)

一般为公司域名的倒置

import -------- 导入包(类似c语言的头文件)

要导入的包太多,可以使用通配符*

import com.*;
JavaDoc
package com.Adomi.basic;

/**
 * @author Adomi
 * @version 1.0
 * @since 1.8
 */
public class Doc {

    /**
     * @author Adomi
     * @param name
     * @return
     */
    public String test(String name) {
        return name;
    }
}

与注释的区别:可以生成树,html网页

通过命令行 javadoc -encoding UTF-8 -charset UTF-8 Doc.java

javaDoc (参数) java文件名

看开发文档

笔记来源于此视频:狂神说Java

posted @ 2024-04-26 08:15  阿多米学习版  阅读(8)  评论(0编辑  收藏  举报