面试踩坑笔记之Object与性能优化

1、两个Object 对象用equals相比较,是否相等?
    // Object 类使用 equals() 方法
    // 创建两个对象
    Object obj1 = new Object();
    Object obj2 = new Object();

    // 判断 obj1 与 obj2 是否相等
    // 不同对象,内存地址不同,不相等,返回 false
    System.out.println(obj1.equals(obj2)); // false
2、Object .equals()与==的区别与场景
  1. equals 方法用于比较对象的内容,适用于基本数据类型的值比较或判断两个引用是否指向同一对象。
  2. == 用于比较对象的引用地址(即两个对象是否指向同一个内存地址),适用于比较两个对象的内容是否相等(如 String、Integer 类)。。
3、Object 类的方法有哪些?
  1. getClass () : 返回对象的运行时类。这个方法通常是和 Java 反射机制搭配使用的。
  2. hashCode () : 返回对象的哈希码值。
  3. equals () : 用于判断当前对象是否与另一个对象相等。
  4. clone () : 该方法是保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出 CloneNotSupportedException 异常。
  5. toString () : 返回一个 String 对象,一般子类都有覆盖。
  6. notify () / notifyAll () : final 方法,主要用于唤醒在该对象上等待的某个线程。
  7. wait () : 用于使当前线程进入等待状态,直到其他线程调用 notify() 或 notifyAll() 方法。
  8. finalize() :该方法是保护方法,主要用于在 GC 的时候再次被调用,如果我们实现了这个方法,对象可能在这个方法中再次复活,从而避免被 GC 回收。
4、Android中检测性能工具
  1. Profiler —— 使用Profiler的CPU分析功能。

  2. Method Tracing ———— 通过该方法,我们可以记录应用运行过程中的方法调用情况,包括每个方法的执行时间、调用次数等。
    **使用方法追踪的步骤如下:
    a. 在代码中添加Debug.startMethodTracing(“my_trace”),其中”my_trace”是生成的trace文件的名称。
    b. 在需要停止追踪的地方添加Debug.stopMethodTracing()。
    c. 使用adb pull命令将生成的trace文件导出到电脑上。
    d. 在Android Studio中打开Profiler,选择CPU选项卡,点击Load from file,选择刚才导出的trace文件。
    e. 在Profiler的Top Down/Bottom Up区域中,我们可以看到方法的执行时间和调用次数,从而找到耗时的方法。

  3. Systrace 是Android平台提供的一款工具,用于记录短期内的设备活动。 Systrace 允许您在系统级别(如SurfaceFlinger、WindowManagerService等Framework部分关键模块、服务、View系统等)收集和检查设备上运行的所有进程的计时信息。 它将来自Android内核的数据(例如CPU调度程序,磁盘活动和应用程序线程)组合起来,以生成HTML报告。

5、性能优化方法
  1. 减少不必要的计算和操作,避免在UI线程中执行耗时操作。
  2. 使用缓存技术,减少重复计算和数据库查询等操作。
  3. 优化算法和数据结构,提高代码的执行效率。
  4. 使用异步加载和懒加载等技术,减少应用的启动时间和内存占用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值