-
String、StringBuilder、StringBuffer的区别?
相同点: 都可以储存和操作字符串 都使用 final 修饰,不能被继承 提供的 API 相似 区别: String 是只读字符串,String 对象内容是不能被改变的 StringBuffer 和 StringBuilder .... 盾给网
- 0
- 0
- 365
-
-
说一下HashMap的实现原理
HashMap 基于 Hash 算法实现,通过 put(key,value) 存储,get(key) 来获取 value 当传入 key 时,HashMap 会根据 key,调用 hash(Object key) 方法,计算出 hash 值,根据 hash 值将 value 保存在 Node 对象里,.... 盾给网
- 0
- 0
- 365
-
synchronized和ReentrantLock区别是什么?
synchronized 竞争锁时会一直等待;ReentrantLock 可以尝试获取锁,并得到获取结果synchronized 获取锁无法设置超时;ReentrantLock 可以设置获取锁的超时时间synchronized 无法实现公平锁;ReentrantLock 可以满足.... 盾给网
- 0
- 0
- 364
-
乐观锁与悲观锁是什么?
悲观锁(Pessimistic Lock):线程每次在处理共享数据时都会上锁,其他线程想处理数据就会阻塞直到获得锁。乐观锁(Optimistic Lock):线程每次在处理共享数据时都不会上锁,在更新时会通过数据的版本号等机制判断其他.... 盾给网
- 0
- 0
- 364
-
列值为NULL时,查询是否会用到索引?
MySQL 中存在 NULL 值的列也是走索引的计划对列进行索引,应尽量避免把它设置为可空,因为这会让 MySQL 难以优化引用了可空列的查询,同时增加了引擎的复杂度... 盾给网
- 0
- 0
- 361
-
高并发下,如何安全地修改同一行数据?
可以将数据加载到缓存中,利用 CAS 方式进行更新也可以将所有请求放到同一个消息队列里,异步返回,按顺序执行更新注意:如果使用悲观锁,在并发请求量很大的情况下,会导致服务和数据连接数耗尽,系统卡死... 盾给网
- 0
- 0
- 360
-
线程的run()方法和start()方法有什么区别?
启动一个线程需要调用 Thread 对象的 start() 方法调用线程的 start() 方法后,线程处于可运行状态,此时.... 盾给网
- 0
- 0
- 359
-
为什么String类被设计用final修饰?
String 类是最常用的类之一,为了效率,禁止被继承和重写 为了安全。String 类中有很多调用底层的本地方法,调用了操作系统的 API,如果方法可以重写,可能被植入恶意代码,破坏程序。Java 的安全性也体现在这里.... 盾给网
- 0
- 0
- 359
-
Oracle怎么分页?
Oracle 使用 rownum 进行分页select col1,col2 from ( select rownum r,col1,col2 from tablename where rownum <= 20 ) where r > 10... 盾给网
- 0
- 0
- 359
-
MySQL中TEXT数据类型的最大长度
TINYTEXT:256 bytesTEXT:65,535 bytes(64kb)MEDIUMTEXT:16,777,215 bytes(16MB)LONGTEXT:4,294,967,295 bytes(4GB)... 盾给网
- 0
- 0
- 358
-
Java中实现线程通信方式有哪些?
对象的 wait(long timeout)、wait(long timeout, int nanos)、wait() 方法,组合对象的 notify()、notifyA.... 盾给网
- 0
- 0
- 358




