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
    
posted @ 2020-09-26 15:15  木子川  阅读(95)  评论(0编辑  收藏  举报