自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

转载 一篇就够 快速排序的原理及其java实现(递归与非递归)

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程

2020-06-03 18:50:58 369

转载 JMM理解整理

java内存模型JMM理解整理  什么是JMM  JMM即为JAVA 内存模型(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。JMM从java 5开始的JSR-133发布后,已经成熟和完善起来。  内存划分  JMM规定了内存主要划分为主内存和工作内存两

2020-05-27 16:44:35 266

转载 单例模式双检锁 volatile 详解

前言单例模式在平时算比较常见,有关java单例模式的写法有很多种,在这里分析一种比较好的写法。代码 public class Test { private volatile static Test instance; private Test() { } public static Test getInstance() { if (instance == null) { synchronize...

2020-05-12 11:42:19 335

原创 设计模式相关

https://www.runoob.com/design-pattern/design-pattern-tutorial.html

2020-05-09 18:00:52 104

转载 HashCode&identityHashCode与偏向锁

hashCode我们知道在Java中,一切对象都继承自java.lang.Object类。这个类中有一个可继承的方法叫hashCode()。它在Object类中的方法签名是这样的:public native int hashCode();可以看到,如果一个对象不覆盖这个方法,那它会继承Object类的实现,是一个native的方法。这个时候,它会根据对象的内存地址返回哈希值。所以我...

2020-05-06 15:34:13 1120 1

转载 ArrayList、LinkedList、Vector、HashSet、Treeset、HashMap、TreeMap的区别和适用场景

ArrayList与LinkedList的区别和适用场景Arraylist:优点:ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。缺点:因为地址连续,ArrayList要移动数据,所以插入和删除操作效率比较低。LinkedList:优点:LinkedList基于链表的数据结构,地址是任意的,所...

2020-05-05 10:53:20 1474

转载 数据库事务和四种隔离级别

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象的三大特性是"封装、"多态"、"继承"六大原则是"单一职责原则"、"开放封闭原则...

2020-05-04 20:09:41 197

转载 数据库四大特性及数据库隔离级别

本篇文章主要介绍数据库的四大特性ACID,以及说明一下数据库的隔离级别。如果想要说明一个数据库或者一个框架支持事务性操作,则必须要满足下面的四大特性1. 原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。失败回滚的操作事务,将不能对事物有任何影响。2. 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一...

2020-05-04 12:30:55 151

转载 MySQL - 常见的三种数据库存储引擎

数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是插件式存储引擎。查看存储引擎:我们可以用SHOW ENGINES; 来查询数据库的存储引擎。M...

2020-05-01 18:49:19 218 1

转载 一针见血系列: 一句话理解什么是happens-before

在程序运行过程中,所有的变更会先在寄存器或本地cache中完成,然后才会被拷贝到主存以跨越内存栅栏,此种跨越序列或顺序称为happens-before。注:happens-before本质是顺序,重点是跨越内存栅栏通常情况下,写操作必须要happens-before读操作,即写线程需要在所有读线程跨越内存栅栏之前完成自己的跨越动作,其所做的变更才能对其他线程可见。...

2020-04-27 12:06:11 363

转载 Java虚拟机:GC算法深度解析

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在前面的文章里介绍了可达性分析算法,它为我们解决了判定哪些对象可以回收的问题,接下来就该我们的垃圾收集算法出场了。不同的垃圾收集算法有各自不同的优缺点,在JVM实现中,往往不是采用单一的一种算法进行回收,而是采用几种不同的算法组合使用,来达到最好的收集效果。接下来详细介绍几种垃圾收集算法的思想及发展过程。 ...

2020-04-27 12:04:59 77

转载 jvm栈深度理解

什么是java栈深度?java栈深度有什么用?我们知道java栈是java虚拟机的一个重要的组成部分,在栈里进行线程操作,存放方法参数等等。栈在初始化过后是有一定的大小的。public class Test{private int count = 0;public void testAdd(){count ++;...

2020-04-27 12:03:34 940

转载 深入理解JVM

1 CPU和内存的交互了解jvm内存模型前,了解下cpu和计算机内存的交互情况。【因为Java虚拟机内存模型定义的访问操作与计算机十分相似】有篇很棒的文章,从cpu讲到内存模型:什么是java内存模型在计算机中,cpu和内存的交互最为频繁,相比内存,磁盘读写太慢,内存相当于高速的缓冲区。但是随着cpu的发展,内存的读写速度也远远赶不上cpu。因此cpu厂商在每颗cpu上加上高速缓存...

2020-04-27 11:58:06 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除