自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法

算法简介贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。贪婪算法所得到的结果往往不是最优的结果(有时候会是最优解),但是都是相对近似(接近)最优解的结果。 贪婪算法并没有固定的算法解决框架,算法的关键是贪婪策略的选择,根据不同的问题选择不同的策略。 必须注意的是策略的选择必须具备无后效...

2019-12-07 17:35:45 480

原创 A*寻路算法

前言:寻路是游戏比较重要的一个组成部分。因为不仅AI还有很多地方(例如RTS游戏里操控人物点到地图某个点,然后人物自动寻路走过去)都需要用到自动寻路的功能。A*算法介绍寻路,即找到一条从某个起点到某个终点的可通过路径。而因为实际情况中,起点和终点之间的直线方向往往有障碍物,便需要一个搜索的算法来解决。有一定算法基础的同学可能知道从某个起点到某个终点通常使用深度优先搜索(DFS),DFS搜索的搜索方...

2019-12-07 12:53:28 422 1

原创 linux网络运维基础与故障诊断

 那么,在你听到“TCP/IP网络故障诊断”这个词的时候,你想到了什么?许多人可能会看到一张流程图。或者说想到了操作步骤有几步的问题。还有许多人可能会感到茫然,无从下手。  TCP/IP的故障诊断似乎看起来简单,毕竟,这仅仅是一个拥有四层协议的体系结构,每一层有多种协议。不过,表面的简单并不意味着故障能够轻松解决。下面我们先看看:  传统的故障诊断方法  几年前,在笔者第一次学习TCP...

2019-11-01 17:09:43 352

原创 linux网络运维基础与故障诊断

Linux常用网络命令今天给大家介绍一些网络的常用命令和故障诊断的方法网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看 linux 服务器 ip 地址,管理服务器网络配置,通过 telnet 和 ethernet 建立与 l...

2019-11-01 16:39:00 1706

原创 JAVA八大排序算法

它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下:⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪内部排序⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪插入排序{直接插入排序希尔排序选择排序{简单选择排序堆排序交换排序{冒泡排序快速排序归并排序基数排序外部排序{内部排序{插入排序{直接插入排序希尔排序选择排序{简单选择排序堆排序交...

2019-11-01 14:04:26 159

原创 tomcat中server.xml配置详解

Tomcat Server的结构图如下:该文件描述了如何启动Tomcat Server<Server><Listener/><GlobaNamingResources></GlobaNamingResources<Service><Connector/>...

2019-10-31 15:58:43 222

原创 SSH

SSH(远程连接工具)连接原理:ssh服务是一个守护进程(demon),系统后台监听客户端的连接,ssh服务端的进程名为sshd,负责实时监听客户端的请求(IP 22端口),包括公共秘钥等交换等信息。ssh服务端由2部分组成: openssh(提供ssh服务) openssl(提供加密的程序)ssh的客户端可以用 XSHELL,Securecrt, Mobaxterm等工具...

2019-10-12 10:47:15 530

原创 JVM问题分析处理手册

一.前言各位开发和运维同学,在项目实施落地的过程中,尤其是使用EDAS、DRDS、MQ这些java中间件时,肯定会遇到不少JAVA程序运行和JVM的问题。我结合过去遇到的各种各样的问题和实际处理经验,总结了JAVA问题的处理方式,希望能帮助到大家。二.问题处理总体概括如下图所示:问题处理分为三大类:1.问题发生后的紧急处理原则2.问题归类和分析3.分析排查工具和命令...

2019-06-15 14:55:07 297

原创 jstat

一、介绍jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用于打印出给定的java进程ID或corefile或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid主要分为两个功能:a. 针对活着的进程做本地的或远程的线程dump;...

2019-06-15 14:32:25 588

原创 Linux运维面试题

1. apache怎么实现负载均衡答案:多台机器跑apache,然后其中一台跑nginx,让nginx去代理多台apache实现负载均衡2. 一台Linux服务器负载高,连接慢,怎么查看答案:先用w看负载多少,用top看哪个进程占用cpu高,同时用top按M看哪个进程占用内存多,用iotop看哪个进程读写频发,用sar命令或者nload命令查看网卡流量,是否跑满带宽3. 现有A文...

2019-01-16 20:09:20 22439

原创 正则表达式

基本概念[ 编辑]正则表达式(通常称为模式)是用于指定特定目的所需的一组字符串的表达式。指定有限字符串集的简单方法是列出其元素或成员。但是,通常有更简洁的方法来指定所需的字符串集。例如,包含三个字符串“Handel”,“Händel”和“Haendel”的集合可以由模式 指定H(ä|ae?)ndel; 我们说这种模式匹配三个字符串中的每一个。在大多数形式主义中,如果存在至少一个与特定集匹配的正...

2019-01-08 16:28:59 15757 1

原创 YAML 基本语法快速入门

我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于应用配置上。然后在引入XML的时候,我们介绍properties格式在表现层级关系和结构关系的时候,十分欠缺,而XML在数据格式描述和较复杂数据内容展示方面,更加优秀。到后面介绍JSON格式的时候,我们发现JSON格式比较XML格式,更加方便(除去数据格式限制之外),所以...

2019-01-07 18:32:33 790

原创 Python连接MySQL数据库

Python标准数据库接口为Python DB-API, Python DB-API为开发人员提供了数据库应用 编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase你可以访问...

2018-11-05 20:58:21 185

原创 Ansible

前言天天说运维,究竟是干什么的?先看看工作流程呗。一般来说,运维工程师在一家企业里属于个位数的岗位,甚至只有一个。面对生产中NNN台服务器,NN个人员,工作量也是非常大的。所以嘛,图中的我好歹也会配置盔甲的。这就是我主要干的事情(呵呵)就算你会很厉害的脚本,面对成百上千,甚至上万的主机,效率问题将会困扰你的。因此,有没有解放的工具呢?Ansible 是什么Ansib...

2018-11-05 20:57:33 1162

原创 Linux下部署Tomcat ,然后部署web项目

Linux下部署Tomcat ,然后部署web项目转载声明: http://www.cnblogs.com/xdp-gacl/p/4097608.html   解压tomcat服务器压缩包   配置环境变量  tomcat服务器运行时是需要JDK支持的,所以必须配置好JDK用到的那些环境变量编辑/etc下的profile文件,加上...

2018-10-17 14:39:59 368

原创 vim常用命令总结

vim常用命令总结   在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format。使用gg=G可对整篇代码进行排版。   vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,...

2018-08-29 23:51:49 1009

原创 兄弟连linux课件

**************************************************************4.1.1命令名称:ls 选项[-ald]  [文件或目录]功能描述:显示目录文件-a    显示所有文件,包括隐藏文件-l     详细信息显示-d    查看目录属性*****************************************************...

2018-06-22 11:31:32 7283 4

原创 IntelliJ IDEA 教程

1 简介  IntelliJ IDEA(简称 IDEA),是 Java 语言开发的集成环境,IDEA 在业界被公认为最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本工具(Git、SVN、GitHub 等)、JUnit、CVS 整合、代码分析和创新的 GUI 设计等方面的功能都值得称道。至于 Eclipse 博主接触的不多,因此也无法比较,但殊途同归,...

2018-06-07 15:13:08 232

原创 java对redis的基本操作

import java.util.HashMap;  import java.util.List;  import java.util.Map;  import java.util.Set;    import redis.clients.jedis.Jedis;  import redis.clients.jedis.JedisPool;  import redis.clients.jedis....

2018-04-11 17:10:51 171

原创 Redis 命令参考

Redis 命令参考本文档是 Redis Command Reference 和 Redis Documentation 的中文翻译版, 阅读这个文档可以帮助你了解 Redis 命令的具体使用方法, 并学会如何使用 Redis 的事务、持久化、复制、Sentinel、集群等功能。命令目录(使用 CTRL + F 快速查找):Key(键)

2018-02-11 16:14:48 229

原创 Java并发之AQS详解

一、概述  谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!  类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。  以下是

2018-02-11 14:46:20 170

原创 Java提高篇——通过分析 JDK 源代码研究 Hash 存储机制

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。回到顶部通过

2017-11-11 11:34:02 176

原创 Java文件操作①——XML文件的读取

一、邂逅XML文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输。所以XML在现今应用程序中是非常流行的。本文主要讲Java解析和生成XML。用于不同平台、不同设备间的数据共享通信。XML文件的表现:以“.xml”为文件扩展名的文件;   存储结构:树形结构; 节点名称区分大小写。1、 id为属性, 1 id为节点

2017-11-11 11:29:46 301

原创 Java提高篇——对象克隆(复制)

假如说你想复制一个简单变量。很简单:int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。但是如果你复制的是一个对象,情况就有些复杂了。假设说我是一个beginner,我会这样写:c

2017-11-11 11:07:18 207

原创 Eclipse反编译工具Jad及插件JadClipse配置

Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的。不过因为是控制台运行,所以用起来不太方便。不过幸好有一个eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码。下面介绍一下配置:    A.下载JadClipse:http://jadclipse.sourceforge.net/wiki/

2017-10-31 10:57:55 417

原创 Netty:Handler的执行顺序

Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。Netty中的所有handler都实现自ChannelHandler接口。按照输出输出来分,分为ChannelI

2017-10-30 21:18:12 5086

原创 netty 之 ServerBootstrap的启动流程

配置篇       首先看看snoop包的server端启动代码。 在netty中,不管是server还是client,都是由引导类进行启动。在启动之前需要先做好各种参数的配置。可以配置的参数如下:字段类型说明server模式client模式optionsMapchannel的配置项作用于ServerChannel 

2017-10-30 17:01:29 1670

原创 同步和Java内存模型 Volatile

原文链接: http://gee.cs.oswego.edu/dl/cpj/jmm.htmlVolatile从原子性,可见性和有序性的角度分析,声明为volatile字段的作用相当于一个类通过get/set同步方法保护普通字段,如下:1final class VFloat {2    private

2017-10-28 16:50:26 154

原创 Java中的Atomic包使用指南

引言Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。Atomic包介绍在Atomic包里一共有12个类,四种原子更新方式,分别是原

2017-10-28 14:15:36 321

原创 guava cache 的使用心得

范例01LoadingCache<Key, Graph> graphs = CacheBuilder.newBuilder()02        .maximumSize(1000)03        .expireAfterWrite(10, TimeU

2017-10-28 14:03:21 900

原创 设计模式六大原则

目录:设计模式六大原则(1):单一职责原则设计模式六大原则(2):里氏替换原则设计模式六大原则(3):依赖倒置原则设计模式六大原则(4):接口隔离原则设计模式六大原则(5):迪米特法则设计模式六大原则(6):开闭原则设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职

2017-10-20 14:22:57 321

原创 Spring + Mybatis配置多数据库

目前有两种思路:1.动态切换数据源,需要自定义一个数据源类继承自AbstractRoutingDataSource抽象类,这种方式有弊端,如果是并发系统中,当你把数据源改了,系统中所有的操作数据源都改了,即使你立马再改回去,还是有风险;2.建立两套数据源,在spring加载Mapper时关联不同的数据源。以下仅介绍第二种方式:(1)新建两套数据源:数据源一:

2017-09-29 12:26:00 367

原创 SQL(高级查询)

1. SQL(高级查询)1.1. 子查询1.1.1. 子查询在WHERE子句中在SELECT查询中,在WHERE查询条件中的限制条件不是一个确定的值,而是来自于另外一个查询的结果。为了给查询提供数据而首先执行的查询语句叫做子查询。子查询:嵌入在其它SQL语句中的SELECT语句,大部分时候出现在WHERE子句中。子查询嵌入的语句称作主查询或父查询。主查询可以是SEL

2017-09-29 12:22:21 460

原创 Chrome开发,debug的使用方法。

怎样打开Chrome的开发者工具?你可以直接在页面上点击右键,然后选择审查元素:或者在Chrome的工具中找到:或者,你直接记住这个快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接打开控制台),或者直接按F12。打开的开发者工具就长下面的样子:不过我一般习惯与点左下角的那个按钮,将开发者工具弹出作为一个独立的窗口:下面来分别说下每个T

2017-09-29 12:20:58 257

原创 Maven笔记总结

1.Maven依赖总结1.依赖元素[html] view plaincopydependency>      groupId>org.springframeworkgroupId>      artifactId>spring-coreartifactId>      version>${springframework

2017-09-29 12:18:07 276

原创 JVM性能调优

最近因项目存在内存泄漏,故进行大规模的JVM性能调优 , 现把经验做一记录。一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm)  其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,Perm不属于堆内存,有虚拟机直接分配,但可以通过

2017-09-29 12:12:38 148

原创 web.xml配置详解

对于一个J2EE领域的程序员而言,基本上每天都会和web应用打交道。什么是web应用?最简单的web应用什么样?给你一个web应用你该从何入手?1、什么是web应用?      web应用是一种可以通过Web访问的应用程序。在J2EE领域下,web应用就是遵守基于JAVA技术的一系列标准的应用程序。2、最简单的web应用什么样?      2个文件夹、1个x

2017-09-29 12:09:36 229

原创 Java多线程-线程的同步与锁

Java多线程-线程的同步与锁一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。package cn.thread;public class Foo { private int x = 100; public int g

2017-09-28 13:56:51 209

原创 Java多线程-新特性-线程池

Java多线程-新特性-线程池Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分

2017-09-28 13:44:01 204

原创 有返回值的线程 -- Callable

Java多线程-新特性-有返回值的线程在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。现在Java终于有可返回值的任务(也可以叫做线程)了。可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。执行Callable任务后,可以获取一个Future的对象,在该

2017-09-28 13:40:52 222

空空如也

空空如也

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

TA关注的人

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