JAVA基础(一)

  1. 注释

    • 注释==笔记

    • 书写注释是一种好的习惯

      • Java中的注释有三种:

        单行注释

        多行注释

        文档注释

        public class HelloWord {
            public static void main(String[] args) {
                //输出一个Helloword!
                System.out.println("HelloWord!");
                    }
        }
                //单行注释:单独注释一行
                //多行注释:可以注解一段文字  /*    注释   */
                /*
                多行注释
                多行注释
                多行注释
                多行注释
                多行注释
                多行注释
                 */
                //文档注释:/**   注释 */
                /**
                 * @authon:忘山川
                 * Time:2020.03.20
                 */
        
                //神注释代码
        
        /**
         *                    _ooOoo_
         *                   o8888888o
         *                   88" . "88
         *                   (| -_- |)
         *                    O = /O
         *                ____/`---'\____
         *              .   ' \| |// `.
         *               / \||| : |||// 
         *             / _||||| -:- |||||- 
         *               | | \ - /// | |
         *             | \_| ''---/'' | |
         *               .-\__ `-` ___/-. /
         *           ___`. .' /--.-- `. . __
         *        ."" '< `.___\_<|>_/___.' >'"".
         *       | | : `- \`.;` _ /`;.`/ - ` : | |
         *           `-. \_ __ /__ _/ .-` / /
         * ======`-.____`-.___\_____/___.-`____.-'======
         *                    `=---='
         *
         * .............................................
         *          佛祖保佑             永无BUG
         */
        
        
        
        /**
         * ━━━━━━神兽出没━━━━━━
         *    ┏┓   ┏┓
         *   ┏┛┻━━━┛┻┓
         *   ┃       ┃
         *   ┃   ━   ┃
         *   ┃ ┳┛ ┗┳ ┃
         *   ┃       ┃
         *   ┃   ┻   ┃
         *   ┃       ┃
         *   ┗━┓   ┏━┛
         *     ┃   ┃  神兽保佑
         *     ┃   ┃  代码无bug  
         *     ┃   ┗━━━┓
         *     ┃       ┣┓
         *     ┃       ┏┛
         *     ┗┓┓┏━┳┓┏┛
         *      ┃┫┫ ┃┫┫
         *      ┗┻┛ ┗┻┛
         * ━━━━━━感觉萌萌哒━━━━━━
         */
        
        
        
  2. 标识符

    关键字:
    abstract 表明类或者成员方法具有抽象属性
    assert 断言,用来进行程序调试
    boolean 基本数据类型之一,布尔类型
    break 提前跳出一个块
    byte 基本数据类型之一,字节类型
    case 用在switch语句之中,表示其中的一个分支
    catch 用在异常处理中,用来捕捉异常
    char 基本数据类型之一,字符类型
    class 声明一个类
    const 保留关键字,没有具体含义
    continue 回到一个块的开始处
    default 默认,例如,用在switch语句中,表明一个默认的分支
    do 用在do-while循环结构中
    double 基本数据类型之一,双精度浮点数类型
    else 用在条件语句中,表明当条件不成立时的分支
    enum 枚举
    extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
    final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
    finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
    float 基本数据类型之一,单精度浮点数类型
    for 一种循环结构的引导词
    goto 保留关键字,没有具体含义
    if 条件语句的引导词
    implements 表明一个类实现了给定的接口
    import 表明要访问指定的类或包
    instanceof 用来测试一个对象是否是指定类型的实例对象
    int 基本数据类型之一,整数类型
    interface 接口
    long 基本数据类型之一,长整数类型
    native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
    new 用来创建新实例对象
    package 包
    private 一种访问控制方式:私用模式
    protected 一种访问控制方式:保护模式
    public 一种访问控制方式:共用模式
    return 从成员方法中返回数据
    short 基本数据类型之一,短整数类型
    static 表明具有静态属性
    strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
    super 表明当前对象的父类型的引用或者父类型的构造方法
    switch 分支语句结构的引导词
    synchronized 表明一段代码需要同步执行
    this 指向当前实例对象的引用
    throw 抛出一个异常
    throws 声明在当前定义的成员方法中所有需要抛出的异常
    transient 声明不用序列化的成员域
    try 尝试一个可能抛出异常的程序块
    void 声明当前成员方法没有返回值
    volatile 表明两个或者多个变量必须同步地发生变化
    while 用在循环结构中

    • Java所有组成部分都需要名字。类名,变量名以及方法名都被称为标识符
    • 所有的标识符都应该以字母,美元符或者下划线开始
    • 首字符之后可以是任意字母数字下划线或者数字的任何字符组合
    • 不能使用关键字命名变量名或者方法名
    • 标识符对大小写敏感
    • 合法标识符:name,age,sex, Age,$123 ,_123
    • 不合法标识符:123,class,#abs
  3. 数据类型

    • 强类型语言(安全性好)

      要求标量的使用严格符合规定,所有变量都要先定义然后才能使用

    • 弱类型语言(速度快)

      要求标量的使用可以不符合规定,所有变量都要先定义然后才能使用

    • Java的数据类型分为两大类:

      • 基本类型:

        • 数值类型:

          • 整数类型:
            1. byte:→ 占1个字节
            2. short:→ 占2字节
            3. int:→ 占4字节
            4. long:→ 占8字节
          • 浮点数类型:
            1. float:→ 占4字节
            2. double:→ 占8字节
          • 字符类型:
            1. char:→ 占2字节
        • 布尔类型:只能为True或者False

          字节:

          位(bit):是计算机内部数据的最小单位,11001100是一个八位二进制数

          字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示

          1B(字节)=8bit(位)

          字符:是指计算机中使用的字母数字和符号

          • 1bit表示1位
          • 1Byte表示一个字节1B(字节)=8bit(位)
          • 1024B=1KB
          • 1024KB=1M
          • 1024M=1G
      • 引用类型:

        • 类:

        • 接口:

        • 数组:

          public class Demo2 {
              public static void main(String[] args) {
                 //整数拓展       进制      二进制0b     十进制     八进制0     十六进制0x
          
                  int i=10;
                  int i1=010;//八进制0       逢8进一
                  int i2=0x10;//十六进制0x    逢16进一  0~9A~F
          
                  System.out.println(i);
                  System.out.println(i1);
                  System.out.println(i2);
                  System.out.println("---------------------");
          
                  //浮点数扩展
                  //Bigdecimal    数学工具类(银行一般不是使用浮点数而是用它)
          
                  //float   有限     离散     舍入误差        大约      接近但不等于
                  //double
          
          
                  //最好完全避免使用浮点数进行比较
                  //最好完全避免使用浮点数进行比较
                  //最好完全避免使用浮点数进行比较
                  //最好完全避免使用浮点数进行比较
                  //最好完全避免使用浮点数进行比较
          
                  float f=0.2f;
                  double d=2/10d;
                  System.out.println(f);
                  System.out.println(d);
                  System.out.println(d==f);
                  System.out.println("---------------------");
                  float f1=222222222222222222f;
                  double d1=f1+1;
                  System.out.println(f1);
                  System.out.println(d1);
                  System.out.println(f1==d1);
                  System.out.println("---------------------");
                  //字符拓展
                  char c1='a';
                  char c2='中';
                  System.out.println(c1);
                  System.out.println((int)c1);//强制类型转换
                  System.out.println(c2);
                  System.out.println((int)c2);//强制类型转换
          
                  //所有的字符的本质还是数字
                  //编码 Unicode表(97=a  65=A) 2字节  0~65536  Excel   2的16次方=65536
                  char c3='u0061';
                  System.out.println(c3);//a
                  System.out.println("---------------------");
          
                  //转义字符
                  //      	  制表符
                  //      
            换行
                  //..............
                  System.out.println("hello	word");
                  System.out.println("hello
          word");
          
                  //布尔值扩展
                  boolean flag=true;
                  //flag==true可以省略为flag
                  if (flag){
                      System.out.println("执行");
                  }else
                  {
                      System.out.println("不执行");
                  }
              }
          }
          
          
        • 类型转换:由于Java是强类型语言,所以要进行有些运算时要进行类型转换。

          低..........................................高
          byte→→short→→char→→int→→long→→float→→double
          
        • 在运算中,不同的类型需要转换为同一类型,然后进行运算

        • 强制类型转化

        • 自动类型转换

          public class Demo3 {
              public static void main(String[] args) {
                  //类型转换
                  int i=128;
                  byte b=(byte)i;//内存溢出  只有127
                  //强制类型转换     (类型)变量名    高→→→→低
                  //自动类型转换      低→→→→高
                  long l=i;//自动类型转换
                  System.out.println(i);
                  System.out.println(b);
                  System.out.println(l);
          
                  /*
                  注意:
                  1.不能把布尔值进行转换
                  2.不能把对象类型,转换为不相干的类型
                  3.再把高容量转换为低容量时,强制转化
                  4.转换时候肯存在内存溢出或者精度问题
                   */
                  System.out.println("======================");
                  //精度溢出
                  System.out.println((int)23.1);
                  System.out.println((int)-45.3f);
          
                  char c='a';
                  System.out.println((int)c);
                  System.out.println((char)98);
              }
          }
          
          
  4. 变量

    • 变量是什么:就是可以变化的量.

    • Java是一种强类型语言,每个变量都必须申明其类型

    • Java变量时程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

      type    varName=[=value][{,varName[=value]}];
      数据类型  变量名  =值;  可以用逗号隔开来声明多个相同数据类型的变量。
      

      注意事项:

      • 每个变量都有类型,类型可以是基本变量,也可以是应用类型。
      • 变量名必须是合法标识符。
      • 变量的声明是一条完整的语句,因此必须以分号结束;
      public class Demo5 {
          public static void main(String[] args) {
              //int a,b,c;
              //int a=1,b=2,c=3;//注重程序的可读性,不建议这种xiefa
              /*
              建议分三行:以下的写法↓
               */
              int a=10;
              int b=20;
              int c=30;
              String name="忘川";
              char num='c';
              double d=0.32;
          }
      }
      
      
    • 作用域:

      • 类变量

      • 实例变量

      • 局部变量

        public class Demo6 {
            //类变量 static
            static  double salary=8000;
            //属性:变量
            //实列变量:从属于对象;如果不自行初始化,这个类型的默认值  0 0.0
            //布尔值:默认false
            //除了基本类型,其余默认都是null
            String name;
            int age;
            //main()方法
            public static void main(String[] args) {
                //局部变量:必须声明和初始值
                int i;
                i=100;
                System.out.println(i);
                //实例变量
                //变量类型   变量名字=new  Demo6();
                Demo6 demo6=new Demo6();
                demo6.name="忘川";
                demo6.age=20;
                System.out.println(demo6.name);
                System.out.println(demo6.age);
                //类变量  static
                System.out.println(salary);
        
            }
        
            //其他方法
            public  void add() {
        
            }
        }
        
        
  5. 常量

    • 常量:初始化后不能改变值,不会变动的值

    • 所谓常量可以理解成一种特殊的变量,他的值在设定后不会发生改变,在程序运行中不允许被改变。

    • 常量名一般使用大写字符

      public class Demo7 {
          //static 是一中修饰符不存在先后顺序
          //final  代表声明的是一个常量
           final static double PI=3.1415926;//值不会发生改变
           static final  double PI2=3.14;
           public static void main(String[] args) {
              //定义语法
              //final   数据类型   常量名=值;
              System.out.println(PI);
              System.out.println(PI2);
          }
      }
      
      • 变量的命名规范
        1. 所有变量,方法名,类名:见名知意(避免使用拼音)
        2. 类成员变量:首字母小写和驼峰式命名原则:monthSalary 除了第一个单词以外,其他单词首字母大写lastName
        3. 局部变量:首字母小写和驼峰式命名
        4. 常量:大写字母和下划线:MAX_VALUE
        5. 类名:首字母大写和驼峰式原则:Man
        6. 方法名:首字母小写和驼峰式原则:run() , runRun()
  6. 运算符

    • 算术运算符:+,-,*,/,%,++,--

    • 赋值运算符:=,+=, -=, *=, /=

    • 关系运算符:>, <, >= ,<=, == ,!= , instanceof

    • 逻辑运算符:&&(与),||(或), !(非)

    • 位运算符:&,|,^, ~, >>,<<, (了解一下,关于 →位)

    • 条件运算符 :?:

      package operator;
      
      public class Demo8 {
      
          public static void main(String[] args) {
              //二元运算符
              //Ctrl +  D :复制当前行,到下一行。
              int a1=10;
              int b1=20;
              int c1=30;
              int d1=40;
      
              System.out.println(a1+b1);
              System.out.println(a1-b1);
              System.out.println(a1*b1);
              System.out.println(a1%b1);
              System.out.println(a1/(double)b1);
              System.out.println("---------------");
              //浮点型计算
              long l1=22222222222222L;
              int l2=23;
              short l3=10;
              byte l4=8;
              System.out.println(l1+l2+l3+l4);//Lon类型
              System.out.println(l2+l3+l4);//int类型
              System.out.println(l3+l4);//short类型
      
      
              System.out.println("---------------");
      
              //逻辑运算符
              //与(and) 或(or) 非(no)
              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));//逻辑非:如果是真,则结果为假。如果是假,则结果为真
      
              System.out.println("----------------");
              //位运算符
              /*
              A=0011 1100
              B=0000 1101
      
              A&B   0000 1100 (两个都为1才为1,否则为0)
              A|B   0011 1101 (两个都为0才为0,否则为1)
              A^B   0011 0001(如果两个位置都相同返回0,否则返回1)
              ~B    1111 0010(相反)
      
              2*8怎么算最快?
              2*2*2
              <<    把数字 *2
              >>    把数字 /2
              0000 0000      0
              0000 0001      1
              0000 0010      2
              0000 0011      3
              0000 0100      4
              0000 1000      8
              0001 0000     16
                */
              System.out.println(2<<3);
              System.out.println("-------------------");
      
              //条件运算符(三元运算符)
              //x ? y:z
              //如果X==true 则结果为y  否则结果为z
              int score=60;
              boolean bool=score>= 60?true:false;
              System.out.println(bool);
      
              System.out.println("-------------------");
              //赋值运算符
              int i=10;
              int i1=20;
              i+=i1;//i=i+i1; 30
              i-=i1;///i=i-i1; 10
              System.out.println(i);
              System.out.println("--------------------");
              //字符串连接符  +  左右两则,有一侧有String 会进行拼接
              System.out.println(i+i1);
              System.out.println(""+i+i1);
              System.out.println(i+i1+"2");
              System.out.println("--------------------");
      
              //关系运算符,返回的结果只有True false 布尔值
              int o=10;
              int o1=20;
              System.out.println(o>o1);
              System.out.println(o<o1);
              System.out.println(o>=o1);
              System.out.println(o<=o1);
              System.out.println(o!=o1);
              System.out.println("--------------------");
      
              //++ 自增  --自减
              int r1=10;
              int r2=r1++;//执行完代码后在自增赋值给  r2
              int r3=10;
              int r4=++r3;//执行完代码前在自增赋值给  r2
      
              System.out.println(r2);
              System.out.println(r1);
              System.out.println(r4);
      
              //幂运算  2^3   2^2^2=8 很多运算会借助一些工具类来运算
              //Math.pow()幂运算
              double pow=Math.pow(3,2);
              System.out.println(pow);
      
              /*
              运算符的优先级:
              算数运算符  >  关系运算符  > 逻辑运算符  >  条件运算符 > 赋值运算符
               */
      
          }
      }
      
      
  7. 包机制

    package com.运算符.operator;
    
    public class Demo2 {
        //包机制
        //包的本质就是文件夹
        //一般利用公司域名倒置作为包名
        //com.xxxx.www
    
       /*
       定义包:
            语法: Package  pkg1[.pkg2[.pkg3]];
       导包:
            语法:import  package[.package2....].(classname|*);
            导入所有包:例如:import com.*;
        */
    }
    
    
  8. JavaDoc

    • javadoc命令是用来生成自己的API文档

    • 参数信息

      • @author:作者

      • @version:版本号

      • @since:指明需要最早使用的jdk的版本

      • @param:参数ming

      • @return: 返回值情况

      • @throws:异常抛出情况

        package com.运算符.operator;
        
        //文档注释
        
        /**
         * 参数信息
         *
         * - @author:作者
         * - @version:版本号
         * - @since:指明需要最早使用的jdk的版本
         * - @param:参数ming
         * - @return: 返回值情况
         * - @throws:异常抛出情况
         */
        public class Demo3 {
            String name;
        
            /**
             *
             * @param name
             * @return
             * @throws Exception
             */
        
            public  String test(String name) throws Exception{
                return name;
            }
            //利用cmd 生成javadoc文档的方法:
            /*
            javadoc -encoding UTF-8 -charset UTF-8 HelloWord.java
            -encoding UTF-8 -charset UTF-8 :编码格式
            HelloWord.java:类名
             */
        }
        
        
每个人都是在努力的路上,别因为别人的误解而放弃,,术业有专攻,如是而已。
原文地址:https://www.cnblogs.com/16699qq/p/12544465.html