Day 05(总汇)【图片见前方随笔】

Daly01

Markdown学习

  1. 标题格式,#加空格

  2. 字体,字体两边两边加*

  3. 引用,>加空格,加引用来源

  4. 分割线---

  5. 图片图片

  6. 超链接,点击跳转

  7. 列表

Dos命令

CMD打开方式

  1. 命令指示符

  2. Win加R

  3. shift+鼠标右键,打开命令行窗口

  4. 地址栏前加上CMD

常用的DOS命令

  1. 盘符切换
  2. 查看当前目录下的所有文件 dir
  3. CD 如下图

 

  1. ping命令
  2. 文件操作

md 创建文件夹

rd 移除文件夹

cd>文件名 创建文件

del 文件名 删除文件

HelloWorld

  1. 新建一个文件夹,存放代码

  2. 新建一个java文件

    。Hello.java

  3. 编写代码

    public class Dadashisb{
    public static void main (String[] args){
    System.out.print("Dadashisb");
    }
    }

     

  4. 编译javac java文件,会生成class文件

  5. 运行class文件java class文件 如下图

    HelloWorld

注意事项:文件名和类名必须保持一致

 

Day02

Java程序运行机制

编译型

解释型

程序运行机制

源程序(.java文件)>>>java编译器>>>字节码(.class文件:类)>>>类装载器>>>字节校验器>>>解释器>>>操作系统平台

IDEA(集成开发环境)

安装与基本操作

JAVA基础语法

注释

单行注释与多行注释和文档注释,如下图

图片

标识符

关键字:

关键字

类名:

变量名

标识符注意点

  1. 所有表示辅都应该以字母,美元符,或者下火下开始

  2. 首字母之后可以是字母,美元符,下划线或者数字的任何组合

  3. 不能使用关键字作为变量名或者类名

  4. 标识符是大小写敏感的

数据类型

强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 弱类型语言:变量的使用可以不用符合规定

JAVA的数据类型分为两大类;

基本类型(primitive type):整数类型,浮点类型,字符类型(char),boolean类型 引用类型(referrence type):类,接口,数组

字节: 位(bit):计算机内部数据储存的最小单位,11001100是一个八位二进制数 字节(byte):习惯上用B表示 1B=8bit

图片

 

Day03

数据类型拓展

二进制: 十进制:010 十六进制:0x eg:0x10

浮点数拓展:字节的不同会导致比较的不同,所以最好 完全谁用浮点数进行比较

如下:

public class demo02 {
   public static void main(String[] args) {
       //整数拓展: 进制   二进制0b   十进制 八进制 十六进制
       int i=10;
       int i2=010;//八进制0
       int i3=0x10;//十六进制 0x   0~9 A~F 16
       System.out.println(i);
       System.out.println(i2);
       System.out.println(i3);
       System.out.println("============================");
       //====================================
       //浮点数拓展   eg:银行业务的表示   BigDecimal
       //float             有限的 离散的 舍入误差   接近但是不等于
       // 与double
       //最好完全使用浮点数进行比较
       //BigDecimal   数学工具类
       float f=0.1f; //0.1
       double d=1.0/10; //0.1
       System.out.println(f==d);

       float d1=2323233232323f;
       float d2=d1+1;
       System.out.println(d1==d2); //true   ,因为是有限的字节,所以 忽略   了 1
       //==============================================
       // 字符拓展
       //============================
       char c1='a';
       char c2='中';


       System.out.println(c1);
       System.out.println((int)c1); //强制换行
       System.out.println(c2);
       System.out.println((int)c2);//强制换行
       //所有字符的本质还是数字,通过编码Unicode编码转换,eg(97=a, 65=A) 2字节   0~65536



       //转义字符 非常多,自己测试
       //   \t   制表符
        //   \n   换行
       System.out.println("HELLO\tWORLD");

       //======================================
       String sa=new String("dadashisb");
       String sb=new String("dadashisb");
       System.out.println(sa==sb);//FALSE


       String sc="dadashisb";
       String sd="dadashisb";
       System.out.println(sc==sd); //TRUE
       //对象,从内存分析

       //布尔值扩展
       boolean flag=true;

       if (flag){}// if(flag==true)




  }
}

 

字符拓展:、

所有字符本质是数字,通过Unicode编码进行转换

转义字符:非常多。eg:\t,\n等等等等

 

类型转换

低---------------------------高 (小数的优先级大于整数) byte,short,char->int->long->float->double 运算中,不同类型的数据先转化成统一类型,然后进行运算

注意溢出问题,以及转换问题,详情见demo03,如下:

public class demo03 {
   public static void main(String[] args){
       //操作比较大的数的时候,注意溢出问题
       //JDK7新特性,数字之间用下划线分割
       int money=10_0000_0000;
       int years=20;
       int tatal=money*years;       //此时会溢出
       long total2=money*years;    //由于money和years都是int,所以转换之前已经存在问题

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

       //除了转换类型,类也可以转换
  }
}

变量

变量:可以变化的量 //栈?? 每个变量必须声明其类型 JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

注意事项:

  1. 每个变量都有类型,类型可以使基本类型,月可以是引用类型(变量八大基本类型)

  2. 变量名必须是合法的标识符(注意day02中的常用标识符)

  3. 变量声明是一跳完整的语句,因此每一个变量声明必须以分号结尾

变量作用域

类变量:写在类里面 实例变量:写在类中间 局部变量:写在方法里

public class demo05 {
   //属性:变量
   //类变量   static 只要加了static这个关键词,
   static double salary=2500;

   //实例变量:从属于对象,如果不自行初始化,这个会变成这个类型的默认值
   String name;     //不用初始化 但是用,就需要一些操作
   int age;

   //main方法
   public static void main(String[] args){

      //局部变量:实在方法里面的,再两个大括号之间的 ,使用之前必须声明和初始化值。这些声明只在这个括号里面有用
       //方法块,代码块,作用域就比较宽

      //变量类型(就是demo05) 变量名字=new demo05();
       demo05 demo05 = new demo05();
       System.out.println(demo05.age);          //输出是10,由于没有自行初始化,所以输出为这个类型的默认值
       System.out.println(demo05.name);         //输出是null
       /*
       所有数字类型初始化一般都是0(整数)和0.0(小数),
       字符串变量初始化会是一个16位的0,即u0000,
       布尔值:会默认是false
       除了基本类型,其余的默认值都是null
        */


       //类变量   static 只要加了static这个关键词,就可以直接使用,后面会重点讲,前期学习都用这个,后面回血new
       System.out.println(salary);  //此时可以直接输出salary


  }
}

 

常量

常量:初始化之后就不能再改变值,不会变动的值 可以理解成一种特殊的变量,他的值再被设定之后,在程序中就不会再改变

定义方法如下:

final 常量名=值;
eg: final   double  PI=3.14
   
   //常量名一般都大写

eg:

import java.security.spec.RSAOtherPrimeInfo;

public class demo06 {
  //修饰符,不存在先后顺序,有一大堆
  static final double PI=3.14;   //定义常量,可以直接调用,制作一些长宽高等一系列的东西的时候作用大

  public static void main(String[] args) {
      System.out.println(PI);
       
  }
}

变量的命名规范

  1. 所有变量,方法,类名:见名知意

  2. 类成员变量:首字母小写和驼峰原则:eg monthSalary

  3. 局部变量:首字母和驼峰原则

  4. 常量:大写字母和下划线:MAX_VALUE

  5. 类名:首字母大写和驼峰原则:Man,GodMan

  6. 方法名:首字母小写和驼峰原则:run();runRUN()

以上重点

static和fanal

命名规范

 

 

运算符

算术运算符:+ - * %(取余,念做模),++,--

加减乘除如下:

package base;   //代表当前的包

public class Demo07 {
   public static void main(String[] args) {
       //二元运算符
       //ctrl+d 复制当前行到下一行
       int a=10;
       int b=20;
       int c=25;
       int d=25;
       System.out.println(a+b);
       System.out.println(a-b);
       System.out.println(a*b);
       System.out.println(a/(double)b); //会有小数,要搞清楚作用范围


  }

}

输出字符有优先级,如下

package base;

public class Demo08 {
   public static void main(String[] args) {
       long a=123123123123123L;
       int b=123;
       short c=10;
       byte d=8;
       System.out.println(a+b+c+d);   //Long 有long,结果就是long
       System.out.println(b+c+d);     //int
       System.out.println(c+d);      //int




  }
}
赋值运算符:=

关系运算符:<,>,>=.<=,==,!=(不等于),instanceof

package base;

public class Demo09 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确,错误
        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!=b);
        System.out.println(c%a);

    }
}

 

 

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

 

位运算符: 条件运算符:? : 扩展复制运算符

 

Day04

自增自减运算符

++ 与-- 注意a++与++a的区别

package base;

public class Demo10 {
    public static void main(String[] args) {
        // ++   --      自增 ,自减   一元运算 符
        int a=3;

        int b=a++;       //  此时b=3,
         //执行完这行代码后,先给b赋值,再自增
        //即:b=3,然后a=a+1
        System.out.println(a);       //a=a+1=4



        int c=++a;                //执行完这行 代码前,先自增,再给c赋值

        System.out.println(b);
        System.out.println(c);

        //幂运算    2*2*2=8
        //很多运算会使用 一些工具类 来进行运算  eg:Math类
        double piw=Math.pow(3,2);
        System.out.println(piw);

    }
}
逻辑运算符

与运算:两个为真则运算结果为真 +(a&&b) 或运算:两个中的一个为真,则计算结果为真 +(a||b) 非运算:如果为真,则为假,如果为假则为真 +!(a&&b)

package base;

public class Demo11 {
//逻辑运算符   与     或       非(取反)
    public static void main(String[] args) {
        boolean a=true;
        boolean b=false;

        System.out.println("a && b:"+(a&&b));
        //逻辑运算:两个变量都为真 ,结果才为真     在计算a&&b的时候,若a为假,则直接结束运算
        //不会进行下一步的运算
        //详情见下方的短路运算

        System.out.println("a || b:"+(a||b));
        //或运算:  两个变量又一个为真,则运算结果为真


        System.out.println("!a && b:"+!(a&&b));
        //非运算,如果是真,则为假,如果是假,则为真

注意短路运算: 在计算a&&b的时候,若a为假,则直接结束运算不会进行下一步的运算

 //短路运算
 int c=5;
 boolean d=(c<4)&&(c++<4);
 System.out.println(d);
 System.out.println(c);      //输出c的结果为5
/*
因为c<4为false,所以就终止了下一步(c++<4)的计算 
所以输出的c结果为5,如果计算了 (c++<4),则输出结果应该为 6
以上为短路运算
 */

位运算

A&B:如果两个都为1,则为1 A|B:如果对位有一个1,则为1(如果对应位都是0,则为0,否则为1) A^B:(异或)如果对应位相同则为0,否则为1 ~B:(取反)与对应位完全相反

举例如下:

/*
A=0011 1100
B=0000 1101

则:
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B=1111 0010

 */

位运算效率高,是直接与二进制打交道 左移<< :*2 右移>> : /2 如下图:(涉及计算机的组成)

位运算符:
左移,<<    *2
右移,>>     /2
2*8=16     2*2*2*2=2<<3
如下:
0000 0000     0
0000 0001     1
0000 0010     2
0000 0100     4
0000 1000     8
0001 0000     16

条件运算符:重点(疑问)

image-20200816193946628

三元运算符

?和:

// x ? y : z // 如果x==true,则结果为y,否则结果为z

public class Demo14 {
    //条件运算符:?和:
    public static void main(String[] args) {
        //      x ? y : z
        // 如果x==true,则结果为y,否则结果为z
        int score=80;
        String type=score <60 ?"不及格":"及格";
        //if语句
        System.out.println(type);
  }
}

 

优先级:(),

image-20200816195713756

image-20200816195746518

 

Day05

包机制

包的本质:一个文件夹 尽量不要让包里面的名字重复

//定义包:package pkJ.a.b.b.b.b.cl;
//  package.pkj.*; 
//.*是导入包里面的所有的内容

 

包的名字:一般 利用公司 域名倒置作为包 名 eg:www.baidu.com com.baidu.www

包的作用:为了使用某一个包的成员,我们需要在 Java程序中期 明确导入该包 ,使用“import”语句可以完成此功能

JavaDoc

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

 

参数信息: @auther 作者名 @version 版本号 @since 指明需要最早使用的版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况

package com.base;
//加在类上面就是类的注释,加在方法上,就是方法的注释
//注意注解与注释的区别
/**
 * @author 冯继炎
 * @version 1.0
 * @since  0.8
 */
public class Doc {
    String name;
    /**
     * @auther 冯继炎
     * @param name
     * @return
     * @throws Exception
     */
    //这是一个方法,注意与类等其他的判别
    //注意注解与注释的区别
    public  String test(String name) throws  Exception{
        return name;
    }

}

 

命令行生成文档: image-20200817202709477

会生成Index.html,即可生成JavaDoc文档

作业:学会查找使用IDEA生成JavaDoc文档

 

 

 

 

 

 

 

 

 

 

posted @ 2020-08-17 20:38  冯柚子  阅读(197)  评论(0)    收藏  举报