- 博客(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
1823
原创 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
1439
原创 synchronized你到底知道多少
记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是,随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它。...
2019-12-07 20:47:53
330
原创 每天学一种设计模式
目前常用的设计模式有23种,何为设计模式?神圣吗?难学吗?只要坚持学,用,总结,都不难。设计模式说白了就是前人总结的设计经验,用的多了也就熟练了,但是也不要生搬硬套的去用,我们平时或多或少都有接触,只不过没有细致归纳,总体分为三大类型,创建型、结构型、行为型,后面会一一详细介绍。一、创建型模式工厂方法 抽象工厂 建造者模式 单例模式 原型模式二、结构型模式适配器模式...
2019-11-24 22:39:33
133
原创 堆排序
二叉堆:一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储。特点:用数组实现,第一个位置不存储元素,父节点比两个子节点都要大或者小(最大堆或最小堆)。实现代码比较简单,直接记录了。public class HeapSort { public static void sort(int[] a) { int len = a.length - 1; ...
2019-11-23 20:21:36
217
转载 java对象都是分配在堆内存吗
随着JIT编译期的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变得不那么“绝对”了。在编译期间,JIT会对代码做很多优化。其中有一部分优化的目的就是减少内存堆分配压力,其中一种重要的技术叫做逃逸分析。如果JIT经过逃逸分析,发现有些对象没有逃逸出方法,那么有可能堆内存分配会被优化成栈内存分配。这里借鉴一下大佬的图片:...
2019-11-20 21:33:28
319
原创 快速排序
前面介绍了几种简单排序和归并排序,今天来介绍一种使用较广的排序方法:快速排序。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
112
原创 归并排序
前面写了简单排序,平均时间复杂度是平方级的,这里介绍归并排序,比较次数在1/2NlgN到NlgN,空间复杂度O(n)。归并用的是分治递归思想,将大问题化为更小的子问题,直到数组个数为1时不能再分,此时两合并,四四合并。。。下面是自顶向下的归并排序实现:public class Merge { private static int[] temp; public st...
2019-11-17 22:05:06
123
原创 java基础知识
1.==与equals==单纯比较的是两个对象引用的指针是否相等。equals比较的是两个对象逻辑上是否相等,而不是单纯引用指针比较2.为什么定义equals方法时也要定义hashcode方法equals方法判断两个对象逻辑上是否相等,hashcode是存在对象头中的,java规范:两个对象相等,hashcod值一定要相等,反之不成立。由于hashcode默认实现返回的是类似地址值...
2019-11-17 17:31:29
154
原创 抽象类与接口
抽象类:如果一个类没有包含足够的信息来描述一个具体的对象,这样的就是一个抽象类。抽象类可以有构造方法,可以有抽象方法也可以没有。抽象类作为接口与实体类中间体,用来继承的。功能有细节实现,不断有改变时可以使用抽象类。接口:更多的是定义规范,顶层设计,将定义与实现分离,接口下面往往是抽象类来实现。所有成员方法都是抽象方法,也就是在不同的地方会有不同的实现,可以有静态方法或者默认实现,默认是abst...
2019-11-16 21:01:43
172
原创 简单排序:冒泡,插入,选折排序及希尔排序
冒泡排序:将数组中的最大或最小值往一端移动,两层循环,每次比较和移动一个数字,比较和交换复杂度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
130
原创 分库分表
分库分表解决方案:应用层:TDDL shardingjdbc(中小型企业)proxy:mycat(大企业) cobar面临的问题:1.事务解决事务问题目前有两种可行的方案:分布式事务和通过应用程序与数据库共同控制实现事务下面对两套方案进行一个简单的对比。方案一:使用分布式事务 优点:交由数据库管理,简单有效 缺点:性能代价高,特别是shard越来越多时 方案...
2019-11-12 21:55:01
102
原创 mysql分页原理及大分页优化
SELECT*FROMtableLIMIT[offset,]rows|rowsOFFSEToffset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了...
2019-11-12 20:09:47
341
原创 rabbitmq面试
为什么使用消息队列啊?通用回答是:我们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用MQ可能会很麻烦,但是你现在用了MQ之后带给了你很多的好处。比较核心的有3个业务场景:解耦、异步、削峰缺点呢?显而易见的系统可用性降低:系统引入的外部依赖越多,越容易挂掉,本来你就是A系统调用BCD三个系统的接口就好了,人ABCD四个系统好好的,没啥问题,你偏加个MQ进来,万一MQ挂了...
2019-11-03 21:45:04
204
原创 mybatis面试
MyBatis提供一级缓存和二级缓存的机制。一级缓存是SqlSession级别的缓存(默认是支持一级缓存,不需要再配置文件中配置一级缓存),在操作数据库时,每个SqlSession类的实例对象中有一个数据结构(HashMap)可以用来存储缓存数据,不同的SqlSession类的实例对象缓存的数据区域(HashMap)是互不影响的。当在同一个SqlSession中执行两次相同的sql语句时,第一...
2019-11-03 18:03:59
105
原创 spring
有哪些不同类型的IOC(依赖注入)方式?缺省的Springbean的作用域是Singleton.构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。 Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即实现了基于sette...
2019-11-03 15:04:25
125
原创 springmvc
1、SpringMVC的流程?(1)用户发送请求至前端控制器DispatcherServlet;(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;(4)DispatcherSer...
2019-11-02 18:41:00
137
原创 Java性能问题分析常用命令
1.查看线程占用cpu大小top -H -p pid2.打印堆栈信息jstack pid > 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
661
原创 volatitle
被volatitle修饰的变量能够保证可见性,不保证原子性,每个线程能够获取该变量的最新值。 实现的机制:在写volatitle变量写到主内存时,指令前会加上lock,该指令有两个影响: 将当前处理器缓存行的数据写回系统内存; 这个写回内存的操作会使得其他CPU里缓存了该内存地址的数据无效。 在多核处理器中,其他线程发现本地缓存失效,就会到主内存重读这个变量,因此在一...
2018-06-23 11:40:28
3250
转载 用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
1089
转载 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
789
原创 centos7 SSH Secure远程工具中文乱码
关于远程工具乱码的解决:使用远程工具进行连接时,如果linux有中文文件或目录,显示时会出现乱码,原因是linux编码是UTF-8,而远程工具默认是当前系统本地编码即GBK。所以解决方案是统一两者编码就OK了,但是该SSH Secure工具不能设置编码,所以通过修改linux的系统编码的方式进行统一编码。centos7以下:在linux的/etc/sysconfig目录下有一个i18n
2018-02-03 13:36:47
1748
转载 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
296
原创 urllib2.HTTPError: HTTP Error 504: Fiddler - Receive Failure
刚接触python学习,写一个简单的爬虫,在用fiddler抓取网络信息报了错 ,服务器报了504错误,经检查使用fiddler抓包时需要写明全路径,结尾以“/”结束
2017-12-15 23:21:52
3713
JAVA面试核心知识点整理.rar
2019-12-01
算法导论_原书第3版
2018-03-11
TCP-IP详解卷一协议
2018-03-11
Kubernetes权威指南
2018-02-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人