自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(158)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python中常用内置函数学习

Python中的各个函数集合时刻补充中。。。。。。一、range函数函数原型:range(start, end, scan)参数含义:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);end:计数到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5scan:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)注意,对于for i in range(5):

2020-05-13 14:20:49 355

原创 求最长回文子串(百度测试开发一面面试题目)

一、判断一个字符串是否为回文字符串输入:从键盘输入一个字符串。输出:判断一个字符串是否为回文字符串,是的话输出YES,不是的话输出NO。 public class Main { public static void main(String[] args) { String str = ""; System.out.println("请输入一个字符串"); Scanner i...

2018-10-15 22:57:09 568

原创 海量数据处理

1 引言海量数据处理工作为:基于海量数据上的存储、处理和操作。时间: 采用巧妙的算法,搭配合适的数据结构,如Bloom filter(布隆过滤器)、hash、bitmap、堆、trie树。空间: 大而化之,分而治之(hash映射)。...

2018-09-24 21:38:01 538

原创 密码学之哈希算法

1 哈希算法哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。哈希算法又称为摘要算法,它可以将任意数据...

2018-09-11 21:41:48 12922

转载 21分钟MySQL基础入门

21分钟MySQL基础入门为什么只需要21分钟呢?因为在我们大天朝有句话叫做三七二十一,你可以不管三七二十一开始使用 MySQL 及快速的方式入门 MySQL。其实21分钟把下面语句执行一遍是没有问题的,要理解的话估计不止21分钟,对于初学者来说只需满足自己需求可以增删改查等简易的维护即可。目录开始使用 登录MySQL创建数据库创建数据库表增删改查 SELECTU...

2018-08-30 08:28:49 384

转载 21分钟mysql基础入门

21分钟MySQL基础入门为什么只需要21分钟呢?因为在我们大天朝有句话叫做三七二十一,你可以不管三七二十一开始使用 MySQL 及快速的方式入门 MySQL。其实21分钟把下面语句执行一遍是没有问题的,要理解的话估计不止21分钟,对于初学者来说只需满足自己需求可以增删改查等简易的维护即可。目录开始使用登录MySQL创建数据库创建数据库表增删改查SELECTU...

2018-08-29 23:11:57 606

原创 Java实现约瑟夫环:50个人围成一圈数数,从1开始报数,数到3的人退出,求最后剩下的人的编号

题目约瑟夫环问题:50个人围成一圈数数,从1开始报数,数到3的人退出,求最后剩下的人的编号.C++算法思想:把这n个人放在一个数组中,对映下标的元素值为下标值加1,当数到3时将该下标的元素值设置为0,数组到头时重新开始,直到数组中只剩一个数为止。Java实现利用可变数组ArrayList实现。 算法思想:将所有人的报数放到链表内;利用链表,将链表表头挨个移除,并放到表的后面,...

2018-08-27 21:52:29 5116

转载 Java成神及面试资源

Java成神及面试资源 大家可以针对性的学习,提升自己。对于答案 ,并没有标准的。希望可以通过下面列出问题自己学习整理并总结。这样应该更有意义。基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe ...

2018-08-15 12:40:42 364

原创 Ubuntu 更新资源与更新升级

1、update一下更新资源sudo apt-get update 2、对系统中的软件都更新升级sudo apt-get upgrade 3、更新升级某个软件例如这里更新gimp:sudo apt-get upgrade gimp4、利用自带软件进行更新我们也可以在左上角的dash菜单中找到“ubuntu 软件”。或者搜索“u...

2018-08-15 10:26:29 22375

原创 ubuntu 16.04 内存清理方法总结

1、Ubuntu下利用命令行清空回收站sudo rm -rf ~/.local/share/Trash/*2、删除你已经卸载掉的软件包sudo apt-get autoclean3、清理所有安装包若你想清理出更多的空间,而且网速又比较快的话,那你大可以把电脑上存储的安装包全部卸载咯,命令为sudo apt-get clean4、清理孤立包还有一类...

2018-08-15 10:19:50 6125

转载 五大经典算法之四贪心算法

基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择,贪心策略使用的前提是局部最优能导致全局最优。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,...

2018-08-08 23:12:54 688

转载 五大经典算法之三动态递归DP

五大经典算法 动态递归DP首先需要决定存储什么历史信息,以及用什么数据结构来存储。然后最重要的就是递推公式,最后需要考虑起始条件的值。Leetcode 139. Word Break要求一个非空字符串s,一个非空的字符串词典,判断s能够通过空格组成一个序列是词典里的多个单词:例如s=”leetcode”dict=[“leet”,”code”]因为“leetcode”可以改成“le...

2018-08-08 23:11:32 1196

转载 五大经典算法二 回溯

回溯算法在解决多选择问题时特别有效,一般思路如下:在当前场景下,存在若干种选择去操作,有可能两种结果:一是违反相应条件限制,只能返回(back),另一种是该选择选到最后居然正确并结束。故在回溯时存在三要素,能总结出这样的三要素问题便可以迅速解决:1 找到选择2 限制条件,即选择操作在此条件下才进行3 结束回溯在迷宫问题等应用广泛,下面的Leetcode22题Generate Pa...

2018-08-08 23:09:19 821

转载 五大经典算法一 递归与分治

我们要讲到分治算法,我觉得有必要说一下递归,他们就像一对孪生兄弟,经常同时应用在算法设计中,并由此产生许多高效的算法。递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。要求原始问题可以分解为相同问题的子问题。、需要:1 递归边界 2 自身调用特点分析:递归思路简单清晰,如果分析出将很快得到结果;递归将多次调用,使用到堆栈,算法效率低,费时费内存。常用场景:阶乘,斐波...

2018-08-08 23:06:36 1312

原创 DDoS攻击及防御技术综述

DDoS攻击及防御技术综述摘    要: 分布式拒绝服务攻击 (Distributed Denial of Service, DDoS) 是互联网上有严重威胁的攻击方式之一, 难以完全对其进行防御。介绍DDoS攻击的技术原理, 在此基础上, 分析主流入侵检测方式在DDoS攻击检测中的优缺点。最后, 全面分析了适用于DDoS攻击...

2018-08-07 20:48:55 10996

转载 Java内存模型与线程

Java内存模型与线程Java内存模型与线程Start硬件的效率与一致性Java内存模型主内存与工作内存内存间交互操作对于volatile型变量的特殊规则可见性禁止指令重排序优化对于long和double型变量的特殊规则原子性、 可见性与有序性原子性(Atomicit...

2018-08-07 11:28:07 5588

转载 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 220

转载 设计模式——动态代理(dynamic proxy)

1 动态代理与静态代理我们从上一篇设计模式之代理模式一文中已经知道,在代理模式中代理对象和被代理对象一般实现相同的接口,调用者与代理对象进行交互。代理的存在对于调用者来说是透明的,调用者看到的只是接口。这就是传统的代理模式静态代理的特点。那么传统的静态代理模式有什么问题呢?如果需要代理的类只有一个,那么静态代理没什么问题,如果有很多类需要代理呢,用静态代理的话就需要为每一个类创建一个代...

2018-08-07 11:20:35 847

转载 设计模式——适配器模式(adaptor pattern)

1 适配器模式的定义在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2 实际应用中的例子比如我们去日本买了一个日本的电饭煲,但日本电压标准都是110V,而我们国家标准是220V,所以要想...

2018-08-07 11:18:13 299

转载 设计模式——代理模式(Proxy Pattern)

1 代理模式定义定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。本篇文章主要介绍的是静态代理,关于动态代理请参考:设计模式之动态代理(dynamic proxy)2 代理模式的作用在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。通过代理类对原有...

2018-08-07 11:16:16 184

转载 设计模式——观察者模式 (Observer Design Pattern)

一、什么是观察者模式观察者定义了一种一对多的依赖关系,当一个主题(Subject)对象状态发生变化时,所有依赖它的相关对象都会得到通知并且能够自动更新自己的状态,这些依赖的对象称之为观察者(Observer)对象这类似于发布/订阅模式。观察者模式中的主题对象,会维持着一个依赖它的观察者对象列表,当主题对象状态发生改变时,主题对象便会调用这个列表中所有观察者对象的方法。观察者模式一般用在...

2018-08-07 11:14:26 359

转载 Java线程安全

线程安全是多线程领域的问题,线程安全可以简单理解为一个方法或者一个实例可以在多线程环境中使用而不会出现问题。产生线程不安全的原因在同一程序中运行多个线程本身不会导致问题,问题在于多个线程访问了相同的资源。如,同一内存区(变量,数组,或对象)、系统(数据库,web services等)或文件。...

2018-08-07 11:07:46 150

转载 数据库索引原理及优化

转发内容。一、摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索...

2018-08-07 11:03:02 11601 5

转载 Java内存模型

Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。 JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。Java线程之间的通信采用的是共享内存模型,这里提到的共享内存模型指的就是Java内存模型(简称JMM),...

2018-08-07 09:12:06 154

原创 收集到的Java面试总结

学习链接少部分derrantcm的博客博文总目录!!!!必须提前背熟的:面试常见算法-排序查找算法【常见面试问题总结目录】Java虚拟机学习总结目录【剑指Offer学习】【所有面试题汇总】其它:排序和查找算法各种排序、查找算法总结一、JAVA基础篇-概念1.简述你所知道的Linux:Linux起源于1991年,1995年流行起来的免费操作系统,...

2018-08-01 17:16:41 843

原创 SpringMVC的原理

1、MVC模式MVC: mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 MVC的原理图: 分析:M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity):它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的A...

2018-07-21 21:42:56 219

原创 进程的死锁问题

1、什么是死锁死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P1占用着的输入设备。这样两个进程相互无休止地等待下去,均无法继续执行,此时两个进程陷入死锁状...

2018-07-21 18:52:09 712

原创 进程与线程的区别

进程与线程的区别进程是资源分配的基本单位,线程是调度的基本单位。进程包含线程,线程共用进程的资源。1 进程定义及基本概念1.1 进程的组成进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈区域(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用...

2018-07-21 15:35:18 2213

原创 HashMap线程不安全的体现

HashMap线程不安全的体现根据其他信息整理而来: 回答:HashMap的实现里没有锁的机制,因此它是线程不安全的。其实只要有锁的机制,可以通过锁实现线程安全,我们在读写HashMap对象的时候加锁,以保障这个对象的线程安全,但不代表HashMap本身是线程安全的,因为是外力(你自己加的锁)使然。为啥不在HashMap内部加锁让它变成线程安全? 这样会增加单线程访问的资源消耗,即...

2018-07-15 20:02:01 1414

原创 CSMA(Carrier Sense Multiple Access)与CSMA/CD(Carrier Sense Multiple Access with Collision Detection)

#1、CSMA(Carrier Sense Multiple Access,载波检测(侦听)多路访问)以及CSMA/CD(Carrier Sense Multiple Access with Collision Detection,基于冲突检测的载波监听多路访问技术)概念CSMA(Carrier Sense Multiple Access)是载波检测(侦听)多路访问,它检测其他站的活动情况...

2018-07-15 16:52:43 2871

原创 对以太网粗略理解

1、以太网定义以太网(Ethernet)指的是由 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发的基带局域网规范,通用的以太网标准于1980年9月30日出台,是当今现有局域网采用的最通用的通信协议标准。(是局域网的一种)以太网络使用CSMA/CD( 载波监听多路访问 / 冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。以太网与 IEEE802.3系列标准相类...

2018-07-15 11:28:25 4151 1

原创 Java虚拟机——Java技术体系

Java技术体系一、Sun官方定义的Java技术体系包括:Java程序设计语言;各种硬件平台上的Java虚拟机;Class文件格式;Java API类库;来自商业机构和开源社区的第三方Java类库。二、JDKJava程序设计语言+Java虚拟机+Java API类库=JDKJava Development Kit:Java开发工具包,是用于支持Java程序开发的最小...

2018-07-14 19:45:03 267

原创 面试高并发编程——synchronized(加锁)

并发——synchronized(加锁)一、声明一个对象,专门用来管理锁/** * synchronized关键字 * 对某个对象加锁 */public class T { private int count = 10; private Object o = new Object();//声明一个对象,专门用来管理锁 public void m() {...

2018-07-14 17:52:14 1155

原创 三大集合:List、Map、Set的区别与联系

List、Map、Set的区别与联系一、结构特点List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcod...

2018-07-12 21:58:51 107564 17

原创 并发集合与普通集合的区别

并发集合与普通集合的区别在Java中,有普通集合、同步的集合(即线程安全的集合)、并发集合。并发集合常见的有ConcurrentHashMap、ConcurrentLinkedQueue、ConcurrentLinkedDeque等。并发集合位于java.util.concurrent包下,是在JDK1.5之后才有的。普通集合通常性能最高,但是不保证多线程的安全性和并发的可靠性;线...

2018-07-12 20:34:24 2206

转载 Ubuntu

Ubuntu系统编写shell脚本程序一次安装多个软件包编写shell脚本程序一次安装多个软件,主要用于一些软件依赖环境配置1、shell脚本程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。2、当编辑好脚本后,还必须使其可执行。使脚本可执行:3、然...

2018-06-25 12:54:20 253

原创 剑指offer——二叉搜索树的第k个结点

1、题目描述给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。2、我的解答利用二叉搜索树的中序遍历结果为单调递增性质,对该二叉搜索树进行中序遍历,并将中序遍历结果存入数组中,在主函数中调用其中序遍历函数,并返回数组中的第k-1个结点。 源码如下:import java.util.Ar...

2018-06-24 11:31:30 191

原创 剑指offer——序列化二叉树

剑指offer——序列化二叉树1、序列化知识点一:二叉树序列化(持久化)二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于 先序、中序、后序、按层 的二叉树遍历方式来进行修改。原理都是一样的(即遍历顺序不同而已,对每个结点的处理都是一样的),序列化的结果是一个字符串,序列化时通过 某种符...

2018-06-24 10:11:18 512

原创 Java知识点积累——equals与"=="的比较分析

Java知识点积累——equals与”==”的比较分析1、”==” 实例分析读程序,写结果public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ...

2018-06-24 10:08:10 258

原创 剑指offer——把二叉树打印成多行

剑指offer——把二叉树打印成多行1、题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。2、我的解法参照上一个题(按之字形打印二叉树),此处利用两个队列,进行一行一行的打印。 源码如下:import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;...

2018-06-24 07:56:01 252

junit4.9.jar包上传

junit4.9.jar包上传

2017-05-05

空空如也

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

TA关注的人

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