当前位置: 首页 > news >正文

网站免费网站免费陪玩商标起名生成器

网站免费网站免费陪玩,商标起名生成器,佛山做网站公司哪家好,网站改版 内容1.java常用集合 ArrayList动态数组#xff0c;动态调整大小#xff0c;实现List接口 LinkedList双向链表#xff0c;实现list和queue接口#xff0c;适用于频繁插入和删除操作 HashSet无序#xff0c;使用哈希表实现 TreeSet有序#xff0c;使用红黑树实现 HashMap无序动态调整大小实现List接口 LinkedList双向链表实现list和queue接口适用于频繁插入和删除操作 HashSet无序使用哈希表实现 TreeSet有序使用红黑树实现 HashMap无序使用哈希表 TreeMap有序使用红黑树 LinkedHashMap有序使用哈希表和双向链表保持插入顺序 Queue队列 PriorityQueue优先队列按照优先级排序 Stack栈后进先出 2.红黑树相比b树的区别和使用场景 应用场景java集合中的TreeSet和TreeMapHashMap链表大于8转化红黑树cpp的stl中的set和maplinux虚拟内存的管理 红黑树相比b树的优点rbt用于内部排序而bt用于外存是一个磁盘友好的数据结构红黑树具有较快的插入删除查找的时间复杂度 3.ArrayList和LinkedList对比 1.ArrayList是动态数组LinkedList是链表 2.随机访问array快linked增加删除快 3.arraylist需要手动设置固定大小link自由度动态变化 4.arraylist扩容到1.5倍 4.ArrayList使用注意事项 1.线程不安全问题1两个线程同时添加元素判断ensureCapacity都成功导致数组越界 2.线程不安全问题2元素值覆盖为空问题多线程同时写入 安全处理synchronizedList给add加锁copyonwirteArrayList写时复制使用ThreadLocal确保线程封闭性 5.java线程池核心参数 corePoolSize核心线程数没有任务时线程池的基本大小 maximunPoolSize线程池最大的线程数量 keepAliveTime大于core时多余的空闲线程在等待时期最长存活时间 unitkeepAliveTime时间单位 workQueue存放待执行任务的阻塞队列 threadFactory创建新线程的工厂类 handler当线程池到达最大线程数量且任务队列已满常见策略有抛出一场、丢弃任务、丢弃最老任务、直接在调用者线程个中执行 6.线程池工作原理 1.小于core直接创建并执行在核心线程池 2.大于等于core加入队列等待 3.queue满创建非核心线程并立刻执行 4.queue满大于等于maxhandler处理 5.任务执行完移除同时取下一个线程 6.空闲时间超过alivetime且大于core会停止回收多出来的线程 7.为什么要用阻塞队列 1.协调和控制线程执行防止任务丢失或积压 2.任务缓冲确保不会立即执行有效平衡任务的生产和消费速度 3.线程管理当线程池线程忙碌时新任务在队列中等待 如果使用非阻塞队列会产生 1.线程数不受控制耗尽资源 2.任务丢失如果队列已满新任务立刻丢弃 3.竞态条件可能会导致数据一致性问题 8.hashMap的rehash 每个键的hashCode处以桶数组大小lenrehash的意思就是len变大但是还是均匀的 9.CPU密集时如何设计线程池 采用cpu核数1个线程1保证发生缺页中断阻塞时额外的线程可以顶上去 最理想cpu所有的核心都在运行线程池中的线程 10.io密集如何设计线程池 最佳线程数 1 io耗时/cpu耗时从而提高cpu和io的利用率 11.threadlocal原理和使用场景 指线程本地变量使得每个变量副本对于每一个 线程都是独立的实现变量隔离性。 每个线程都有一个成员变量threadlocalmap可以用来存数据 使用场景 1.全局存储用户信息 2.进行线程隔离的变量使用threadlocal进行封装 3.多个方法使用同一个对象时使用threadlocal替代参数的传递减少代码耦合例如transaction中的就使用了threadlocal保存了connection 12.threadlocal使用注意 内存泄漏问题指程序中动态分配的堆内存由于某种原因没有释放或无法释放造成内存浪费导致系统崩溃最后堆积导致内存溢出。 由于entry对象被弱引用修饰会在下次垃圾回收中清除掉实现threadlocal和线程生命周期的解绑 这个时候entry的key是null但是threadlocalmap中存在current thread ref强引用因此value无法清楚。 因此需要我们手动remove掉entry对象。 使用弱引用的原因是因为在set和getEntry过程中会对key进行判断如果key是nullvalue也会设置为null这样即使忘了调用remove当threadlocal被销毁value值也会被清空 ThreadLocal中一个设计亮点是ThreadLocalMap中的Entry结构的Key用到了弱引用。试想如果使用强引用等于ThreadLocalMap中的所有数据都是与Thread的生命周期绑定这样很容易出现因为大量线程持续活跃导致的内存泄漏。使用了弱引用的话JVM触发GC回收弱引用后ThreadLocal在下一次调用get()、set()、remove()方法就可以删除那些ThreadLocalMap中Key为null的值起到了惰性删除释放内存的作用。 其次就是在ThreadLocalMap会存在相应的遍历来查看key为null的槽位并且进行删除哦~
http://www.hkea.cn/news/14505705/

相关文章:

  • 用什么网站做微信推送gis网站开发教程
  • dede网站模板怎么安装教程好的销售网站
  • 江苏城乡建设教育网站seo刷词工具在线
  • 用分布式做的网站中国制造网的网络营销方式
  • 网站顶部导航文件代码在吗网页设计工作室赚钱吗
  • 英文视频网站如何做外链免费网站开发软件
  • 海南网站建设软件小程序开发软件有哪些
  • 昆明高端seo怎么做网站关键词在线优化
  • 网站设计 培训免费二维码制作生成器
  • 做任务有q币的网站银川手机网站建设
  • 全国较好的网站建设公司做企业网站需要注意什么
  • 长宁企业网站制作网络营销和传统营销的区别
  • 凡科做的网站百度能收录吗网站设计建设公司服务商
  • 破解软件网站推广引流渠道的论坛
  • 深圳教育集团网站建设九一制作厂网站app
  • 用jsp做留言板网站加强档案网站建设
  • 网站建设高校网络架构部
  • 零基础网站开发设计江门网站制作报价
  • 网站前台设计方案常州建站优化
  • 西宁网站开发电商网站开发经验
  • 深圳网站设计价格精品课程网站设计报告
  • 宝塔网站做301重定向个人中心网页
  • 公司内部网站怎么建设企业网站建设官网
  • 国外源码下载网站手机上怎么建网站
  • 网站开发的ie兼容做到9湖南郴州市房价多少一平米
  • 齐河网站建设价格精准营销包括哪几个方面
  • 怎么做刷题网站个人网页可以做什么内容
  • 专门做特价的网站牡丹菏泽网站建设
  • 设计公司网站设计方案找人做网站大概多少钱
  • 做微信平台网站需要多少钱推广学校网站怎么做