自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 阻塞队列

我们常接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了,它会对当前线程产生阻塞,比如一个线程从一个空的阻塞队...

2018-04-24 20:36:33 216

原创 n个节点的二叉树有多少种形态

【n个节点的二叉树有多少种形态(Catalan数)】分析过程: (1)先考虑只有一个节点的情形,设此时的形态有f(1)种,那么很明显f(1)=1(2)如果有两个节点呢?我们很自然想到,应该在f(1)的基础上考虑递推关系。那么,如果固定一个节点后,左右子树的分布情况为1=1+0=0+1,故有f(2) = f(1) + f(1)(3)如果有三个节点,(我们需要考虑固定两个节点的情况么?当然不,因为当节...

2018-04-03 20:12:31 9380

转载 创建对象的5种方式

1.使用new关键字这是最常见的创建对象的方法,并且也非常简单。通过使用这种方法我们可以调用任何我们需要调用的构造函数。1Employee emp1 = new Employee();1230: new           #19          // class org/programming/mitra/exercises/Employee3: dup4: invokespecial #21...

2018-04-02 16:40:12 304

转载 String、StringBuilder、 StringBuffer 深入分析 源码解析

一、String 大家经常会说使用“+”号连接String 字符串比StringBuffer慢,String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,那接下来我们详细分析一下为什么使用“+”号速度会慢,为什么String 对象是不可变1、final修饰类、引用变量、基本变量(1)、如果一个类被final修饰则这个类是不能被继承的,没有子类。String类是一...

2018-03-30 16:04:33 223

原创 GC 什么时候开始?

“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”在什么时候:1.新生代有一个Eden区和两个survivor区,首先将对象放入Eden区,如果空间不足就向其中的一个survivor区上放,如果仍然放不下就会引发一次发生在新生代的minor GC,将存活的对象放入另一个survivor区中,然后清空Eden和之前的那个survivor区的内存。在某次GC过程中,如果发现仍然又...

2018-03-29 20:09:55 3203

原创 什么是CAS机制?

在理解CAS机制前我们先了解一段代码:示例程序:启动两个线程,每个线程中让静态变量count循环累加100次。public static int count = 0;public static void main(String[] args) { for (int i = 0; i < 2; i++) { new Thread( n...

2018-03-27 18:20:44 251

原创 如何在页面中嵌入自己写的Javascript脚本呢?

Chrome:1. 打开chrome扩展程序页 - chrome://extensions2. 将刚才的自定义脚本保存为以user.js为后缀的 .js文件,例如test.user.js,拖入扩展程序页。3. 重启浏览器。FireFox:1. 下载并安装用户脚本管理插件 greasemonkey (中文翻译成“油猴子”)。2. 重启浏览器。3. 将刚才的自定义脚本保存为 .js文件,例如test....

2018-03-27 17:38:37 10671 1

原创 TCP三次握手过程

 TCP三次握手过程1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪佧序列...

2018-03-20 18:19:55 258

原创 TCP与UDP的区别?

1、TCP基于面向连接的。UDP无连接。2、TCP对系统资源要求较高。UDP对系统资源要求较少。3、UDP程序结构较简单。4、TCP基于流模式。UDP基于数据报模式。5、TCP保证数据正确性,UDP可能丢包。TCP保证数据顺序,UDP不保证。...

2018-03-20 18:19:23 395

转载 LinkedList源码解析

在数组/ArrayList中读取和存储(get/set)的性能非常高,为O(1),但插入(add(int index, E element))和删除(remove(int index))却花费了O(N)时间,效率并不高。今天我们来看Java中的另一种List即LinkedList,LinkedList是基于双向链表来实现的,,HashMap和链表也有关系,所以我们要先讲它,话不多说,上代码。这段代...

2018-03-20 09:53:10 176

原创 如何使用intelij IDEA 显示一个类的所有方法?与eclipse的outline视图类似

2018-03-20 08:20:26 2415

原创 分布式事务的一些理解。

什么是分布式事务?分布式事务用于在分布式系统中保证不同节点之间的数据一致性。分布式事务的实现有很多种,最具有代表性的是由Oracle Tuxedo系统提出的XA分布式事务协议。XA协议包含两阶段提交(2PC)和三阶段提交(3PC)两种实现,这里我们重点介绍两阶段提交的具体过程。所谓什么是两阶段提交的呢?我们可以列举玩魔兽世界的例子,XA协议的运作方式和魔兽世界中的团队写作有些相似。在游戏当中我们会...

2018-03-19 18:33:48 295

原创 数据库事务的一些面试问题

 事务作为单个逻辑工作单元执行的一系列操作。事务的特性:①原子性:事务作为一个整体被执行,要么全部执行,要么全部不执行。②一致性:保证数据库的状态从一个一致状态转变为另一个一致状态。③隔离性:多个事务并发执行时,一个事务的执行并不影响其他事务的执行。④持久性:一个事务一旦提交,对数据库的修改应该永久保存。事务的并发访问问题(由隔离性引起):①脏读:B事务读取到了A事务尚未提交的数据。②不可重复读:...

2018-03-19 18:21:26 2528 1

原创 ArrayList JDK7 源码解析

ArrayList基于数组实现。1、可以允许null值,可以允许重复元素。2、有序3、异步private transient Object[] elementData;初始化一个Object[]数组。public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw n...

2018-03-19 18:02:38 299

原创 java模拟实现栈的一系列操作

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素(先进后出原则)。而我们需要实现一个栈,带有出栈(pop),入栈(push),...

2018-03-14 18:22:00 563

原创 分享一些杭电OJ刷的算法题思路

杭电oj的题刚开始还是很基础的,按我们正常思路,用Scanner输入一个整数a,一个整数b,然后相加即可,然而提交代码审核不过,温馨提示(提交代码的时候类名必须是Main,不能包含包名),然后考虑这种方式只能测试一次,不能循环测试下去,于是,我又写了个while循环,可以无限的测试下去,奇怪的是竟然就这么通过了,本人感觉掌握方法即可,不需要考虑这么多。附代码截图。...

2018-03-12 21:30:02 2231

原创 HashMap为什么初始容量为2的次幂

根据HashMap源码获取元素的位置indexFor()方法h为插入元素的hashcode值length为Map的容量&:与操作 比如 1101 & 1011=1001若length为2的次幂,length-1转化为二进制必定为1111.......,在于h的二进制操作与操作效率非常快,而且不浪费空间。若length不是2的次幂,例如length为 15,length-

2018-01-15 16:12:38 1381

原创 SpringMVC(SSM)获取网页数据和传出数据的几种方式

提供了解决SSM框架,提交到数据库乱码的解决办法。

2017-12-15 20:27:10 607

原创 面试技巧

可能总结的不是太全面,毕竟我的经验也不是太多,不过真诚的希望总结这些东西能帮助到读者,后期会补充内容,同时也预祝大家在计算机领域都能找到一个满意、薪水高的工作。大家一起努力,加油!!!

2017-12-15 18:48:34 281

Java面试宝典

Java面试宝典,从基础到扩展,Java面试宝典,从基础到扩展,Java面试宝典,从基础到扩展,Java面试宝典,从基础到扩展,

2018-05-22

空空如也

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

TA关注的人

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