• Java基础学习笔记


    Java基础语法

    注释,标识符,关键字

    Java中的注释有三种

    • 单行注释

      //单行注释:可以注释一行文字
      //输出Hello World!
      System.out.println("Hello World!");
      
    • 多行注释

       /*
         多行注释:可以注释一段文字
         输出hello world
        */
       System.out.println("Hello World!");
      
    • 文档注释

       /**
        * 文档注释
        */
      System.out.println("Hello World!");
      

    关键字

    常见关键字

    标识符

    • 所有的标识符都应该以字母(A-Z或a-z),美元符号($),或者下划线(__)开始

      String string = "Hello World!";
      String String = "Hello World!";
      String $string = "Hello World!";
      String _string = "Hello World!";
      
    • 首字符之后可以是字母(A-Z或a-z),美元符号($),或者下划线(__)或数字的任何字符组合

      String sString = "Hello World!";
      String s$tring = "Hello World!";
      String s_tring = "Hello World!";
      String s1tring = "Hello World!";
      
    • 不能使用关键字作为变量名或方法名

    • 标识符是大小写敏感的

    • 可以使用中文命名,但一般不建议这样去使用,也不建议是用拼音,很LOW

    • 非法标识符举例:123abc,-abc,#abc,

    数据类型

    ​ Java是强类型语言,要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用

    Java的数据类型分为两大类

    • 基本数据类型

      • 数值类型

        • 整数类型

          • byte占1个字节,范围:-128 ~ 127

            byte num2 = 10;
            
          • short占2个字节,范围:-32768 ~ 32767

            short num3 =10;
            
          • int占2个字节,范围:-2147483648 ~ 2147483647

             //最常用
            int num1=10;
            
          • long占2个字节,范围:-9223372036854774808 ~ 9223372036854774807

            //Long类型数据一般在数字后加个L
            long num4 = 10L;
            
        • 浮点数类型

          • float占2个字节

            //float类型数据一般在数字后加个F
            float num5 =3.14F;
            
          • double占2个字节

            double num6 =3.1415;
            
        • 字符类型

          • char占2个字节

            char ch = 'A';
            
      • boolean类型

        • 占1位,其值只有true和false两个

          boolean flag = false;
          
    • 引用数据类型

      • 接口
      • 数组

    什么是字节

    • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数
    • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B表示
    • 1B(byte,字节) = 8bit(位)
    • 字符:是指计算机中使用的字母,数字,字和符号
    • 1bit表示1位
    • 1Byte表示1字节 1B=8b
    • 1024B=1KB
    • 1024KB=1M
    • 1024M=1G

    扩展

    整数扩展

    • 进制表示法:

      • 二进制:前面加 0b

      • 十进制:

      • 八进制:前面加 0

      • 十六进制:前面加 0x

        int i_2 = 0b10;
        int i_10 = 10;
        int i_8 = 010;
        int i_16 = 0x10;
        System.out.println(i_2); //输出2
        System.out.println(i_10); //输出10
        System.out.println(i_8); //输出8
        System.out.println(i_16); //输出16
        

    浮点数扩展

    • 钱的表示方法

      • 浮点数float,double的特征是有限,离散,舍入误差,大约,接近但不等于

        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f); //输出0.1
        System.out.println(d); //输出0.1
        System.out.println(f==d); //输出false
        
        float num = 23123132133133113122f;
        float num2 = num+1;
        System.out.println(num == num2); //输出true
        
      • 推荐使用BigDecimal(数学工具类)来定义钱

    字符扩展

    • 所有的字符的本质还是数字,字符的编码方式是Unicode(2字节),范围是0~65536

    boolean扩展

    boolean flag = true;
    //下列两个式子是等价的
    if(flag == true){} //新手常用
    if(flag){} //老手的习惯写法
    

    类型转换

    ![类型转换等级](

    )

    • 强制类型转换

      • 形式:(类型)变量名 ,从高到底
      int a=10;
      byte b= (byte)a; //b的值为10
      
    • 自动类型转换

      • 从底到高
      int a=10;
      double d= a; //d的值为10.0
      
    • 注意点

      • 不能对布尔值进行转换
      • 不能把对象类型转化成不相干的类型
      • 把高容量转换成低容量的时候,要强制转换
      • 转换的时候可能存在内存溢出或者精度问题
      int a=128;
      byte b=(byte)a;
      System.out.println(b);
      //此时由于byte的范围是-127,强制转化时发生了内存溢出,所以此时b的值时-128
      
      int m = (int)32.99f;
      System.out.println(m);//输出32  此时发生了精度丢失
      
    • JDK7新特性,数字之间可以用下划线分割

      int m = 10_0000_0000;
      System.out.println(m); //输出1000000000
      

    变量,常量

    变量

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

    • 每个变量都有类型,可以是基本类型也可以是引用类型

    • 变量名必须是合法的标识符

    • 变量声明是一条完整的语句,因此每个声明都必须以分号结束

    • 变量作用域

      • 类变量:从属于类,格式为 static 变量类型 变量名
      • 实例变量:从属于对象,如果不初始化,变量的值是默认值
        • 布尔类型的默认值是false,其他处理基本类型,其余的默认值都是null
      • 局部变量:必须声明和初始化值
    public class HelloWorld {
        //类变量
        static double a = 10.0;
        //实例变量
        int n = 10;
        public static void main(String[] args) {
            //局部变量
            int b=10;
            //实例变量调用
            HelloWorld helloWorld = new HelloWorld();
            System.out.println(helloWorld.n);
            //类变量调用
            System.out.println(a);
    

    常量

    • 初始化后不能再改变值!不会动的值。
    • 所有的常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变
    • 常量名一般用大写字符
    • 形式:final 变量类型 变量名 = 变量值;
    final double PI=3.14;
    

    命名规范

    • 所有变量,方法,类名:见名知意
    • 类变量成员:首字母小写和驼峰原则:monthSalary
    • 局部变量:首字母小写和驼峰原则
    • 常量:大写字母和下划线:MAX_VALUE
    • 类名:首字母大写和驼峰原则:Man,GoodMan
    • 方法名:首字母小写和驼峰原则:run(),runRun()

    运算符

    • 算术运算符:+,-,*,/,%,++,--
    int a=20;
    int b=7;
    System.out.println(a+b);
    //输出27,表示a加上b的结果 加法运算
    System.out.println(a-b);
    //输出13,表示a减去b的结果 减法运算
    System.out.println(a*b);
    //输出140,表示a乘上b的结果 乘法运算
    System.out.println(a/(double)b);
    //输出2.857142857142857,表示a除以b的结果 除法运算
    System.out.println(a%b);
    //输出6,表示a整除以b所剩的余数的值 求余运算
    System.out.println(a++);
    //输出20,表示先将a输出,再将a加一。 自增运算
    //此时a的值为21
    System.out.println(++a);
    //输出22,表示先将a加一,再输出a的值 自增运算
    //此时a的值为22
    System.out.println(a--);v
    //输出22,表示先将a输出,再将a减一。 自减运算
    //此时a的值为21
    System.out.println(--a);
    //输出20,表示先将a减一,再输出a的值 自减运算
    //此时a的值为20
    
    • 赋值运算符:=
    int a=20; 赋值运算
    
    • 关系运算符:<,>,<=,>=,==,!=,instanceof
    int a=10;
    int b=20;
    System.out.println(a>b);
    //输出false 大于
    System.out.println(a<b);
    //输出true 小于
    System.out.println(a>=b);
    //输出false 大于等于
    System.out.println(a<=b);
    //输出true 小于等于
    System.out.println(a==b);
    //输出false 等于
    System.out.println(a!=b);
    //输出true 不等于
    
    • 逻辑运算符:&&,||,! 短路运算
    boolean a = true;
    boolean b= false;
    System.out.println(a&&b);
    //输出false,逻辑与运算,两个变量都为真,结果才为真
    System.out.println(a||b);
    //输出true,逻辑或运算,两个变量有一个为真,则结果为真
    System.out.println(!a);
    //输出false,逻辑非运算,如果a为真,则结果为假,如果是假则变为真
    
    //短路现象
    int c= 5;
    boolean d= (c<4)&&(c++<4);
    System.out.println(d);
    //输出false
    System.out.println(c);
    //输出5 ,如果与运算符号前面的值为假时,与运算符后面的命令将不再执行
    
    • 位运算符:&,|,^,~,<<,>>,>>>(了解即可)
    A = 0011 1100
    B = 0000 1101
    A&B= 0000 1100 与位运算符:同一位上都是1结果才为1,否则为0
    A|B= 0011 1101 或位运算符:同一位上有一个1结果为1,否则为0
    A^B= 0011 0001 异或运算符:同一位上相同结果为0,不相同结果为1
    !B=  1111 0010 非位运算符:每一位都取反,就是0变成1,1变成0
    << 左移操作:是将某个数的二进制形式都向左移动一位,前去一位后补0。
    >> 右移操作:是将某个数的二进制形式都向右移动一位,后去一位前补0。
    左移操作在十进制数上的表现为 a<<1 等价于 a*2
    右移操作在十进制数上的表现为 a>>1 等价于 a/2
    移动几位表示乘或除以几个2
    
    • 条件运算符: ? :
    //x ? y : z
    //如果x==true,则结果为y,否则结果为z
    int a=20;
    System.out.println(a==20?"true":"false");
    //输出true
    System.out.println(a!=20?"true":"false");
    //输出false
    
    • 扩展赋值运算符:+=,-=,/=,*=
    a+=b 等价于 a = a+b;
    a-=b 等价于 a = a-b;
    a/=b 等价于 a = a/b;
    a*=b 等价于 a = a*b;
    
    • 字符串拼接小问题
    int a=10;
    int b=5;
    System.out.println(""+a+b);
    //输出: 105 会将a,b的值取出,然后拼接
    System.out.println(a+b+"");
    //输出:15 会先将a+b的值算出,然后拼接成字符串
    

    包机制,JavaDoc

    包机制

    • 用于区别类名的命名空间
    • 语法格式:package 包1.包2.包3
    • 命名规则:一般利用公司域名倒置作为包名
    • 当我们要使用其他包中的成员时,我们要导入该包:import 包路径.包名

    JavaDoc

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

    • 命令格式:在生成的类的路径下cmd运行 javadoc -encoding UTF-8 -charset UTF-8 类文件名

    • 参数信息

      • @author作者名
      • @version 版本号
      • @since 指明需要最早使用的jdk版本
      • @param 参数名
      • @return 返回值情况
      • @throws 异常抛出情况
    • IDEA生成javadoc的方法

      • 点击上方的tools按钮,选择Generate JavaDoc

      1. 选择生成的是整个项目还是单个文件
      2. 选择生成后javadoc存放的位置
      3. 写入文档的语言,一般选择zh_CN
      4. 写入javadoc的参数:一般写法为:
      -encoding UTF-8 -charset UTF-8 -windowtitle "文档HTML页面标签的标题" -link http://docs.Oracle.com/javase/7/docs/api
      
  • 相关阅读:
    Jmeter Ant Task如果报告中有错误,在邮件内容里面直接显示出来 系列2
    自动化测试的点点滴滴经验积累
    Java中通过SimpleDateFormat格式化当前时间:/** 输出格式:20060101010101001**/
    Good Bye 2015 A
    Codeforces Round #337 (Div. 2)B
    Codeforces Round #337 (Div. 2) A水
    hdu 1698 线段树 区间更新 区间求和
    hdu 1166线段树 单点更新 区间求和
    HDU2841 (队列容斥)
    15ecjtu校赛1006 (dfs容斥)
  • 原文地址:https://www.cnblogs.com/mzchuan/p/13735130.html
Copyright © 2020-2023  润新知