JAVA随手笔记

  • 小数比较时使用BigDecimal.equal精确
  • 逻辑与&&逻辑或|采取短路运算从左到右运算,确定值就不会往下运算
  • long型定义后需要加L
  • float型定义后需要加f
  • 默认初始化int为0,boolean型为false,引用类型默认为null
  • java中比较时两个变量是否相等有两种方法。其中 == 必须要求内存地址和内容完全相等才为真,而equal只要内容相等即为真,不用地址相同
  • foreach循环用于读取数组元素的值,不能修改元素的值
  • new返回的是对象地址
  • import static package.* 将报名为。。下的静态方法或静态常量导入
  • java不支持多继承(即一个类不能同时继承多个类)但是使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
  • final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final
  • final声明类:final class 类名 {//类体}
  • final声明方法:修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}
  • instanceof是二元运算符,左边是对象右边是类,当对象是类的实例化时返回true,否则返回false
  • Switch语句:case标签必须是整数(byte,short,char,int)或者枚举,不能是字符串(JDK7.0可以使用字符串)
  • 高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用,尽量方便外部调用。
  • 标签outer用法,用于退出循环

内存分析
栈:

  • 栈是方法执行的内存模型,每个方法调用创建一个栈帧(存储局部变量、操作数、方法出口)
  • jvm为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量)
  • 栈属于私有,不能实现线程间共享
  • 栈是由系统自动分配的一块连续的内存空间

  • 堆用于存放创建好的对象和数组(数组也是对象)
  • jvm只有一个堆,被所有线程共享
  • 堆是一个不连续的内存空间,分配灵活但速度慢

方法区(静态区)

  • jvm只有一个方法区,被所有线程共享
  • 方法区实际也是堆,用于存储类、常量相关的信息
  • 用来存储程序中永远不变或唯一的信息(类信息、静态变量、字符串常量)

1、构造器如果没有自己写系统会自动添加,但是写了系统便不会添加
2、方法调用时,匹配离得最近的类型

this用法
1、区别二义性:在构造函数中当给类的变量初始化时,构造函数中的参数名和这个变量相同时,可以用this使用类的变量。
2、在构造器中调用另一个构造器使用this(参数…)且必须放在第一句
3、this不能用于static方法中

super用法

  1. 可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
  2. 子类的方法覆盖了父类的方法时可以通过super.function()调用父类的方法
  3. super 语句必须是子类构造方法的第一条语句。不能在子类中使用父类构造方法名来调用父类构造方法。 父类的构造方法不被子类继承。调用父类的构造方法的唯一途径是使用 super 关键字,如果子类中没显式调用,则编译器自动将 super(); 作为子类构造方法的第一条语句。
  4. 子类的所有构造方法内部, 第一行会(隐式)自动先调用父类的无参构造函数super();
    如果子类构造方法第一行显式调用了父类构造方法,系统就不再调用无参的super()了。
  5. 子类不能直接继承父类中的 private 属性和方法,在这里插入图片描述

static

  1. static修饰的成员变量、方法从属于与类
  2. static方法中不可以访问非static的成员
  3. static语句块比构造器的先执行,先加载类才会有构造函数。
  4. static方法中不能有this和super。

final

  1. final修饰类中的方法:可以被继承,但继承后不能被重写
  2. final修饰类:类不可以被继承
  3. 例如:类中有一个属性是 final Person p=new Person(“name”); 那么你不能对 p 进行重新赋值,但是可以改变 p 里面属性的值 p.setName(‘newName’);

访问权限修饰符

  1. private:私有,只有自己可以访问
  2. default:表示没有修饰符修饰,只有同一个包的类才能访问
  3. protected:表示可以被同一个包的类以及其他包的子类访问
  4. public:表示可以被项目的所有包的所有类访问。

造型

  1. 向上造型:把new出来的子类赋值给父类引用,不需要强制转换: Father f1 = new Son()
  2. 向下造型:把new出来的父类赋值给子类引用,需要强制转换:Father f2,Son s2 = (Son)f2

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值