自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hf : )的博客

就当做学习笔记吧

  • 博客(31)
  • 收藏
  • 关注

转载 数据库 MySQL索引

面试的时候经常问到数据库,一谈到数据库就离不开索引,特此学习一波索引。这个博客写得很全:https://blog.csdn.net/suifeng3051/article/details/52669644数据库索引1.索引的意义    没有索引的话,查询数据时数据库就得进行全表扫描,数据量一大起来效率可想而知。2.索引的实现    2.1 数据结构的选取    目前大部分数据库系统及文件系统都采用...

2018-05-23 20:13:03 190

转载 TCP 长连接和短连接

那天面试官抓着问了几个长连接和短连接的问题,一脸懵逼,今天上课时想起来好好查了一下。HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。TCP的连接和关闭:https://blog.csdn.net/qq_35546040/article/details/802809001.概念TCP短连接:(在HTTP/1.0中,默认使用的是短连接。)客户端浏...

2018-05-23 16:23:55 213

原创 算法题 求第K大的数

题目描述:在乱序数组中求第K大的数思路:立刻想到的是当然先排序然后取数。但是提问者明显不是想这么解。上网查了下原来是快排思路。利用快排的思想,从数组arr中随机找出一个元素X,把数组分成两部分arr_a和arr_b。arr_a中的元素比x大,arr_b中的元素比x小。这个时候分为两种情况:1.arr_a中的元素个数小于K,则第K大数在arr_b中2.arr_a中的元素大于...

2018-05-22 20:22:09 1694

原创 算法题 快排实现(好记)

快排是一种很重要的排序,没事敲几遍复习一下,不然忘了。public class QuickSort { public static void main(String[] args) { int[] a = {5,3,6,7}; quickSort(a,0,a.length-1); for(int i=0;i<a.length;i++) System.out...

2018-05-22 19:39:43 698

原创 算法题 最长无重复字符子串

Leetcode 上的一道题无重复字符的最长子串给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列  而不

2018-05-21 13:52:41 204

原创 算法题 打印从左方向看到的二叉树

头条面试官问的一个问题,当时居然没写出来,难受。(树和队列练得少)题目描述:打印从左往右看到的二叉树(就是打印每层第一个节点)思路:按层换行打印改动一下,加个标记位解决。 按层换行打印:https://blog.csdn.net/qq_35546040/article/details/80389381代码:import java.util.LinkedLis...

2018-05-21 11:19:10 4711 1

转载 算法题 按层次换行打印二叉树

题目描述:将一颗二叉树按层次打印,打印一层换行思路:关键在于判断何时换行,这里采用的是一个last记录每层的最后一节点。代码:import java.util.LinkedList;import java.util.Queue;public class Tree { TreeNode last; TreeNode nlast; public void printTre...

2018-05-21 10:59:41 1200

原创 算法题 螺旋矩阵Ⅰ/Ⅱ

题目描述:输入一个整数N,螺旋输出N*N矩阵例如:输入:4矩阵:1    2    3    45    6    7    89    10    11    1213    14    15    16输出:1     2    3    4    8    12    16    15    14    13    9    5    6    7    11    10思路:分层考虑,由外...

2018-05-20 14:43:38 424

转载 算法题 硬币组合问题

原文:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html问题描述  假设我们有8种不同面值的硬币{1,2,5,10,20,50,100,200},用这些硬币组合够成一个给定的数值n。例如n=200,那么一种可能的组合方式为 200 = 3 * 1 + 1*2 + 1*5 + 2*20 + 1 * 50 + 1 * 100....

2018-05-20 13:56:25 8694

原创 算法题 单链表O(1)时间删除给定节点

今天听说能用O(1)删除链表节点,惊了,赶紧查了下怎么回事。http://www.cnblogs.com/bakari/p/4013812.html题目是这样的:给定头节点和目标节点,删除目标节点。public void deleteInO1(Node head,Node t){    //TODO}以往我们都是遍历一遍链表找到目标节点的前驱节点,然后指来指去解决。今天,学了一招叫做“狸猫换太...

2018-05-16 19:29:40 1860

转载 数据库 锁机制

https://www.cnblogs.com/houan/p/6253293.htmlhttps://blog.csdn.net/samjustin1/article/details/52210125一、为什么需要了解锁1.1 死锁问题1.2 并发问题导致的不正确数据的读取和存储,破坏数据一致性的丢失更新脏读不可重复读幻读二、锁的分类2.1 数据库维度共享锁(Shared lock,读锁):用于...

2018-05-15 19:21:40 126

转载 Java equals与==区别

http://www.cnblogs.com/dolphin0520/总结来说:  1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;    如果作用于引用类型的变量,则比较的是所指向的对象的地址  2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量    如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;   ...

2018-05-13 12:06:28 84

转载 Java 集合类中的常用类

Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成。首先java中集合类主要有两大分支:(1)Collection (2)Map先看它们的类图:(1)Collection(2)Map 粗略一看一堆类很吓人,但其实用起来很方便很简单。先看看Collection下的东西:List:1.可以允许重复的对象。2.可以插入多个null元素。3.是一个...

2018-05-12 19:35:39 9226

转载 数据库 事务隔离级别

在数据库操作中,为了有效保证并发读取数据的正确性,提出的事务隔离级别。数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况。1.更新丢失:两个事务都同时更新一行数据,一个事务对数据的更新把另一个事务对数据的更新覆盖了。这是因为系统没有执行任何的锁                           操作,因此并发事务并没有被隔离开来。2.脏读:一个事务读取到了另一个...

2018-05-12 15:33:05 173

原创 算法题 只出现一次的数字Ⅰ/Ⅱ/Ⅲ

136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路:本来使用HashMap做,后来才知道这是位运算方面的题,惭愧。           由于其他元素都出现了两次,因此把全部元素亦或一下,结果就出来了。。class Solution { public static int singleNumber(int[] ...

2018-05-11 18:27:04 8250 5

转载 TCP连接和关闭

TCP建立连接:三次握手TCP关闭连接:四次挥手time_wait状态产生的原因1)为实现TCP全双工连接的可靠释放由TCP状态变迁图可知,假设发起主动关闭的一方(client)最后发送的ACK在网络中丢失,由于TCP协议的重传机制,执行被动关闭的一方(server)将会重发其FIN,在该FIN到达client之前,client必须维护这条连接状态,也就说这条T...

2018-05-11 14:37:24 7616

原创 算法题 两/三/K数之和为Sum+不定项和为Sum

两数之和给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路:第一种方法是拿Map存储值和下标,然后遍历数组,用containskey函数判断是否存在tar...

2018-05-11 11:15:36 630

原创 Java 多线程学习——生产者消费者简单实现

Storage.java 仓库类package threads;/** * *@author CJY *@date 2018年5月7日 下午2:20:38 * */import java.util.LinkedList;public class Storage{ // 仓库最大存储量 private final int MAX_SIZE = 100; ...

2018-05-10 16:43:34 182

转载 Java 多线程学习——多线程实现和线程状态转换

概念进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位)  线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)实现多线程常用方式:1.继承Thread类2.实现Runable接口(推荐)...

2018-05-10 16:14:58 123

转载 Java 多线程学习——四种自带线程池的使用

Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newSingl...

2018-05-08 19:56:47 133

转载 Java volatile关键字

首先,我们得知道Java内存模型基于此种内存模型,便产生了多线程编程中的数据“脏读”等问题。举个简单的例子:在java中,执行下面这个语句:1i  = 10++;执行线程必须先在自己的工作线程中对变量i所在的缓存行进行赋值操作,然后再写入主存当中。而不是直接将数值10写入主存当中。由于不同线程读写时机先后顺序的不同,可能产生不同的结果。这就是著名的缓存一致性问题。当一个共享变量被volatile修...

2018-05-05 14:08:47 99

转载 Java Integer和int的区别

Integer是int的包装类int是Java的基本数据类型原始类型:boolean,char,byte,short,int,long,float,double包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Doubleint的初值为0,Ingeter的初值为nullpublic class TestInteger {      publi...

2018-05-05 11:17:37 87

转载 分布式 一致性哈希算法

一致性哈希算法,作为分布式计算的数据分配参考,比传统的取模,划段都好很多传统哈希取模,在数据需要迁移时代价巨大,因此需要优化。将哈希值看作一个环,顺时针将哈希值接近节点的对象存到对应节点。通过这种算法做数据分布,在增减节点的时候,可以大大减少数据的迁移规模。此时,可能会出现一个问题,那就是哈希环的偏斜。(节点集中在某区域导致数据分布不均)引入 虚拟节点 解决。http://www.zsythink...

2018-05-04 10:45:51 147

转载 Java GC垃圾回收机制

发现无用信息对象算法1.引用计数法优点:实现简单,而且效率较高缺点:无法解决循环引用问题2.可达性分析(根搜索算法,tracing算法)根搜索算法是从离散数学中的图论引入的,程序把所有的引用关系看作一张图,从一个节点GC ROOT开始,寻找对应的引用节点,找到这个节点以后,继续寻找这个节点的引用节点,当所有的引用节点寻找完毕之后,剩余的节点则被认为是没有被引用到的节点,即无用的节点。垃圾收集算法:...

2018-05-04 10:40:59 95

转载 Java JMM-JavaMemoryModel

参考:https://blog.csdn.net/bruce128/article/details/79357870

2018-05-04 10:35:39 190

转载 Java Error和Exception

Error和Exception的联系继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception。Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception)。Error和Exception的区别Error类一般是指与虚拟机...

2018-05-04 10:34:26 103

转载 Java 多线程学习——结束正在运行的线程

stop( )不安全1. 使用共享变量的方式在这种方式中,之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号,通知中断线程的执行。public class ThreadFlag extends Thread {     public volatile boolean exit = false;     public void run()     {         ...

2018-05-04 10:28:41 183

转载 Java 类加载双亲委派模型

使用双亲委派模型的好处在于Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Object,它存在在rt.jar中,无论哪一个类加载器要加载这个类,最终都是委派给处于模型最顶端的Bootstrap ClassLoader进行加载,因此Object类在程序的各种类加载器环境中都是同一个类。相反,如果没有双亲委派模型而是由各个类加载器自行加载的话,如果用户编写了一个...

2018-05-04 10:28:25 162

转载 算法题 判断链表是否有环,求环的入口点及环长

a为环入口点到头结点的路程,x为相遇点到环入口点的路程。我们假设slow指针走过的路程为s,那么fast指针走过的路程则为2s,假设环长为c。且有2s = s + ncs = a + x有上述式子,我们可以得到a + x = nca = nc – xa = (n – 1)c + c -x如果在头结点位置和相遇点位置分别再派出两名跑步选手,并且他们都每次只跑一步,好像会在环的入口点相遇啊!https...

2018-05-04 10:27:58 225

转载 数据库 SQL 行转列

学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键。本文以MySQL为基础,其他数据库会有些许语法不同。数据库数据:处理后效果:方法一:SELECT DISTINCT a.name,(SELECTscore FROM grade b WHERE a.name=b.name AND b.course...

2018-05-04 10:27:26 219

转载 MySQL Innodb和MyISAM的区别

Innodb引擎Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM...

2018-05-04 10:26:29 87

空空如也

空空如也

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

TA关注的人

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