Java基础 - 基础

基础

注释

  1. //单行注释://

  2. //多行注释:/* */

  3. //JavaDoc文档注释:/** */

标识符

  1. 首字符:以字母、美元符($)、下划线(_)开始

  2. 首字符后为 字母、美元符($)、下划线(_)、数字 的任意组合

  • 不能使用关键字命名

  • 标识符大小写敏感

数据类型

八大基本类型

  1. 数值类型

    1)整数类型

    ① byte 1字节(±127)

    ② short 2字节(±32767)

    ③ int 4字节(±2147483647)【最常用】

    ④ long 8字节(±9223372036854775807)【数字后加L】

    byte i1 = 100;
    short i2 = 1000;
    int i3 = 1000000;
    long i4 = 10L;
    System.out.println(i1);
    System.out.println(i2);
    System.out.println(i3);
    System.out.println(i4);
    • 整数扩展:进制【二进制0b,八进制0,十进制,十六进制0x】

    int i1_ = 0b10;
    int i2_ = 010;
    int i3_ = 10;
    int i4_ = 0x10;
    System.out.println(i1_);
    System.out.println(i2_);
    System.out.println(i3_);
    System.out.println(i4_);

    2)浮点类型

    ① float 4字节【数字后加F】

    ② double 8字节

    float i5 = 1.1F;
    double i6 = 1.999999999999999999;
    System.out.println(i5);
    System.out.println(i6);
    • 浮点数扩展:避免使用浮点数去比较

      • float 有限、离散、舍入误差、大约

      • //银行业务,使用 BigDecimal 数学工具类进行计算

    float i5_ = 233333333333333213214f;
    float i6_ = i5_ + 1;
    System.out.println(i5_ == i6_);    
    //true,就是因为浮点数是个近似数,有误差

    3)字符类型:char 2字节

    char i7 = 'a';
    System.out.println(i7);
    • 字符扩展:所有字符本质还是数字

      • 编码 unicode表 0-65536(2^16)

    System.out.println((int)i7);
    char i7_ = '\u0061';    //转移字符:\t制表符、\n换行
    System.out.println(i7_);
  2. 布尔值(boolean)类型:true、false

    boolean i8 = true;
    System.out.println(i8);
    • boolean 扩展

    //if (i8==true){}     等价于     if (i8){}

引用类型

  1. 接口

  2. 数组

类型转换

低 ----------------------------------------------------------------------> 高

byte,short,char -> int -> long -> float -> double

 

  1. 强制转换(高 -> 低)

  2. 自动转换(低 -> 高)

     

    注意:

  • 布尔值不能进行转换

  • 不能把对象类型转换为不相干的类型

  • 把高容量转换到低容量的时候,强制转换

  • 强制转换时可能出现内存溢出、精度问题

System.out.println((byte)128);  //内存溢出
System.out.println((int)12.8); //精度问题

//操作较大的数时注意溢出问题
int money =  10_0000_0000;      //JDK7新特性,数字之间可以用下划线分割
int year = 20;
long total1 = money * year;     //计算的时候内存已经溢出
long total2 = money * ((long)year);     //先把其中一个数转换为long
System.out.println(total1);
System.out.println(total2);

变量

type varName [=value] [{,varName[=value]}]

数据类型 变量名 = 【可以用逗号隔开来声明多个同类型变量】

 

注意:

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

  • 变量名是合法的标识符

  • 每个变量声明完以分号结尾

 

作用域

  1. 类变量

  2. 实例变量

    1)从属于对象

    2)如果不自行初始化,数值默认为0、0.0,布尔值默认为false,基本类型以外默认值为null

  3. 局部变量

    必须声明和初始化值

public class week1_02 {
  static double salary = 2500;   //类变量
  String name;                   //实例变量
  int age = 18;               //实例变量

  public static void main(String[] args) {
      int a = 100;               //局部变量
      System.out.println(a);     //局部变量调用

      System.out.println(salary); //类变量调用

      //变量类型 变量名 = new week1_02()
      week1_02 b = new week1_02();   //实例变量调用
      System.out.println(b.age);     //b.age.sout
  }
}

 

常量

final 常量名 =

//final和static都是修饰符,不存在先后顺序
static final double PI = 3.14
final static double PI = 3.14

 

注意:

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

 

运算符

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

    int a1 = 500;
    int a2 = 400;
    System.out.println(a1+a2);
    System.out.println(a1-a2);
    System.out.println(a1*a2);
    System.out.println(a1/(double)a2);

    //只要+号一侧出现String类型,就会把其他操作数转化为字符串然后将其连接
    System.out.println(""+a1+a2);  //500400 字符串在前面会进行拼接
    System.out.println(a1+a2+"");  //900 字符串在后面仍会计算

    //a++和++a都相当于a=a+1,只是自增时机不同
    int a3 = 3;
    int a4 = a3++;              //先赋值,后自增
    int a5 = ++a3;              //先自增,后赋值
    System.out.println(a3);     //5
    System.out.println(a4);     //3
    System.out.println(a5);     //5

    //如果多个操作中有一个操作为long/double,结果也为long/double
    //如果多个操作中没有long/double,无论操作中有无int,结果都为int
    byte b1 = 100;
    short b2 = 1000;
    int b3 = 100000;
    long b4 = 10000000L;
    System.out.println(b1+b2+b3+b4);    //long
    System.out.println(b1+b2+b3);       //int
    System.out.println(b1+b2);          //int
    System.out.println(b1*b2);          //int

    //幂运算
    double pow = Math.pow(2,3);    //2^3
    System.out.println(pow);
  • 赋值运算符:=

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

    //关系运算符
    int c1 = 10;
    int c2 = 20;
    System.out.println(c1>c2);         //false
    System.out.println(c1<c2);         //true
    System.out.println(c1==c2);         //false
    System.out.println(c1!=c2);         //true
  • 逻辑运算符:&&,||,!

    boolean d1 = true;
    boolean d2 = false;
    System.out.println("d1 && d2:" + (d1&&d2));
    System.out.println("d1 || d2:" + (d1||d2));
    System.out.println("!(d1 && d2):" + !(d1&&d2));

    //短路运算
    int d3 = 50;
    boolean d4 = (d3<10) && (d3++<4);
    System.out.println(d4);     //false
    System.out.println(d3);     //50,   d3++<4未执行
  • 位运算符:&与,|或,^异或,~取反,>>左移,<<右移,>>>

    //位运算   【效率极高】
    /*
    A   =   0011 1100;
    B   =   1001 0100;

    A&B =   0001 0100; //两位都为1记为1,其余记为0
    A|B =   1011 1100; //两位都为0记为0,其余记为1
    A^B =   1010 1000; //两位相同记为0,相异记为1
    ~B =   0110 1011; //取反,1记为0,0记为1
    */

    System.out.println(2<<3);     //<<相当于*2
    System.out.println(8>>3);     //<<相当于/2
  • 条件运算符:?,:

    • x ? y:z

    • 如果x==true,结果为y,否则结果为z

    int score = 50;
    String type = score>60 ? "及格" : "不及格";
    System.out.println(type);
  • 扩展赋值运算符:+=,-=,*=,/=

包机制

  • package pkg1[. pkg2[. pkg3 ...]]; 【必需放在内容的最上方】

  • 一般利用公司域名作为包名【com.baidu.www】

  • 导入包:import package1[. package2 ...].(classname*|);【*为通配符,即导入该包下所有的类】

javaDoc

  • javaDoc命令用于生成自己的API文档

  • 加在类中就是类的注释,加在方法中就是方法的注释

  • 参数信息

    • @author 作者名

    • @version 版本号

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

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

    /**
    * @author Mo
    * @version 1.0
    * @since 1.8
    */
  • 通过命令行生成生成API文档

    image-20210202173050709

  • 通过IDEA生成 JavaDoc文档

    image-20210202174920306

    1. 选择是整个项目还是模块还是单个文件

    2. 文档输出路径

    3. Locale 选择地区,这个决定了文档的语言,中文就是zh_CN

    4. 传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/7/docs/api

    5.  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-02-02 22:16  葬花骨  阅读(145)  评论(0)    收藏  举报