当前位置: 首页 > 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.hkea.cn/news/14407274/

相关文章:

  • 自助建手机网站免费当当网网站建设策划书
  • 韶关做网站需要多少钱wordpress定时发布
  • 事业单位门户网站开发南沙营销网站建设
  • 全国新农村建设中心网站呼和浩特商城网站建设
  • 南宁市兴宁建设局网站宜良县建设局网站
  • 温州网站推广驭明视频网站后台登陆
  • 网站建设主题深圳网站建设去哪里
  • 个人网站建设维护微信号 网站模板
  • 专业网站建设报价道滘镇网站建设
  • 中国建设银行网站软件下载重庆网站建设软件
  • 电子商务网站开发的总结偷的网站怎么做seo
  • 网站建设 正邦医院如何做网站策划?
  • 上海住房城乡建设部网站学网站建设与管理难吗
  • 网站后台的关键词搜狗新闻源网站怎么做
  • 深圳宝安区医院wordpress seo
  • 怎么免费建网站个人网站可以做论坛么
  • 佛山外贸型网站建设公司制作小公司网站教程
  • 黄冈网站建设公司运动鞋的网站建设规划书
  • 苏州企业如何建站网站美工建设软件下载
  • 免费建设公司网站wordpress是英文
  • 网站建设优化推广哈尔滨如何在微信公众平台添加wordpress
  • 珠海网站建设杰作只用wordpress 主题
  • 深圳做网站的公司的区域搭建小程序需要准备什么
  • 做旅游网站平台合作入驻旅游网站开发的意义是什么
  • 石河子网站建设珠海网站开发维护科技公司
  • 临沂网站制作页面wordpress 使用浏览器缓存
  • 盐城做网站哪家好吴桥县网站建设公司
  • 顺德网站建设要多少钱爱采购网
  • php网站搭建环境搭建wordpress子站点用户无角色
  • 网站实施要求计算机本科论文 网站建设