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

行业网站建设深圳公司大什么的网站建设公司好

行业网站建设深圳公司,大什么的网站建设公司好,梅州在建高铁最新消息,门户网站的发展趋势JAVA篇 基础 1、自动拆箱和装箱 装箱#xff1a;装箱是将值类型#xff08;如int、double、struct等#xff09;转换为object类型或任何接口类型的过程。由于object是所有类型的基类#xff08;在.NET中#xff09;#xff0c;并且接口是引用类型#xff0c;因此装箱…JAVA篇 基础 1、自动拆箱和装箱 装箱装箱是将值类型如int、double、struct等转换为object类型或任何接口类型的过程。由于object是所有类型的基类在.NET中并且接口是引用类型因此装箱操作实际上是在堆Heap上分配一个新的对象并将值类型的值复制到该对象中。这个新分配的对象是对原始值类型值的引用包装。 例如 Integer i 19; 原因需要将值类型作为参数传递给接受object类型或接口类型的方法 拆箱拆箱是将之前装箱的对象转换回原始的值类型的过程。拆箱操作包括检查对象是否确实包含原始值类型的值并提取该值。 int n i; 实际案例 public static void main(String[] args) { // 创建一个ArrayList来存储Integer对象 ListInteger numbers new ArrayList(); // 装箱将int值添加到ArrayList中 numbers.add(5); // 这里自动发生了装箱int - Integer numbers.add(10); // 遍历ArrayList并打印每个元素 for (Integer number : numbers) { System.out.println(number); } // 拆箱从ArrayList中获取Integer对象并作为int值处理 // 假设我们知道列表中确实存储的是int值对应的Integer对象 int firstNumber numbers.get(0); // 这里自动发生了拆箱Integer - int System.out.println(第一个数字是 firstNumber); // 注意如果尝试从一个可能包含null的ArrayList中拆箱可能会引发NullPointerException // 因此在拆箱之前进行null检查是一个好习惯 } 2、接口和抽象类 共同点都不能直接实例化接口要通过实现类抽象类要通过继承才能创建具体的对象。 区别 接口主要是为了对类的行为进行约束而抽象类是为了代码复用强调从属关系。 一个类只能继承一个类包括抽象类但是可以实现多个接口一个接口也能继承多个接口。 接口中的成员变量只能是 public static final 类型的不能被修改且必须有初始值。抽象类的成员变量可以有任何修饰符private, protected, public可以在子类中被重新定义或赋值。 3、深拷贝和浅拷贝 浅拷贝浅拷贝在堆上创建一个新的对象但是如果当前对象内部属性是引用类型的话就直接拷贝引用的地址之后创建的新对象和原对象共用一个对象。 深拷贝完全复制整个对象包括这个对象内部的对象。 4、String、StringBuffer、StringBuilder String对象因为有final修饰符修饰所以不可变可以理解为常量线程安全。而另外2个继承自AbstractStringBuilder类没有修饰符所以可变。而且提供了一些修改字符串的方法可以使用比如append、insert这些。其中StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁所以是线程安全的。StringBuilder 并没有对方法进行加同步锁所以是非线程安全的。 集合 1、Map HashMap的实现 JDK1.8 之前 HashMap底层是数组和链表结合在一起使用也就是链表散列。HashMap通过key的 hashcode 经过扰动函数处理过后得到hash值然后通过 (n - 1)hash 判断当前元素存放的位置这里的 n 指的是数组的长度如果当前位置存在元素的话就判断该元素与要存入的元素的 hash 值以及 key 是否相同如果相同的话直接覆盖不相同就通过拉链法解决冲突。 JDK1.8 之后改为红黑树当链表长度大于阈值默认为 8将链表转换成红黑树前会判断如果当前数组的长度小于 64那么会选择先进行数组扩容而不是转换为红黑树时将链表转化为红黑树以减少搜索时间。 HashMap和HashTable的区别 线程安全方面table内部方法都用synchornized修饰、效率、null key和null value、底层数据结构 扩容不指定的话默认table为11扩充到2n1map默认为16扩充到2n。指定的话table直接使用指定的大小map会扩充为2的幂次。 HashMap为什么不安全Table为什么安全 因为在JDK1.8前hashmap如果在多线程情况下好几个线程同时对链表进行扩容会造成死循环。1.8之后也会有数据丢失的问题因为多个键值对被分到一个桶中采用红黑树进行存储多个线程操作可能因为时间片的问题导致同样哈希值的一个操作覆盖另一个操作结果不安全。 ConcurrentHashMap 和 Hashtable 的区别 ConcurrentHashMap1.7的时候采用分段思想segment。之后采用Node数组树的方式使用synchornized和CAS来操作。 Hashtable同一把锁synchornized效率比较低。 并发 1、CAS 全称是比较和交换通常用于乐观锁之中。乐观锁与悲观锁区别在对于共享资源访问时候不同的上锁方式悲观是默认修改每次都上锁一次只给一个线程使用。乐观锁默认不修改但是其他线程提交前需要判断是否有修改。CAS 的思想很简单就是用一个预期值和要更新的变量值进行比较两值相等才会进行更新。CAS 是一个原子操作底层依赖于一条 CPU 的原子指令。 2、ThreadLocal 想实现一个线程有自己的专属本地变量绑定自己的值。如果创建了一个ThreadLocal变量那么访问这个变量的每个线程都会有这个变量的本地副本线程使用 get() 和 set() 方法来获取默认值或将其值更改为当前线程所存的副本的值从而避免了线程安全问题。 3、线程池 降低资源消耗通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度当任务到达时任务可以不需要等到线程创建就能立即执行。提高线程的可管理性线程是稀缺资源如果无限制的创建不仅会消耗系统资源还会降低系统的稳定性使用线程池可以进行统一的分配调优和监控。
http://www.dnsts.com.cn/news/95549.html

相关文章:

  • 东莞网站优化公百度怎样收录到网站
  • 温州做网站技术员做外卖在哪个网站做好
  • 做美工要开通什么网站的会员呢哈尔滨网站建设2017
  • w网站建设如何制作百度网站地图
  • 营销型网站建设目的网站中文模板
  • 做那种类型的网站seo好国外的智慧城市建设网站
  • 网站建设一个人能做吗怎么开一个做网站的工作室
  • 网站建设新闻资讯济南做网站建设的公司
  • 哈尔滨做网站seo专业网站建设好不好
  • 旅游网页设计模板网站免费网站seo诊断评分63
  • 枣阳建设局网站空间租用网站模板
  • 网站做seo屏蔽搜索引擎重庆装修公司十大排名
  • 零食网站怎么做关键词搜索次数查询
  • 苏州手机网站建设服务网站开发用什么工具好
  • 上海整站优化公司石家庄网站推广报价
  • 广州网站建设要多少钱网站开发入哪个会计科目
  • 企业手机端网站设计模板电子商务网站建设实训 报告
  • 怎么做电子商务网站淘宝优惠券微网站开发
  • 公司微信网站开发做网站推广怎么样
  • 英文网站如何做关键词个人小程序
  • 珠海seo网站建设网站后台传照片 c windows temp 拒绝访问
  • 深圳做网站的公司的区域注册城乡规划师协会
  • thinkphp 网站下载应用商店下载2022最新版
  • 开个免费的网站多少钱设计公司展厅设计
  • 西安站简单网页模板免费下载
  • 厦门市建设工程造价网站旅游网站建设方案
  • 电商网站建设市场专业网络推广服务
  • 阜宁建设网站的公司wordpress固定导航
  • 怎样建网站得花多少钱工程私人承包协议书
  • 个人网站免费制作建一个大型网站多少钱