自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 剑指Offer

二维数组中的查找替换空格 转载于:https://www.cnblogs.com/strawqqhat/p/10602152.html

2019-03-26 17:41:00 249

转载 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { int count = 0;...

2019-03-26 17:40:00 208

转载 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector<int...

2019-03-26 14:53:00 191

转载 删除链表中所有重复元素

public ListNode deleteDuplication(ListNode pHead){ //LinkedHashMap可以按照输入的顺序进行输出 LinkedHashMap<Integer,Integer> map = new LinkedHashMap<>(); ListNode current = p...

2019-03-26 14:15:00 702

转载 面试题之String str = new String("abc"); 创建了几个对象

今天去面试的时候碰到了这个问题:String str = new String("abc"); 创建了几个对象,回来自己研究并查阅资料才发现答错了。。网上的争论不少,有的说是两个,答案应该是:两个或一个理由解释如下:都了解java 的字符串常量缓冲区(字符串池,字符串常量池),如果代码是这样的:[java]view plaincopy...

2019-03-26 13:58:00 170

转载 vector,linkedList与arrayList区别和适用场景

List接口一共有三个实现类,分别是ArrayList、Vector和LinkedList。List用于存放多个元素,能够维护元素的次序,并且允许元素的重复。 3个具体实现类的相关区别如下:ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不...

2019-03-26 13:56:00 88

转载 分库分表是什么,什么情况下需要用分库分表

1、什么是分库分表?顾名思义,即把存于一个库的数据分散到多个库中,把存于一个表的数据分散到多个表中。2、什么情况下需要分库分表?当一个数据库被创建之后,随着时间的推移和业务量的增加,数据库中表以及表中的数据量就会越来越多,就有可能出现两种弊端:(1)数据库的存储资源是有限的,其负载能力也是有限的,数据的大量积累肯定会导致其处理数据的能力下降;...

2019-03-26 13:48:00 1360

转载 内存泄漏与内存溢出的区别

内存溢出: 是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个Integer,但给他存了long才能存下的数,那就是内存溢出。内存泄漏: 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏危害可以忽略,但内存泄漏堆积后果很严重,无论多少内存迟早会被占光。内存溢出的原...

2019-03-26 13:32:00 1242

转载 头条java 后台一面凉经

链接:https://www.nowcoder.com/discuss/142537下午三点视频面:一上来怼jvm和gc1.讲讲jvm运行时数据库区https://blog.csdn.net/strawqqhat/article/details/888078352.讲讲你知道的垃圾回收算法https://blog.csdn.net/s...

2019-03-25 22:47:00 83

转载 JVM运行时数据区

线程私有的数据区程序计数器: 作用:记录当前线程锁执行到的字节码的行号。字节码解释器工作的时候就是通过改变你这个计数器的值来选取下一条需要执行的字节码指令。 意义:JVM的多线程是通过线程轮流切换并分配处理器来实现的,对于我们来说的并行事实上一个处理器也只会执行一条线程中的指令。所以,为了保证各线程指令的安全顺利执行,每个线程都有...

2019-03-25 22:44:00 53

转载 查找重复元素-JS

找出数组 arr 中重复出现过的元素示例1输入[1, 2, 4, 4, 3, 3, 1, 5, 3]输出[1, 3, 4]function duplicates(arr) { var result = []; arr.forEach(function(elem){ if(arr.indexOf(elem) ...

2019-03-25 21:00:00 120

转载 移除数组中的元素-JS

移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回示例1输入[1, 2, 2, 3, 4, 2, 2], 2输出[1, 3, 4]链接:https://www.nowcoder.com/questionTerminal/a93dd26ebb8c425d844acc17bcce9...

2019-03-25 18:33:00 70

转载 数组求和-JS

计算给定数组 arr 中所有元素的总和输入描述:数组中的元素均为 Number 类型示例1输入[ 1, 2, 3, 4 ]输出10不考虑算法复杂度,用递归做: 1 2 3 4 5 6 7 8 9 10 function ...

2019-03-25 18:21:00 143

转载 阿里巴巴java开发北美on campus面经(10.27)

链接:https://www.nowcoder.com/discuss/137599目录自我介绍Object类的方法,逐个解释一下(clone,hashCode,equals,wait,finalize,notify)讨论了下堆排序spring ioc/aop手写快排/冒泡排序进程线程的基本概念TCP/UDP区别 使用场合...

2019-03-25 14:45:00 62

转载 TCP、UDP的区别和分别使用的场合

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP: UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。 即使是出现网络拥堵的情况下,UDP也无法进行流量控制...

2019-03-25 14:45:00 225

转载 手写冒泡排序

严格定义下的写法void bubbleSort(int array[], int length){ for(int i=0;i<length;i++){ for(int j=0;j<length-i;j++){ if(array[j-1]>array[j]) swap(array[j-1],a...

2019-03-25 14:08:00 237

转载 Spring中IoC和AOP的理解

目录Spring的优点什么事DI机制?什么事AOP?AOP框架具有的两个特征:Spring的优点1、降低了组件之间的耦合性,实现了软件各层之间的解耦。2、可以使用容易提供的众多服务,如事务管理,消息服务等。3、容器提供单例模式支持。4、容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能。5、容...

2019-03-25 13:59:00 149

转载 Object类的方法

Object类一共有13个方法1、clone方法:保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是Java里除了8种基本类型传参数是值传递,其他的对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这时就需要在类中书写clone方法。2、...

2019-03-25 11:19:00 104

转载 阿里技术开发(java)一面面经

链接:https://www.nowcoder.com/discuss/89653目录1、你比较了解的机器学习的算法有哪些,说一下这些算法的过程和区别(因为一开始就跟他坦白说了自己的情况,面试官还是很nice的,从你熟悉的东西入手)2、网络的体系结构分为哪五层,每层分别有哪些协议3、TCP和UDP的区别是什么,如果想发送即时消息应该用哪种...

2019-03-24 19:22:00 57

转载 Mysql的四种引擎介绍

1、MyISAM存储引擎 不支持事务,也不支持外键,优势是访问速度快,对事务完整性没有要求或者以select、insert为主的应用基本上可以用这个引擎来创建表。支持三种不同的存储格式,分别是:静态表、动态表、压缩表。静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的...

2019-03-24 19:16:00 76

转载 TCP如何保证消息顺序以及可靠性到达

TCP可靠性传输的工作原理1、停止等待协议2、连续ARQ协议TCP可靠性传输的实现1、以字节为单位的滑动窗口2、超时重传时间的选择3、选择确定SACK面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于T...

2019-03-24 16:19:00 219

转载 五层网络协议及其功能

OSI七层模型物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。五层体系结构物理层、数据链路层、网络层、运输层、应用层。各层的作用1、物理层:比特 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。 他的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后转化...

2019-03-24 14:55:00 327

转载 B树、B-树、B+树详解

(B树)B-树 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个...

2019-03-23 23:06:00 270

转载 百度一面面经

链接:https://www.nowcoder.com/discuss/111099写生产者/消费者代码(使用notify和wait实现)wait():进入临界区后的线程在运行到一部分后,发现进行后面的任务所需的资源还没有准备充分,所以调用wait()方法让线程阻塞,等待资源,同时释放临界区的锁,此时线程的状态也从runnable状态变为wa...

2019-03-23 15:37:00 45

转载 三次握手和四次挥手过程详解

三次握手过程理解第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号。第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个syn包(syn=k),即syn+ack包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务...

2019-03-23 15:32:00 106

转载 硬中断和软中断的区别

硬中断1、硬中断是由硬件产生的。比如像磁盘、网卡、键盘、时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。2、处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多...

2019-03-23 15:04:00 103

转载 生产者消费者问题(使用notify和wait设计)

设计:产品-product类;产品库:productRepository类生产者线程消费者线程product.javapublic class Product{ private String name; private long productNo; public Product(String name,long p...

2019-03-23 09:43:00 55

转载 数据库事务

一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:1、为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。 当事务被提交给了DBMS(...

2019-03-22 20:23:00 55

转载 线程池参数设置技巧

一、ThreadPoolExecutor的重要参数corePoolSize:核心线程数 核心线程会一直存活,及时没有任务需要执行 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭 queueCapacit...

2019-03-22 20:12:00 120

转载 线程池的七个参数

在Java中,我们一般通过集成Thread类和实现Runnnable接口,调用线程的start()方法实现线程的启动。但如果并发的数量很多,而且每个线程都是执行很短的时间便结束了,那样频繁的创建线程和销毁进程会大大的降低系统运行的效率。线程池正是为了解决多线程效率低的问题而产生的,他使得线程可以被复用,就是线程执行结束后不被销毁,而是可以继续执行其他任务...

2019-03-22 19:19:00 107

转载 乐观锁的缺点

1、ABA问题 如果一个变量V初次读取的时候是A值,并且在准备赋值的时候检查到它仍然是A值,那我们就能说明它的值没有被其他线程修改过了吗?很明显是不能的,因为在这段时间他的值可能被改为其他值,然后又改回A,那CAS操作就会误认为它从来没被修改过。这个问题被称为CAS操作的“ABA”问题。 JDK1.5以后的AtomicStampedR...

2019-03-22 18:45:00 371

转载 乐观锁常见的两种实现方式和适用场景

1、版本号机制 一般是在数据表中加上一个版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,在读取数据的同时也会读取version值,在提交更新时,若刚才读到的version值与当前数据库中的version值相等时才更新,否则重试更新操作,直到更新成功。举一个简单的例子:...

2019-03-22 18:29:00 330

转载 乐观锁,悲观锁

悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其他线程阻塞,用完后再把资源转让给其他线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁、表锁等,读锁写锁等,都是在操作之前先上锁。Java中synchronized和Reet...

2019-03-22 15:59:00 47

转载 lock ,sychronized,volatile的区别

sychronized与volatile关键字区别:1、volatle关键字解决的是变量在多个线程之间的可见性;而sychronized关键字解决的是多个线程之间访问共享资源的同步性。2、volatile只能用于修饰变量,而synchronized可以修饰方法以及代码块。(volatile是线程同步的轻量级实现,所以volatile性能比sync...

2019-03-22 15:49:00 69

转载 阿里一面感受【补面经】

链接:https://www.nowcoder.com/discuss/113050阿里一面20min说项目,说平常怎么学习java,说除了项目有自己开发过什么。问基础分代回收算法对象分类 这种算法并不是一种新的算法,而是根据对象的存活周期的不同而将内存分为几块,分别是新生代、老年代和永久代。新生代:朝生夕灭的对象(...

2019-03-22 15:27:00 31

转载 对象如何进入老年代

对象优先在新生代的eden区分配内存,但是也并不绝对,下面几种情况对象会晋升到老年代。1、大对象直接进入老年代。比如很长的字符串,或者很大的数组等。2、长期存活的对象进入老年代。在堆中分配内存的对象,其内存布局的对象头中包含了GC分代年龄标记信息。如果对象在eden区出生,那么它的GC分代年龄初始值为1,每熬过一次Minor GC而不被回收这个值...

2019-03-22 14:25:00 943

转载 分代回收算法

对象分类 这种算法并不是一种新的算法,而是根据对象的存活周期的不同而将内存分为几块,分别是新生代、老年代和永久代。新生代:朝生夕灭的对象(例如方法的局部变量等);老年代:存活的比较久但还是要死的对象(例如缓存对象、单例对象等);永久代:对象生成后几乎不灭的对象(例如加载过的类信息);内存区域 新生代和老年代都在Java...

2019-03-22 14:14:00 225

转载 Hibernate-4

查询总结1、oid查询-get2、对象属性导航查询3、HQL4、Criteria5、原生SQL查询-HQL语法基础语法String hql = "from cn.itcast.domain.Customer ";//完整写法String hql2 = "from Customer";//简单写法String hq...

2019-03-21 09:39:00 56

转载 2018年5月28日携程java实习电话一面面经

链接:https://www.nowcoder.com/discuss/826651.你们项目的分布式架构是怎么做的?java分布式开发用什么中间件?2.nginx底层原理?集群中有服务器挂了或者上线怎么处理?https://www.cnblogs.com/ray-mr-huang/p/9063976.html3.linux的io模型...

2019-03-20 10:18:00 79

转载 Mysql的四种引擎介绍

(1):MyISAM存储引擎不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表支持3种不同的存储格式,分别是:静态表;动态表;压缩表静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常...

2019-03-20 10:17:00 51

空空如也

空空如也

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

TA关注的人

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