学习Java的小笔记

基本知识

  1. BigInterger和BigDecimal
  2. valueOf()方法 转化一个int为大整数
  3. add()方法 + multiply()方法 × divide()方法 ÷ compare()方法比较 相同返回1 否则返回0
  4. Arrays有个toString() 方法(多维数组用deepToString())。。。挺牛逼的 一下子打印所有元素。
  5. 因为Java没有指针 所以数组中不能用a+1这种方法寻找下一个元素。
  6. Arrays还有sort()方法 有点牛逼。
  7. 类中的static修饰符标识的变量可以说是所有的对象共享
  8. this()除了经常用的用途(我说不明白) 还可以指向另一个构造函数

String

  1. java里字符串不要用== 要用equals方法 还可以忽略大小写的方法equalsIgnoreCase。
  2. charAt()方法 返回一个char。
  3. StringBuilder类
  4. 添加append()方法
  5. 生成字符串toString()方法

注释

  1. /** 开始 */结束
  2. @param 变量描述
  3. @return 描述
  4. @throws 类描述
  5. @author 姓名
  6. @version 版本
  7. @since 始于何时
  8. @see 引用

继承

  1. java只有public继承
  2. java只能单继承
  3. 注意super关键词的用法 一是调用超类 二是构造函数
  4. final类不允许继承 final方法也不允许再去修改
  5. 包含抽象方法的必须是抽象类 但是抽象类里可以存在具体的方法 抽象类不允许实例化
  6. 可变数组使用ArrayList add set get
  7. 包装 自动拆箱和装箱 final类 不允许修改其数值
  8. Integer toString parseInt
  9. 继承的设计技巧
  10. 将公共操作和域放在超类中
  11. 不要使用受保护的域
  12. 使用继承实现is-a的关系
  13. 除非所有继承的方法都有意义,否则不要使用继承
  14. 在覆盖方法时,不要改变预期的行为

接口

  1. 接口中的方法自动的属于Public 但是在实现的时候需要将方法声明为public
  2. 接口中可以有常量 但是不能有实例域 接口不能实例化 但是可以声明
  3. 要使一个自定义类实现按照某个变量进行排序,需要继承Comparable接口 实现 compareTo方法 比较数字使用Integer 和Double 下的compare()
  4. 接口可以扩展 extends 接口中的域自动被设置为public static final
  5. 一个类可以实现多个接口
  6. 可以在接口的方法前面加上default关键词 作为一个默认方法 这样当一个类实现接口的时候就可以只担心自己所用到的了
  7. 接口和类冲突时类优先
  8. Cloneable是java的标记接口
  9. 所有数组类型都有一个Public的clone方法,而不是protected
  10. lambda表达式()->{} lambda表达式作用是转换为函数式接口 lambda表达式捕获的值必须是最终变量,即不会再去改变值得变量 好复杂QAQ
  11. 内部类部分
    • 使用内部类的原因
    • 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
    • 内部类可以对同一个包中国的其他类隐藏起来
    • 当想要定义一个回调函数且不想编写大量代码时,时用匿名内部类比较便捷
    • 内部类不能有static方法
    • 内部类中声明的所有静态域都必须是final
    • 局部内部类:将内部类放在方法中,不能用public或者private进行修饰
    • 匿名内部类 格式 new SuperType(){} 由于构造器的名字必须和类名相同,所以匿名类不能有构造器,需要将参数传递给超类构造器
    • 静态内部类:当内部类不需要访问外围类对象的时候,需要使用静态内部类,静态内部类可以有静态域和方法
  12. 代理:利用代理可以在运行时创建一个实现了一组给定接口的新类(是真的不懂)在编译时无法确定需要实现哪个接口时使用

异常

  1. 子类方法中声明的受查异常不能比超类方法中生命的异常更通用
  2. 超类没有抛出异常,子类也不行
  3. finally语句
  4. 断言 assert 条件;/assert 条件:表达式

泛型程序设计

  1. 泛型方法可以写在泛型类中,也可以写在普通类中
  2. 可以对类型变量进行限定 统一用extends
  3. 多个限定中间用&
  4. 不能用基本类型实例化类型参数
  5. 运行时类型查询只适用于原始类型(instanceof)
  6. 不能创建参数化类型的数组
  7. 不能实例化类型变量 不能构造泛型数组
  8. 泛型类的静态上下文中的类型变量无效 禁止使用带有类型变量的静态域和方法
  9. 不能抛出或捕获泛型类的实例
  10. Pair通配符 Pair

发表评论

电子邮件地址不会被公开。 必填项已用*标注