java笔记

1 final关键字
   final修饰的类不能继承
   final修饰的方法不能重写
   final修饰的变量不能改变
   (final修饰的JVM会尝试关联)

2 abstract class 和interface 
   抽象类可以有构造方法  接口不行
   抽象类可以有普通成员变量 接口不行
   抽象类可以包含非抽象普通方法 接口只有抽象方法
   一个接口可以实现多个接口,只能继承一个抽象类

3 map
   map是键值对。key唯一,值可重复
   treemap 可以保证顺序
   hashmap无序 key和value都可以为null线程不安全
   hashtable key和value都不许为null
   KeySet()方法可以将所有keys抽取成一个set  
   Values()可以将map中所有values抽取成一个集合
4 Set
    不包含重复元素的集合
5 list
   有序可重复 
6 arraylist 和linkedlist
   arraylist 动态数组 初始化大小10 每次扩容0.5 查询快
   linkedlist 链表结构 增删快 
7 内存泄漏与内存溢出
   内存泄漏: 指程序在申请内存后无法释放内存,最终会导致溢出
                    比如 读取流即使关闭,数据库连接释放
    内存溢出:没有足够内存使用  比如大批量导入  采用分批提交

8 int与integer区别
   integer是包装类型,存的是对象,int是基本类型 存的是数值

9 string stringbuilder stringbuffer 都是字符串常量
   string 不可变 
   stringbuffer 可变 线程安全 拼接时在后面追加
   stringbuilder 可变线程不安全  拼接时在后面追加
   stringbuilder 效率 > stringbuffer >string 因为stringbuilder不安全做所以效率高

10 常见异常
sqlexception 数据库访问错误等
ioexception io流中断或失败
classnotfoundexception 找不到指定名称类

11多线程
新建状态 执行start()方法  -> 就绪状态 执行run()方法 -> 运行状态 run()方法执行完
-> 死亡状态  
阻塞状态 : 线程阻塞 让出cpu资源

12 gc
gc垃圾回收,负责清除对象并释放内存。java提供的gc功能可以自动检测对象是否超过作用域而达到回收的目的 防止内存泄漏


13 sql优化
1 mysql Explain优化器 可以查看sql的细节 比如type 可以显示全表扫描或索引
全表扫描不行 要优化到索引级别 。查看有没有索引失效。
2 表中建立索引,优先考虑where,group by使用到的字段
3 避免使用select * 返回无用字段会降低查询效率
4 避免使用in 和 not in ,or,判空 会导致数据库放弃索引,进行全表扫描
5 子查询使用exists代替

14if else优化(表驱动法)
     用map将几种type存起来,再用for循环遍历区匹配,这样可以省略很多代码


     更好的办法有策略模式+工厂模式
     先设计模板方法,然后用工厂模式设计生产策略,最后根据不同业务逻辑实现模板方法

14 rabbitMq
     灵活路由,支持多协议(mqtt) 

15 mysql distinct和group by
      distinct和group by都可以用来去重,
不同之处,distinct针对全部字段去重,而group by可以针对全部字段中的单一字段去重
两者执行方式不同,distinct主要是对数据两两进行比较,需要遍历整个表。group by分组类似先建立索引再查索引,当数据量较大时,group by速度要优于distinc

16 深拷贝和浅拷贝
深拷贝和浅拷贝是指在赋值一个对象时,拷贝的深度不同
在进行深拷贝时,会拷贝所有的属性,并且如果这些属性是对象,也会对这些对象进行深拷贝,直到最底层的基本数据类型为止。这意味着,对于深拷贝后的对象即使原对象的属性值发生了变化,深拷贝后的对象的属性值也不会受到景响。
相反,浅拷贝只会拷贝对象的第一层属性,如果这些属性是对象,则不会对这些对象进行拷贝,而是直接复制对象的引用。这意味着,对于浅拷贝后的对象,如果原对象的属性值发生了变化,浅拷贝后的对象的属性值也会跟着发生变化。

   



   
   
   
   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值