![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试笔记
Star_Li_92
学如逆水行舟,不进则退。
展开
-
五大经典算法之四贪心算法
基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择,贪心策略使用的前提是局部最优能导致全局最优。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,...转载 2018-08-08 23:12:54 · 693 阅读 · 0 评论 -
五大经典算法之三动态递归DP
五大经典算法 动态递归DP首先需要决定存储什么历史信息,以及用什么数据结构来存储。然后最重要的就是递推公式,最后需要考虑起始条件的值。Leetcode 139. Word Break要求一个非空字符串s,一个非空的字符串词典,判断s能够通过空格组成一个序列是词典里的多个单词:例如s=”leetcode”dict=[“leet”,”code”]因为“leetcode”可以改成“le...转载 2018-08-08 23:11:32 · 1210 阅读 · 0 评论 -
五大经典算法二 回溯
回溯算法在解决多选择问题时特别有效,一般思路如下:在当前场景下,存在若干种选择去操作,有可能两种结果:一是违反相应条件限制,只能返回(back),另一种是该选择选到最后居然正确并结束。故在回溯时存在三要素,能总结出这样的三要素问题便可以迅速解决:1 找到选择2 限制条件,即选择操作在此条件下才进行3 结束回溯在迷宫问题等应用广泛,下面的Leetcode22题Generate Pa...转载 2018-08-08 23:09:19 · 827 阅读 · 0 评论 -
五大经典算法一 递归与分治
我们要讲到分治算法,我觉得有必要说一下递归,他们就像一对孪生兄弟,经常同时应用在算法设计中,并由此产生许多高效的算法。递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。要求原始问题可以分解为相同问题的子问题。、需要:1 递归边界 2 自身调用特点分析:递归思路简单清晰,如果分析出将很快得到结果;递归将多次调用,使用到堆栈,算法效率低,费时费内存。常用场景:阶乘,斐波...转载 2018-08-08 23:06:36 · 1314 阅读 · 0 评论 -
Java成神及面试资源
Java成神及面试资源 大家可以针对性的学习,提升自己。对于答案 ,并没有标准的。希望可以通过下面列出问题自己学习整理并总结。这样应该更有意义。基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe ...转载 2018-08-15 12:40:42 · 378 阅读 · 0 评论 -
Java内存模型与线程
Java内存模型与线程Java内存模型与线程Start硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对于volatile型变量的特殊规则可见性禁止指令重排序优化对于long和double型变量的特殊规则原子性、 可见性与有序性原子性(Atomicit...转载 2018-08-07 11:28:07 · 5596 阅读 · 0 评论 -
Spring MVC配置介绍
一、Spring MVC 纵览Spring MVC就是Spring框架对MVC设计模式的实现,通过Spring MVC ,我们可以快速的构建灵活、松耦合的web服务。再具体介绍Spring MVC 之前,我们先看一下它的请求处理过程:1.1 springMVC 的请求过程1. 请求会首先发送到DispatchServlet,这是spr...转载 2018-08-07 11:25:24 · 221 阅读 · 0 评论 -
设计模式——动态代理(dynamic proxy)
1 动态代理与静态代理我们从上一篇设计模式之代理模式一文中已经知道,在代理模式中代理对象和被代理对象一般实现相同的接口,调用者与代理对象进行交互。代理的存在对于调用者来说是透明的,调用者看到的只是接口。这就是传统的代理模式静态代理的特点。那么传统的静态代理模式有什么问题呢?如果需要代理的类只有一个,那么静态代理没什么问题,如果有很多类需要代理呢,用静态代理的话就需要为每一个类创建一个代...转载 2018-08-07 11:20:35 · 850 阅读 · 0 评论 -
设计模式——适配器模式(adaptor pattern)
1 适配器模式的定义在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2 实际应用中的例子比如我们去日本买了一个日本的电饭煲,但日本电压标准都是110V,而我们国家标准是220V,所以要想...转载 2018-08-07 11:18:13 · 311 阅读 · 0 评论 -
设计模式——代理模式(Proxy Pattern)
1 代理模式定义定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。本篇文章主要介绍的是静态代理,关于动态代理请参考:设计模式之动态代理(dynamic proxy)2 代理模式的作用在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。通过代理类对原有...转载 2018-08-07 11:16:16 · 187 阅读 · 0 评论 -
设计模式——观察者模式 (Observer Design Pattern)
一、什么是观察者模式观察者定义了一种一对多的依赖关系,当一个主题(Subject)对象状态发生变化时,所有依赖它的相关对象都会得到通知并且能够自动更新自己的状态,这些依赖的对象称之为观察者(Observer)对象这类似于发布/订阅模式。观察者模式中的主题对象,会维持着一个依赖它的观察者对象列表,当主题对象状态发生改变时,主题对象便会调用这个列表中所有观察者对象的方法。观察者模式一般用在...转载 2018-08-07 11:14:26 · 367 阅读 · 0 评论 -
Java线程安全
线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。产生线程不安全的原因在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件。...转载 2018-08-07 11:07:46 · 156 阅读 · 0 评论 -
Java内存模型
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。 JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。Java线程之间的通信采用的是共享内存模型,这里提到的共享内存模型指的就是Java内存模型(简称JMM),...转载 2018-08-07 09:12:06 · 160 阅读 · 0 评论 -
数据库索引原理及优化
转发内容。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索...转载 2018-08-07 11:03:02 · 11634 阅读 · 5 评论 -
收集到的Java面试总结
学习链接少部分derrantcm的博客博文总目录!!!!必须提前背熟的:面试常见算法-排序查找算法【常见面试问题总结目录】Java虚拟机学习总结目录【剑指Offer学习】【所有面试题汇总】其它:排序和查找算法各种排序、查找算法总结一、JAVA基础篇-概念1.简述你所知道的Linux:Linux起源于1991年,1995年流行起来的免费操作系统,...原创 2018-08-01 17:16:41 · 849 阅读 · 0 评论 -
Java实现约瑟夫环:50个人围成一圈数数,从1开始报数,数到3的人退出,求最后剩下的人的编号
题目约瑟夫环问题:50个人围成一圈数数,从1开始报数,数到3的人退出,求最后剩下的人的编号.C++算法思想:把这n个人放在一个数组中,对映下标的元素值为下标值加1,当数到3时将该下标的元素值设置为0,数组到头时重新开始,直到数组中只剩一个数为止。Java实现利用可变数组ArrayList实现。 算法思想:将所有人的报数放到链表内;利用链表,将链表表头挨个移除,并放到表的后面,...原创 2018-08-27 21:52:29 · 5193 阅读 · 0 评论