java 中输入和输出流使用完后都需要关闭吗_java随笔

1.equals 方法本质就是 ==。引用对象不重写equals方法就是比较地址值

2.String 不是基础类型

3.java 中的 Math.round():正数网上取整,负数舍弃

4.字符串反转:StringBuilder /StringBuffre的reverse()方法

5.字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

6.Integer的值在-128—127之间,直接到常量池获取不用创建新对象

7.创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。

8.Object.wait()方法使用在同步锁当中

9.synchronized 和java.util.concurrent.locks.Lock的异同:

1.Lock 能完成synchronized所实现的所有功能

2.synchronized会自动释放锁,lock需要开发人员收到释放

并且最好在finally 块中释放

3.synchronized底层是利用了原生的c/c++实现,不可控。lock是纯java实现的锁机制

AQS(AbstractQueuedSynchronizer)

底层:三大核心->自旋、LockSupport、CAS

AQS具备特征:

·阻塞等待队列

·共享/独占

·公平/非公平

·可重入

·允许中断

CLH队列:没有拿到锁的线程由自旋变成阻塞

FIFO:先进先出

824a9da2a44fe5bdbbbcd2ca812ff8aa.png

参考:https://zhuanlan.zhihu.com/p/60884042

10.所谓设计模式,就是一套被反复使用的代码设计经验的总结

11.单例饿汉式可以避免并发出现多个实例问题,线程安全

12.springcloud的五大常用组件:zuul网关,Eureka 注册中心,Ribbon 客户端负载均衡,Hystrix熔断机制,springcloud Config分布式配置

13.mysql的Explain使用了解参数含义

查询优化:

http://1.in 和 exist用法场景区分:数据集大的in数据集小的,反之用exist

2.order by字段 尽量使用索引,mysql排序使用index和filesort两种方式

锁机制:

分类:按操作分为 读锁(共享锁) 写锁(排他锁)

按操作颗粒度分为:

表锁 偏向MyISAM存储引擎,开销小,加速块;无死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

行锁 ·偏向InnoDB存储引擎,开销大,加锁慢;会出现死锁;锁定力度最小,发生锁冲突的概率最低,并发度也最高。

·表中没有索引就升级为表锁

间隙锁(GAP):(不建议使用)当我们用范围

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值