自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (12)
  • 收藏
  • 关注

原创 ubuntu安装最新版docker简易教程

Ubuntu Docker 安装Docker Engine-Community 支持以下的 Ubuntu 版本:Xenial 16.04 (LTS) Bionic 18.04 (LTS) Cosmic 18.10 Disco 19.04 其他更新的版本……Docker Engine - Community 支持上 x86_64(或 amd64)armhf,arm64,s39...

2019-12-28 17:01:59 1543

原创 jad反编译

作为java开发者,有时会想看看一些三方的jar包内容,需要反编译,这时jad便派上用场。下载地址:http://www.javadecompilers.com/jad下载解压后包含jad.exe和Readme.txt1. 安装解压缩jad.zip包,并把它放在你硬盘的某个目录下。将会创建两个文件 jad.exe和readme.txt文件,不需要其他的安装文件2. 怎样去用jad...

2019-12-21 13:54:28 1282

原创 synchronized你到底知道多少

记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。...

2019-12-07 20:47:53 278

原创 每天学一种设计模式

目前常用的设计模式有23种,何为设计模式?神圣吗?难学吗?只要坚持学,用,总结,都不难。设计模式说白了就是前人总结的设计经验,用的多了也就熟练了,但是也不要生搬硬套的去用,我们平时或多或少都有接触,只不过没有细致归纳,总体分为三大类型,创建型、结构型、行为型,后面会一一详细介绍。一、创建型模式工厂方法 抽象工厂 建造者模式 单例模式 原型模式二、结构型模式适配器模式...

2019-11-24 22:39:33 97

原创 堆排序

二叉堆:一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储。特点:用数组实现,第一个位置不存储元素,父节点比两个子节点都要大或者小(最大堆或最小堆)。实现代码比较简单,直接记录了。public class HeapSort { public static void sort(int[] a) { int len = a.length - 1; ...

2019-11-23 20:21:36 175

转载 java对象都是分配在堆内存吗

随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。在编译期间,JIT会对代码做很多优化。其中有一部分优化的目的就是减少内存堆分配压力,其中一种重要的技术叫做逃逸分析。如果JIT经过逃逸分析,发现有些对象没有逃逸出方法,那么有可能堆内存分配会被优化成栈内存分配。这里借鉴一下大佬的图片:...

2019-11-20 21:33:28 271

原创 快速排序

前面介绍了几种简单排序和归并排序,今天来介绍一种使用较广的排序方法:快速排序。public class QuickSort { public static void sort(int[] a) { sort(a, 0, a.length - 1); } private static void sort(int[] a, int lo, int h)...

2019-11-20 20:32:51 82

原创 归并排序

前面写了简单排序,平均时间复杂度是平方级的,这里介绍归并排序,比较次数在1/2NlgN到NlgN,空间复杂度O(n)。归并用的是分治递归思想,将大问题化为更小的子问题,直到数组个数为1时不能再分,此时两合并,四四合并。。。下面是自顶向下的归并排序实现:public class Merge { private static int[] temp; public st...

2019-11-17 22:05:06 101

原创 java基础知识

1.==与equals==单纯比较的是两个对象引用的指针是否相等。equals比较的是两个对象逻辑上是否相等,而不是单纯引用指针比较2.为什么定义equals方法时也要定义hashcode方法equals方法判断两个对象逻辑上是否相等,hashcode是存在对象头中的,java规范:两个对象相等,hashcod值一定要相等,反之不成立。由于hashcode默认实现返回的是类似地址值...

2019-11-17 17:31:29 112

原创 抽象类与接口

抽象类:如果一个类没有包含足够的信息来描述一个具体的对象,这样的就是一个抽象类。抽象类可以有构造方法,可以有抽象方法也可以没有。抽象类作为接口与实体类中间体,用来继承的。功能有细节实现,不断有改变时可以使用抽象类。接口:更多的是定义规范,顶层设计,将定义与实现分离,接口下面往往是抽象类来实现。所有成员方法都是抽象方法,也就是在不同的地方会有不同的实现,可以有静态方法或者默认实现,默认是abst...

2019-11-16 21:01:43 126

原创 简单排序:冒泡,插入,选折排序及希尔排序

冒泡排序:将数组中的最大或最小值往一端移动,两层循环,每次比较和移动一个数字,比较和交换复杂度O(),可以理解为贪心算法。public static void sort(int[] a) { for (int i = 0; i < a.length; i++) { for (int j = 0; j < a.length - i - 1; ...

2019-11-14 22:15:15 95

原创 分库分表

分库分表解决方案:应用层:TDDL shardingjdbc(中小型企业)proxy:mycat(大企业) cobar面临的问题:1.事务解决事务问题目前有两种可行的方案:分布式事务和通过应用程序与数据库共同控制实现事务下面对两套方案进行一个简单的对比。方案一:使用分布式事务 优点:交由数据库管理,简单有效 缺点:性能代价高,特别是shard越来越多时 方案...

2019-11-12 21:55:01 64

原创 mysql分页原理及大分页优化

SELECT*FROMtableLIMIT[offset,]rows|rowsOFFSEToffset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了...

2019-11-12 20:09:47 298

原创 rabbitmq面试

为什么使用消息队列啊?通用回答是:我们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。比较核心的有3个业务场景:解耦、异步、削峰缺点呢?显而易见的系统可用性降低:系统引入的外部依赖越多,越容易挂掉,本来你就是A系统调用BCD三个系统的接口就好了,人ABCD四个系统好好的,没啥问题,你偏加个MQ进来,万一MQ挂了...

2019-11-03 21:45:04 167

原创 mybatis面试

MyBatis提供一级缓存和二级缓存的机制。一级缓存是SqlSession级别的缓存(默认是支持一级缓存,不需要再配置文件中配置一级缓存),在操作数据库时,每个SqlSession类的实例对象中有一个数据结构(HashMap)可以用来存储缓存数据,不同的SqlSession类的实例对象缓存的数据区域(HashMap)是互不影响的。当在同一个SqlSession中执行两次相同的sql语句时,第一...

2019-11-03 18:03:59 66

原创 spring

有哪些不同类型的IOC(依赖注入)方式?缺省的Springbean的作用域是Singleton.构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。 Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即实现了基于sette...

2019-11-03 15:04:25 76

原创 springmvc

1、SpringMVC的流程?(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;(4)DispatcherSer...

2019-11-02 18:41:00 93

原创 Java性能问题分析常用命令

1.查看线程占用cpu大小top -H -p pid2.打印堆栈信息jstack pid &gt; filename上一步骤中查看的线程id转换为十六进制,查看各个线程的信息cat filename | grep -C 20 线程id3.查看gc信息jstat -gcutil pid 2000 10 4.查看内存占用信息jmap -histo pid | les...

2018-10-13 19:20:23 620

原创 volatitle

    被volatitle修饰的变量能够保证可见性,不保证原子性,每个线程能够获取该变量的最新值。    实现的机制:在写volatitle变量写到主内存时,指令前会加上lock,该指令有两个影响:    将当前处理器缓存行的数据写回系统内存;    这个写回内存的操作会使得其他CPU里缓存了该内存地址的数据无效。   在多核处理器中,其他线程发现本地缓存失效,就会到主内存重读这个变量,因此在一...

2018-06-23 11:40:28 3190

转载 用kubeadm在Red Hat 7/CentOS 7快速部署Kubernetes 1.7

前言kubeadm是Kubernetes官方推出的快速部署Kubernetes集群工具,其思路是将Kubernetes相关服务容器化(Kubernetes静态Pod)以简化部署。kubeadm当前处于beta阶段,不建议生产环境使用(比如etcd单点)。使用kubeadm部署Kubernetes集群非常简单方便,本文记录了在Red Hat 7上用kubeadm部署一个安全的Kube

2018-02-06 23:12:32 1011

转载 centos7 内核升级

centos官网提供的镜像始终是3.10 版本,有时需要更高的内核版本,下面是升级到最新版本的步骤1、升级内核需要使用 elrepo 的yum 源,首先我们导入 elrepo 的 key     rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2、安装 elrepo 源    rpm 

2018-02-03 13:44:33 726

原创 centos7 SSH Secure远程工具中文乱码

关于远程工具乱码的解决:使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK。所以解决方案是统一两者编码就OK了,但是该SSH Secure工具不能设置编码,所以通过修改linux的系统编码的方式进行统一编码。centos7以下:在linux的/etc/sysconfig目录下有一个i18n

2018-02-03 13:36:47 1690

转载 docker安装及常用命令

本文基于CentOS 7版本进行描述。CentOS对Docker支持较好的版本是CentOS 7。本文docker-engine的版本是1.12。安装准备# 更新系统软件包yum update# 安装docker的yum源tee /etc/yum.repos.d/docker.repo <<-'EOF'[dockerrepo]name=Docker Repo

2017-12-25 23:54:15 273

原创 urllib2.HTTPError: HTTP Error 504: Fiddler - Receive Failure

刚接触python学习,写一个简单的爬虫,在用fiddler抓取网络信息报了错 ,服务器报了504错误,经检查使用fiddler抓包时需要写明全路径,结尾以“/”结束

2017-12-15 23:21:52 3579

JAVA面试核心知识点整理.rar

java面试各大知识点,非常齐全。jvm内存分区,gc算法,类加载机制。并发编程,并发编程各大容器,锁。框架spring mybatis原理,组件介绍。架构设计有设计模式,负载均衡。网络有协议,java 高并发io框架netty。数据结构包括堆栈,队列,链表,二叉树,红黑树,算法包括各种排序,贪心算法,动态规划。以及进阶的分布式,大数据,机器学习,内容非常全,精心总结的。

2019-12-01

java 1.8 1.7 1.6 中文文档

java api 1.8chm 中文文档

2018-09-01

java 简易聊天室源码

java 写的简易聊天室 支持登陆退出,查看在线人数,相互聊天等

2018-07-24

算法导论_原书第3版

本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。本书专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。本书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。

2018-03-11

TCP-IP详解卷一协议

《TCP/IP详解卷1:协议》是网络构建原型——4.4BSD的建造者的倾力之作,《TCP/IP解析》中的第1卷,主要讲述TCP/IP协议方面的内容。与其他的TCP/IP书藉的最大不同在于,本书不仅仅讲述了RFCS的标准协议,而且结合大量实例讲述了TCP/IP协议包的定义原因及在各种不同的操作系统中(如Sunos4.1.3、Soloris2.2、AIX3.2.2)的应用与工作方式,这样可以以动态方式讲述TCP/IP的知识,使读者可以轻松掌握TCP/IP的知识:路由协议、寻址协议、组控制协议、简单邮件传输协议等。全书内容实用性强,是在校生学习TCP/IP知识的良师益友。[1]

2018-03-11

Linux内核设计与实现

详细介绍了linux 的内核设计与实现原理,深入浅出 容易懂。

2018-03-11

docker核心技术

docker详细的讲解,有基础理论有实战应用,和大家一起分享

2018-02-27

算法 数据结构

java语言描述的经典算法书籍,有理论分析有算法实现。

2018-02-26

kubernetes

k8s学习的好书籍,从基础到应用都有,很详细,和大家一起享用

2018-02-25

Kubernetes权威指南

Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,也是CNCF最重要的项目之一,主要功能包括: 基于容器的应用部署、维护和滚动升级 负载均衡和服务发现 跨机器和跨地区的集群调度 自动伸缩 无状态服务和有状态服务 广泛的Volume支持 插件机制保证扩展性 Kubernetes发展非常迅速,已经成为容器编排领域的领导者。Kubernetes的中文资料也非常丰富,但系统化和紧跟社区更新的则就比较少见了。《Kubernetes指南》开源电子书旨在整理平时在开发和使用Kubernetes时的参考指南和实践总结,形成一个系统化的参考指南以方便查阅。欢迎大家关注和添加完善内容。

2018-02-25

k8s原理及应用

以企业案例讲述kubernetes的实际应用,通俗易懂,学习起来不觉无味

2018-02-25

shell 书籍

shell学习的好书籍,从基础到应用都有,很详细,和大家一起享用

2018-02-25

空空如也

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

TA关注的人

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