• 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:类名
               */
          }
          
          
    每个人都是在努力的路上,别因为别人的误解而放弃,,术业有专攻,如是而已。
  • 相关阅读:
    流行-Manifold学习理解与应用
    狠心奶奶自断亲情,28年后孙女拒绝相见:人有没有不原谅的权利?
    学术论文常用词汇总结(待更新)
    机动车驾驶(2)--- 老司机经验
    关于MySQL数据导出导入
    php5.6-lumen与php5.6-phalcon性能对比
    win7(64bit)+python3.5+pyinstaller3.2安装和测试
    WARNING: Can not get binary dependencies for file...
    一些不错的计算机书籍
    PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载
  • 原文地址:https://www.cnblogs.com/16699qq/p/12544465.html
Copyright © 2020-2023  润新知