自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java 线程池 理解

1. 前言无限制创建线程的不足:1) 线程生命周期开销高;2) 资源消耗大,尤其是内存。如果可运行的线程数量多于可用处理器的数量,那么有些线程将闲置。大量空闲的线程占用许多内存,给垃圾回收器带来压力(频繁 stop the world)。所以,如果已经拥有足够多的线程使所有CPU保持忙碌状态,那么创建再多的线程反而会降低性能。3) 稳定性。可创建线程的数量存在一定限制。...

2019-07-27 16:53:00 175

转载 闭锁,信号量,栅栏

1. 闭锁(countDownLatch)1.1. 作用:相当于一扇门,在闭锁到达结束状态之前,这扇门是关着的,所以的线程都不允许通过,当闭锁到达结束状态,这扇门打开并允许所有的线程通过。在闭锁达到结束状态后,将不会再改变状态,这扇门永远处于打开状态。1.2. 闭锁使用场景1) 确保某个计算在其所有资源都被初始化之后才继续执行;2) 确保某个服务在...

2019-07-20 17:01:00 501

转载 spring Ioc及aop

IoC概念  所谓控制反转,指的是获取对象的方式发生了反转。在传统面向对象编程中,我们都是在要使用某一个对象实例时创建一个对象实例,对象的控制权在我们自己手里,如果对于一个接口的多个实现类,我们要自己选择判断使用具体的实现类,使得我们进行软件开发耦合度高,维护起来不方便;spring的IOC则是将某一接口的具体实现类的选择控制权从调用者中移除,转由spring容器进行控制。在sp...

2019-06-16 22:07:00 115

转载 平衡二叉树,B树

AVL树(平衡二叉树)AVL树本质上是一颗二叉查找树,但是它又具有以下特点:1、 它是一棵空树或它的左右两个子树的高度差的绝对值不超过12、 左右两个子树都是一棵平衡二叉树。AVL树解决了普通二叉查找树演化为线性导致线性查找时间问题AVL树平衡的操作主要有:1、左-左型:做右旋。2、右-右型:做左旋转。3、左-右型:先做左旋,后做右旋。4、右-...

2019-06-01 21:56:00 140

转载 数据库三范式、事务

三范式第一范式(1NF)  在一张表中,组成表的每一个属性都是不能再分的属性,如果满足这一规则,则该表符合第一范式。 表1(不符合) 表2(符合)  表1的Info字段可以再拆分,...

2019-05-30 23:31:00 124

转载 数据结构之树

线索二叉树/** * 线索二叉树:普通二叉树的遍历操作,需要用到栈来实现递归操作,而线索二叉树,因为其保存了前驱和后继,在遍历操作中不需 * 要使用栈来递归,直接根据后继一直遍历,直到回到初始头结点,对比普通二叉树避免了频繁的入栈出栈操作,故在时间和空间上 * 都比较节省 * @author HP * */public class ListOfBi...

2019-05-12 18:12:00 89

转载 jdk1.8 ConcurrentHashMap 源码学习

上次讲到HashMap,但是HashMap并不是线程安全的,那么有哪些线程安全的Map或者是实现线程安全的map呢?1、 HashTable(已弃用),使用的是内置对象锁对map进行同步,并发执行的效率比较低(key和value均不能为null,因为这是用在多线程的,当get返回null时,无法确定是不包含这个key还是值为null,hashMap允许key为null,因为运行...

2019-05-11 01:07:00 127

转载 浅谈 Java 之 GC

阅读本文假设你对java内存模型已有一些了解。1、Java虚拟机中哪些内存需要回收?  先来看看jvm内存模型,如下图     线程隔离的区域随线程而生,随线程而灭;程序计数器可保存着虚拟机字节码指令的地址(可以看做是当前线程所执行的字节码的行号指示器);栈中的栈帧(与方法关联)随着方法的进入和退出执行压栈出栈操作。既然每一个栈帧与方法关联,那每个栈帧分配多少内存基本上在...

2019-05-05 10:47:00 139

转载 求最长回文串

题目描述如下:能立刻想到的就是爆破,先试试无脑爆破,时间复杂度O(n^3),然后毫无意外的超时了,爆破代码如下:public String longestPalindrome(String s) { int max = 0; int length = s.length(); // 字符串长...

2019-04-28 17:56:00 79

转载 java并发编程可见性与线程封闭

可见性  所谓可见性,指的是当一个线程修改了对象的状态后,其他线程能够看到该对象发生的变化。在单线程环境下,向某个变量写入值,然后在后面的操作再读取,在这个过程中该变量的值对该线程来说总是可见。但是,在多线程环境下,可见性就不一定等到保证,例如,对于一个共享变量 share = 0 来说,线程1和线程2都进行share++ 操作,但是最终share 的结果并不一定是2。先看看一段代码...

2019-04-17 19:27:00 228

转载 hashMap源码学习记录

hashMap作为java开发面试最常考的一个题目之一,有必要花时间去阅读源码,了解底层实现原理。首先,让我们看看hashMap这个类有哪些属性 // hashMap初始数组容量 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 // 最大容量 stati...

2019-04-15 20:34:00 101

转载 数据结构之栈和队列

栈和队列是计算机中基本的两个数据结构,栈可以达到后进先出,队列可以先进先出。在实际应用上,我们可以使用栈进行逆序遍历链表,非递归中序遍历二叉树,括号匹配,函数调用等等;可以使用队列对二叉树进行层次遍历,打印机的打印服务,通信中的消息队列等等。下面贴几道关于栈和队列较常考的笔试/面试题。链表逆序遍历:思想很简单,当链表节点不为null就进行压栈,直到为null。cla...

2019-04-09 20:19:00 124

转载 计算机网络基本知识

今天来讲讲网络,主要将传输层和应用层的一些基础知识OSI七层模型:应用层(application)、表示层(presentation)、会话层(session)、传输层(transport)、网络层(network)、数据链路层(data)、物理层(physical/base)。用一句英语总结就是 all people seem to need data base. TCP/I...

2019-04-01 11:57:00 171

转载 数据结构第二章助教总结

    作为有意向成为一名程序员的我,到大三下因为做助教才开通博客,惭愧惭愧。好吧,入正题,说说对大一师弟师妹数据结构作业的一些感悟。  数据结构第二章讲的是线性表。对于线性表无非就是顺序表(数组)和链表,数组因为其地址在空间连续,可以进行随机存取,但是也因为连续,在进行增删的时候,需要进行数组元素的移动。其实对于数组来说,经常用来操作的就是对数组元素进行排序,然后对排好序...

2019-03-25 19:05:00 276

空空如也

空空如也

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

TA关注的人

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