Java基础

JAVA基础

数据类型

int能表示21亿左右的数,再大就会内存溢出

//JDK新特性,数字之间可以用下划线分割
int money = 10_0000_0000;

变量

局部变量必须声明和初始化

实例变量如果不自行初始化,会默认值

  1. 布尔值默认false
  2. 基本类型 0
  3. 其他null

类变量:在类里面使用static修饰的变量

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划:MAX_VALUE
  • 类名:首字母和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

常量

final 常量名=值;//常量名一般使用大写字母

运算符

幂运算 Math类

double pow = Math.pow(2,3);

包机制

一般利用公司的域名倒置作为包名

导入import

JavaDoc

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

文档注释

/**
 * @author 作者名
 * @version 1.0 版本号
 * @since 1.8 指明最早需要使用jdk版本
 */

使用命令行:cmd

javadoc -encoding UTF-8 -charset UTF-8 java文件

会生成index.html 打开可以看看

可以使用IDEA生成JavaDoc文档 Tools->Generate JavaDoc

用户交互Scanner

next():

  1. 一定要读取到有效字符才可以结束输入。
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符串。

nextLine():

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符。
  2. 可以获得空白。
Scanner scanner = new Scanner(System.in);
System.out.print("请输入:");
if(scanner.hasNext()){
    System.out.println(scanner.next());
}
scanner.close();

增强for循环

java5引入的,主要用户数组和集合的for循环

int[] numbers={1,2,3,4,5};
for(int x:numbers){
    System.out.println(x);
}

方法

重载的规则:

  • 方法名称必须相同。
  • 参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)
  • 方法的返回类型可以相同也可以不相同。
  • 仅仅返回类型不同不足以成为方法的重载。

命令行传参

main方法的args参数

java Demo03 参数值1 参数值2

可变参数

java1.5以后才有的

  • 在方法声明中,在指定参数类型后加一个省略号(...)。
  • 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。

数组

image

  • 静态初始化

    int[] a ={1,2,3};
    Man[] mans = {new Man(1,1),new Man(2,2)};
    
  • 动态初始化

    int[] a =new int[2];
      a[0]=1;
      a[1]=2;
    

Arrays类

  • 给数组赋值:通过fill方法。
  • 对数组排序:通过sort方法,按升序。
  • 比较数组:通过equals方法比较数组中元素值是否相等。
  • 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。

面向对象OOP

构造器(构造方法)

  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void
  3. 一旦定义了有参构造,无参就必须显示定义

image

封装

属性私有,get/set

  1. 提高程序的安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 提高系统可维护性

继承

super 使用父类的和this对应

  1. super调用父类的构造方法,必须在构造方法的第一个
  2. super必须只能出现在子类的方法或者构造方法中
  3. super和this不能同时调用构造方法

重写override

  1. 静态的方法和非静态的方法区别很大,重写只和非静态的方法有关
  2. 重写是子父类的需要继承关系,重载是自己类的
  3. 方法名必须相同
  4. 参数列表必须相同
  5. 修饰符:范围可以扩大
  6. 抛出的异常:范围,可以被缩小,但不能扩大
  7. 父类的功能,子类不一定需要,或者不一定满足

多态

  1. 多态是方法的多态,属性没有多态
  2. 有继承关系
  3. 方法需要重写,父类引用指向子类对象
  4. 对象能执行哪些方法,主要看对象左边,和右边new关系不大
  5. instanceof关键,如果匹配,可以进行类型之间的转换

static

  1. 非静态方法可以调用静态方法,静态方法只能调用静态方法
  2. 静态代码块,类一加载就执行,只执行一次
  3. 执行顺序 静态代码块->匿名代码块->构造方法
  4. 静态导入包 import static java.lang.Math.random;

抽象类

  1. 抽象方法只能在抽象类里
  2. 不能new抽象类,只能靠子类去实现它
  3. 抽象方法只有方法名字,没有方法的实现
  4. 抽象类里可以写普通方法
  5. 抽象类是有构造方法的

接口 interface

  1. 只有规范,自己无法写方法,专业的抽象,只能干约束这件事
  2. 里面的方法默认都是 pubic abstract ,不用写
  3. 接口实现多继承
  4. 接口里面定义的属性都是常量 默认是: public static final,一般不会用
  5. 接口不是类,没有构造方法

内部类

在一个类内部定义的类

  • 成员内部类

    • 可以使用外部类的私有属性,私有方法

      Outer outer = new Outer();
      Outer.Inner inner = outer.new Inner();
      
  • 静态内部类

    //加一个static
    
  • 一个java类文件中,可以有多了class类,但是只能有一个public的

  • 局部内部类

    • 是写在方法里的类

异常Exeption

分为两类 错误Error 和 异常 Exception

Throwable是异常的父类

Ctrl+Alt+t 可以跳出代码块选项

throw new Exeption() 抛出异常,一般在方法中使用,抛到更高级

自定义异常类 继承 Exception,重写toString方法

posted @ 2022-01-06 09:26  bagdje  阅读(14)  评论(0)    收藏  举报