![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
William、、、
这个作者很懒,什么都没留下…
展开
-
synchronized锁
偏向所锁,轻量级锁都是乐观锁,重量级锁是悲观锁。 一个对象刚开始实例化的时候,没有任何线程来访问它的时候。它是可偏向的,意味着,它现在认为只可能有一个线程来访问它,所以当第一个 线程来访问它的时候,它会偏向这个线程,此时,对象持有偏向锁。偏向第一个线程,这个线程在修改对象头成为偏向锁的时候使用CAS操作,并将 对象头中的ThreadID改成自己的ID,之后再次访问这个对象时,只需要对比ID,不需要...原创 2020-04-21 15:46:29 · 86 阅读 · 0 评论 -
Java 基础知识回顾(一)
java基础第一章节 1.面向过程和面向对象的区别 面向过程 优点: 性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发 缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更...原创 2019-04-28 21:02:05 · 315 阅读 · 0 评论 -
排序算法 python手搓
快排 def quick_sort(arr): """快速排序""" if len(arr) < 2: return arr # 选取基准,随便选哪个都可以,选中间的便于理解 mid = arr[0] # 定义基准值左右两个数列 left, right = [], [] # 从原始数组中移除基准值 arr.rem...原创 2019-10-22 14:40:15 · 149 阅读 · 0 评论 -
Java集合框架面试题
Arraylist 与 LinkedList 异同 是否保证线程安全:arraylist和linklist都是不同步的,也是不保证线程安全的 底层数据结构:arraylist底层是object数组;linkedlist底层是双向链表结构(JDK1.7取消了循环链表), 插入和删除是否受到元素位置的影响:①ArrayList数组存储,插入删除的时间复杂度受到元素位置的影响 比如:执行add(E e...转载 2019-05-08 15:15:29 · 170 阅读 · 0 评论 -
Java 并发基础常见面试题总结
什么是线程和进程 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。 Java 程序天生就是多线程程序,我们可以通过 JMX 来看一下一个...原创 2019-05-13 20:15:49 · 67 阅读 · 0 评论 -
关于hashCode方法的作用
想要明白hashcode作用,首先要明白java中的集合 总的来说,java集合有两类,set和list list有序,可以重复 set无序,不可以重复 保证元素不重复需要通过什么来判断呢? object.equals方法,如果每次增减都检查一遍效率很低 初学者可以这样理解,hashCode方法实际上返回的就是对象存储的物理地址(实际可能并不是)。 这样一来,当集合要添加新的元素时,先调用这个元...转载 2019-05-06 15:58:33 · 88 阅读 · 0 评论 -
ArrayList 源码学习
int 和Integer 1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0 1、由于Integer变量实际上是对一个Intege...转载 2019-05-10 08:29:15 · 84 阅读 · 0 评论