单例模式之饿汉式和懒汉式

常见的单例模式有两种:饿汉式;懒汉式。 饿汉式代码如下: /** * 单例模式之饿汉式 * @author leon * @time 2018年4月27日 下午2:28:14 */ public class HungrySingleton { // 三要素 // 1.私有对象 private static HungrySingleton hungrySingl...
分类: 其他 发布时间: 05-07 23:43 阅读次数: 6

MySQL安装过程及遇到的那些坑

本文基于Centos 6.5 和MySQL 5.7.22 一、完整卸载之前安装的MySQL服务 1.停止MySQL服务 # service mysqld stop 2.卸载MySQL服务 查看已安装的服务 # rpm -qa | grep mysql 逐个卸载已安装的MySQL服务 # rpm -e --nodeps mysql-community-server-5.7.2...
分类: 其他 发布时间: 05-07 23:42 阅读次数: 5

Spring MVC源码分析之DispatcherServlet初始化过程

DispatcherServelt本质是也是Servlet,由Servlet容器进行加载。 1.Servlet接口提供了Servlet的初始化方法:init(ServletConfig config)。 2.GenericServlet实现了方法init(ServletConfig config),此方法调用具体的初始化方法:init()。 3.HttpServletBean重写了方法ini...
分类: 其他 发布时间: 05-07 23:42 阅读次数: 6

JDK实现多线程编程的两种方式:实现Runnable接口和实现Callable接口

以面向接口的设计原则来说,实现多线程编程的方式有两种:实现Runnable接口;实现Callable接口。 实现Runnable接口 我们常见的两种实现多线程编程的方式:实现Runnable接口;继承Thread父类。Thread线程类是Runnable接口的实现类,java类不支持多根继承,类可以实现多个接口,且接口之间支持多根继承,因此此处推荐且只讨论以实现Runnable接口的方式实...
分类: 其他 发布时间: 05-07 23:42 阅读次数: 6

CI系列之一:JDK安装及配置

SSH协议内含的sftp协议上传下载文件,只要sshd服务启动,就可使用sftp服务 一、Xshell 5,sftp上传文件:jdk-7u80-linux-x64.tar.gz 1.sfp连接 $ sftp 192.168.2.131 2.上传JDK Linux源码压缩包 #输入put命令后点击Enter键之后,会弹出文件选择窗口 > put 二、安装JDK 1.移动J...
分类: 其他 发布时间: 05-07 23:42 阅读次数: 8

CI系列之二:MySQL安装及配置

一、完整卸载已安装的MySQL服务 1.停止已安装的MySQL服务 # service mysqld stop 2.查看已安装的MySQL服务 # rpm -qa | grep mysql mysql-community-common-5.7.22-1.el6.x86_64 mysql57-community-release-el6-11.noarch mysql-communit...
分类: 其他 发布时间: 05-07 23:41 阅读次数: 6

CI系列之三:代码审查工具SonarQube安装及配置

一、Linux安装和配置SonarQube SonarQube的运行依赖于JDK,安装JDK,参考博客(CI系列之一:JDK安装及配置) 1.sftp上传文件:sonarqube-5.6.6.zip,具体上传过程可以参考博客(CI系列之一:JDK安装及配置) 2.移动sonarqube-5.6.6.zip至安装目录 # mv sonarqube-5.6.6.zip /usr/local...
分类: 其他 发布时间: 05-07 23:41 阅读次数: 5

CI系列之四:Maven私服Nexus安装及配置

一、Linux安装和配置Mavne Nexus nexus的运行依赖于JDK,安装JDK,可以参照博客(CI系列之一:JDK安装及配置) 1.安装 1.1.sftp上传文件:nexus-2.14.8-01-unix.tar.gz,具体上传过程可以参照博客(CI系列之一:JDK安装及配置) 1.2.移动nexus-2.14.8-01-unix.tar.gz至安装目录 # mv nexus-...
分类: 其他 发布时间: 05-07 23:41 阅读次数: 6

Dubbo分布式环境系列之一:分布式注册中心ZooKeeper的安装及配置

一、准备工作 1.VMware Workstation安装三台装有Centos 6.5的虚拟机,IP如下: 192.168.2.137 192.168.2.138 192.168.2.139 2.使用Xshell 5的sftp分别上传到三台虚拟机上如下文件: jdk-7u80-linux-x64.tar.gz zookeeper-3.4.6.tar.gz 二、分别在三台虚拟机上进行J...
分类: 其他 发布时间: 05-07 23:41 阅读次数: 6

Python3.5初学笔记

之前学过C,C#,Java等课程,惊叹于python的简约。【笑】 刚开始学,做点笔记吧。 由于python3.0之后终于默认采用了Unicode编码,所以为了避免乱码问题,先在编译器把编码设为UTF-8,在每个.py开头加上# -*- coding:utf-8 -*-python为动态语言,大小写敏感,不需要指定变量数据类型,整形数据无限制大小,“”‘’表示的都是字符串。a = 123 # a
分类: 其他 发布时间: 05-07 23:40 阅读次数: 6

Android 动画复习

Android常用动画有frame(帧动画)动画,tween(补间动画)动画,属性动画。 1.frame动画 作为帧动画,frame动画根据快速切换图片而达到动画效果。通常用xml定义动画会更好。在res/drawable目录下新建xml文件。<?xml version = "1.0" encoding = "utf - 8"?> <animation-list xmlns:android="h
分类: 其他 发布时间: 05-07 23:40 阅读次数: 4

关于前台服务去除通知

只要用一个服务启动另一个服务,在被启动的服务里面开启开启前台服务,为其设置一个通知,然后在该服务开始真正运行之前调用stopself()即可,覆盖onDesreoy()调用stopForegroud()。原因是两个服务共用一个通知,杀掉一个剩下一个便是没有通知的前台服务。
分类: 其他 发布时间: 05-07 23:40 阅读次数: 8

Android4.4之后以及7.0访问相册和裁剪相关问题

Android4.4之后我们知道,android4.4以后,如果以下代码直接访问系统图库Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*");得到的Uri不再是content://media/类型的Uri,而是conten://…provider/类型的Uri。Android4.4之前返回的格
分类: 其他 发布时间: 05-07 23:39 阅读次数: 7

关于方法内部的类使用final

原因 在方法中的内部类访问方法内的局部变量时,jdk8之前必须使用final。反编译后看出,内部类实际上也会生成一个有构造方法的类,引用的变量作为参数传递了进来,包括外部类实例(这也是为什么内部类默认会持有外部对象的引用,容易造成内存泄漏),然后赋值给了自己的变量,也就是说如果在内部类里面改变外部变量的值,实际上改变的只是内部类自己的变量值,并非外部变量的值,就像方法传变量过来一样,无法在方法里...
分类: 其他 发布时间: 05-07 23:39 阅读次数: 7

android实现gradle动态依赖打包

一、gradle基本知识gradle是基于Groovy语言的,一个Android Project项目基本会生成三种gradle文件:module gradle、project gradle 和 setting gradle - module gradle一个模块有一个,如 上图所示app.gradle和firstflavor.gradle。该gradle是配置本模块信息的 - project
分类: 其他 发布时间: 05-07 23:39 阅读次数: 7

关于类加载机制的一些笔记

类加载流程 基本过程:加载——验证——准备——解析——初始化——使用——卸载 加载: 1.获取定义这个类的二进制流,不一定从class文件获取,所以可以自定义类加载器。 2.将二进制流转为JVM方法区的数据结构,载入方法区 3.在方法区中生成Class对象,作为访问这个类信息的外部接口 验证: 1.文件格式验证,校验合法性,比如魔数值”cafebabe” 2.元数据验证,比如类和字...
分类: 其他 发布时间: 05-07 23:39 阅读次数: 6

Android 4.4 6.0 7.0拍照、访问图库一些记录

Android 4.4 6.0 7.0拍照、访问图库一些记录按照个人实践和理解,总结出以下一些情况。 以下内容纯粹是本人自己目前总结出来的,可能存在重大误导错误,请持怀疑态度4.4以后使用Intent 的 GET_CONTENT,setType访问图库返回的uri为带doucument的content://…provider类型Uri,为只读Uri无法存入更改后图片,可以转化为绝对路径,再转化为f
分类: 其他 发布时间: 05-07 23:38 阅读次数: 7

十二月份复习部分重要知识点总结

十二月份复习部分重要知识点总结 kotlin 中data class只做数据类,不要有封装其他逻辑操作。“null”也可以以有 toString()。 Java 内部类的final字段,从反编译结果可知本质上是为了杜绝数据的不一致性。因为传递的实际上是拷贝而不是值或对象本身,如同方法传参无法在方法里面改变原来的值或者对象的引用。如果不为final,在内部类中看似可以成功改变外部的值或引用,但实...
分类: 其他 发布时间: 05-07 23:38 阅读次数: 6

自定义View的构造函数

一些琐碎的随手笔记 canvas.drawBitmap()直接画图片,可以用matrix canvas.drawPath()直接按路径画 canvas.drawXXX()直接画图形,可以用Shader加渲染效果,如渐变,和附加图片渲染BitmapShader canvas.clipPath()按路径裁剪画布 new一个canvas时注意传入一个bimap实例,但是这个bitmap应该是未绘制的...
分类: 其他 发布时间: 05-07 23:38 阅读次数: 4

JVM/Android View知识点

JVM部分基础回忆 jdk8取消了永久代,jdk7常量池移到堆中 新生代中Eden和Survivor内存比为8:1:1,每次只有一个survivor可以用,实际可用为90% 。新时代:老年代为1:2。 大对象直接进入老年代,小对象优先进入Eden,GC发生时没有被回收,则进入survivor,熬过一定次数进入老年代,当然也并非绝对。survivor内存不足时会进入老年代,老年代不足会进行GC ...
分类: 其他 发布时间: 05-07 23:38 阅读次数: 7