自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卜可的博客

静以修身

  • 博客(83)
  • 资源 (14)
  • 收藏
  • 关注

原创 设计模式之单例模式

2018-1-2

2021-06-22 17:56:29 189

原创 maven上传依赖到私服

maven上传依赖到私服

2020-05-15 22:26:18 2883

原创 解决jenkin插件无法下载的问题

今天安装jenkin后,打开插件管理页面提示如下错误:There were errors checking the update sites: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunC...

2020-03-28 17:52:10 1804

原创 jenkin安装后提示离线的问题

安装jenkin后浏览器访问时提示jenkin处于离线状态,原因是jenkin启动时会请求www.google.com验证网络状态,国内当然是访问不了谷歌了,将这个地址改为百度或者其他可以访问的地址即可。编辑文件文件地址: /var/lib/jenkins/updates/default.json修改文件中第一行connectionCheckUrl节点为以下内容:{"connectionC...

2020-03-28 17:42:58 735

原创 解决docker容器无法访问宿主机端口的问题

最近在工作时遇到一个问题,docker容器访问不了部署在宿主机的redis服务器。telent6379端口不通。经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。操作如下:firewall-cmd --permanent --zone=trusted --change-interface=docker0firewall-cmd --reloa...

2020-03-26 15:06:23 21625 2

原创 docer:利用Dockerfile构建springboot项目镜像

Dockerfile文件内容:FROM openjdk:8-jdk-alpineVOLUME /tmpADD xing-yu-gaint-0.0.1-SNAPSHOT.jar app.jarENV JAVA_OPTS=""ENTRYPOINT exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.j...

2019-03-25 02:30:56 1387

原创 加快spring boot的tomcat启动速度

java -Djava.security.egd=file:/dev/./urandom -jar /app.jar在启动命令中加上-Djava.security.egd=file:/dev/./urandom即可,在普通tomcat容器中设置该命令可以加快启动速度。这在阿里云服务器上作用非常明显。...

2019-03-25 02:18:42 1662

原创 mysq服务器配置文件说明

[client]default-character-set=utf8mb4#mysqlde utf8字符集默认为3位的,不支持emoji表情及部分不常见的汉字,故推荐使用utf8mb4 [mysql]default-character-set=utf8mb4 [mysqld]skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 #skip-name-...

2019-03-21 16:36:21 550

原创 doceker:常见的容器启动命令

每次启动docker容器都要去dockerhub查看具体命令,非常不方便。本文将日常所用的容器启动命令整理,将会不定期更新。1.mysql容器的创建该命令指定容器挂载的数据目录,root用户密码,端口,一起一些常用设置(忽略表明大小写,默认字符集)docker run --name mysql-3306 \-v /var/opt/docker/mysql/data:/var/lib/my...

2019-03-21 16:31:43 3136 1

原创 spring源码解析(基于5.0.9版本)

本文基于spring5.0.9,层层解析spring ioc容器的创建过程。

2019-03-16 16:11:42 4422

原创 SpringMvc源码解析(基于5.0.9)

研究源码前,先找到入库类,再根据入口方法一步一步跟踪深入。SpringMvc的入口类为配置在web.xml中继承了servlet的DispatcherServlet,以下是他的继承关系:先看这个特殊的servlet的init方法,封装在了HttpServletBean:public final void init() throws ServletException { if (logge...

2019-03-14 16:23:22 662

原创 java8stream操作:从集合中获取符合条件的元素

List<Student> students = new ArrayList<>(); students.add(new Student(1,"张三",90)); students.add(new Student(2,"李四",60)); students.add(new Student(3,"王五",30)); ...

2018-11-22 14:19:09 68769 8

原创 java8stream操作:将集合根据元素的某个属性分组求统计数据

student类:public class Student { private int id; private String name; private int score; public Student(int id, String name, int score) { this.id = id; this.name = na...

2018-11-22 14:01:47 34504

原创 java8stream操作:将集合转化为集合元素中属性为key的

List<Student> students = new ArrayList<>(); students.add(new Student(1,"张三",90)); students.add(new Student(2,"李四",90)); students.add(new St

2018-11-22 13:50:35 12443 3

原创 Spring Boot 零xml整合dubbo

项目结构首先看下完整项目结构:各模块功能介绍如下parent :父工程,依赖版本控制。dubbo-sample-api :公共文件所属模块,provider和consumer都依赖该模块。dubbo-sample-provider : dubbo的provider模块,api模块中接口的具体实现dubbo-sample-consumer : 消费者模块,间接providerpa...

2018-10-24 17:51:04 722

原创 通过nginx映射指定目录文件给外部访问

开发在排查线上问题时需要要查看服务器的日志文件。但是我们把服务器的访问权限下放给开发也不现实。对此我们可以通过ngxin配置,实现通过浏览器查看日志,浏览日志文件。先给出完整配置 server { listen 80; location ^/logs/fanlai~*\.(log|txt)$ { add_header C...

2018-07-28 15:15:12 54971 8

原创 java代码连接redis集群

public static void main(String[] args){ Set<HostAndPort> nodes = new HashSet<>(); nodes.add(new HostAndPort("192.168.0.107", 6380)); nodes.add(new HostAndPort("192.168.0.107",...

2018-04-13 17:33:57 2571 3

原创 redis:详解三种集群策略

redis包含三种集群策略主从复制哨兵集群主从复制在主从复制中,数据库分为俩类,主数据库(master)和从数据库(slave)。其中主从复制有如下特点:主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库从数据库一般都是只读的,并且结束主数据库同步过来的数据一个master可以拥有多个slave,但是一个slave只能对应一个master...

2018-04-13 17:10:02 53752 9

原创 redis操作五种数据的命令说明

String字符串赋值表达式 set key value127.0.0.1:6379> set mykey myvalue0OKset 会覆盖该key之前的值,如果不想数据被覆盖,可以用setnx,表示如果key不存在,才设置这个值127.0.0.1:6379> setnx mykey 11(integer) 0另外可以用setex设置数据的...

2018-04-12 21:24:20 11175

原创 redis常见命令

进入客户端 redis-cli关闭redis服务 redis-cli shutdown启动redis服务 redis-service ../etc/redis.config获取当前数据库信息 info获取redis服务器配置信息 config get *清空元素 flushdb退出连接 ...

2018-04-12 21:20:23 548

原创 redis配置文件常见配置项说明

daemonize noRedis是否以守护进程的方式运行,默认为非守护进程(no),建议改为yes daemonize yestimeout 3000客户端闲置多长时间关闭连接,如果指定为0,表示关闭该功能dbfilename dump.rdb本地备份文件名save 自动RBD快照保存策略,表示seconds秒内进行了changes次写操作就触发快...

2018-04-12 21:19:28 635

原创 redis的安装

本文介绍redis的在linux系统下的安装,虽然redis也有windows版本,但是不建议使用。1、安装gcc yum install gcc2、将下载的redis-4.0.9.tar.gz上传到linux服务器,或者直接在linux服务器下载最新版本 wget http://download.redis.io/releases/redis-4.0.9.tar.gz...

2018-04-12 21:15:22 564

原创 redis的持久化策略

redis的持久化方式有俩种,持久化策略有4种:RDB(数据快照模式),定期存储,保存的是数据本身,存储文件是紧凑的AOF(追加模式),每次修改数据时,同步到硬盘(写操作日志),保存的是数据的变更记录如果只希望数据保存在内存中的话,俩种策略都可以关闭也可以同时开启俩种策略,当Redis重启时,AOF文件会用于重建原始数据RDBRDB定时备份内存中的数据集。服务器启动的时候,可...

2018-04-12 21:12:18 11162 2

原创 redis概述

redis以键值对的形式存储的内存数据库。数据都是缓存在内存中,读写快,也可以支持持久化保存到硬盘。本文介绍redis的特点以及与memcached的比较特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超...

2018-04-12 21:10:16 501

原创 如何快速判断一个数字是否是2的n次方

public boolean check(int m){ if(n < 1) return false; int n = m & m(m-1); return n == 0;}定义2的n次方的数字m,我们知道m二进制为0001,0010,0100……这样的,而m-1的二进制为0000,0001,0011……这样的。可见m&(m-1)的运算结果...

2018-04-09 22:47:23 7953

转载 java面试题精解3:大型网站在架构上应当考虑哪些问题

1、分层:分层是处理任何复杂系统最常见的手段之一,将系统横向切分成若干个层面,每个层面只承担单一的职责,通过下层为上层提供的支撑和服务以及上层对下层的调用来形成一个完整的复杂的系统。比较常见的分层模式是MVC,将软件系统分为持久层(提供数据存储和访问服务)、业务层(处理业务逻辑,系统中最核心的部分)和表示层(系统交互、视图展示)。需要指出的是:分层是逻辑上的划分,在物理上可以...

2018-03-16 09:48:50 1339

原创 java面试题精解 2:javaIO模型与系统底层IO模型

因为安全的原因,系统将内存分为用户空间和内核空间。java无法操作内核空间,在读取数据时只是提交一个read请求给系统,系统内核先将数据准备到内核空间,再将数据复制到用户空间,这样java就可以在用户空间获取到想要的数据。I/O操作是依赖于缓冲区的操作,进程执行I/O操作时,归结起来就是向操作系统发出请求,让它把缓冲区里的数据排干(写)或者填满(读)。这样就会导致数据在传输过程中需要在应用...

2018-03-15 18:22:42 738

原创 java面试题精解1:详解XSS攻击、SQL注入攻击、CSRF攻击

1、xss攻击1.1 什么是xss攻击XSS全称cross-site scripting(跨站点脚本),是当前 web 应用中最危险和最普遍的漏洞之一。攻击者向网页中注入恶意脚本,当用户浏览网页时,脚本就会执行,进而影响用户,比如关不完的网站、盗取用户的 cookie 信息从而伪装成用户去操作,携带木马等等。 1.2 xss分类反射型XSS(非持久性跨站攻击)存储型XS...

2018-03-15 17:46:30 3054 1

原创 java常见排序算法

java中常见的7种排序算法冒泡(Bubble)排序——相邻交换 选择排序——每次最小/大排在相应的位置 插入排序——将下一个插入已排好的序列中 壳(Shell)排序——缩小增量 归并排序 快速排序 1、冒泡(Bubble)排序 void BubbleSortArray() { for(int i=1;i<n;i++) { ...

2018-03-12 10:28:04 407

原创 java虚拟机内存分配方式

在JVM中,内存分配方式分为俩种:指针碰撞空闲列表1、指针碰撞如果内存是完整的,空闲的内存存放在一边,用过的内存放在另外一边,中间有个指针作为分界点的指示器。需要分配新内存的时候,指针往空闲内存那边挪动一段与新指针大一小相等的距离。这种分配方式就叫指针碰撞。2、空闲列表如果java堆中的空闲内存是碎片化不完整的,已使用内存与空闲指针存在交叉。虚拟机中有一利列表记录...

2018-03-06 17:25:33 1011

原创 异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

异常描述com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureThe last packet successfully received from the server was 340,065 milliseconds ago. The last packet sent su...

2018-03-05 15:20:33 1822

原创 Java:将map中的key转化为小写

public static Map<String, Object> transformUpperCase(Map<String, Object> orgMap) { Map<String, Object> resultMap = new HashMap<>(); if (orgMap == null...

2018-02-09 11:28:34 20042

原创 eclipse代码折叠展开功能快捷键

eclipse代码折叠展开默认快捷键: Ctrl+Shift+Numpad_Divede(小键盘的/号) Ctrl+Shift+Numpad_Multiply(小键盘的*号)大部分笔记本没小键盘,可以自定义改成其他的,设置快捷键方式: windows->perferences->general->key

2018-01-10 09:42:20 15514

原创 ocrale:循环插入数据

orcale数据库中,从一张表查询个别字段,并循环插入到另外一张表,入库字段不仅仅是原始表中的字段:declare cursor userids is select id_ from pl_user;begin for item in userids loop insert into pl_user_role (id_,role_id,user_id,create_

2018-01-03 11:37:45 1135

原创 POJO转换类工具类

javaweb项目中,少不了需要领域类之间的转换,比如po类转换为dto。 这个功能很多第三方工具类都有提供,比如比如org.apache.commons包中的BeanUtils。本文也提供了一个pojo的转换工具类,经测算,该工具类的运行效率比BeanUtils快20倍。下文是工具类代码:/** * 实体类转化工具类 * @author 漆可 * @date 2017年12月

2017-12-27 17:54:58 3925 1

原创 解决Gson解析数据用map接收时int自动转化为double问题

Gson可以将json字符串转换成map, 但是在转成map时, 原json字符串中的int , long型的数字会默认被转换成double类型 , 导致数字会多一个小数点 , 如 1 会转成 1.0。我们可以用自定义TypeAdapter替代Gson默认的adapter解决: Gson gson = new GsonBuilder().registerTypeAdapter(new

2017-12-12 14:10:51 12919 9

原创 java中foreach循环原理

一般,我们使用会用foreach取代for循环进行集合的遍历操作。public static void main(String[] args){ List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); for (String str : list) {

2017-11-30 15:28:53 1888

原创 java遍历Map效率最高的方式

遍历Map的方式有很多,通常场景下我们需要的是遍历Map中的Key和Value,那么推荐使用的、效率最高的方式是:public static void main(String args...){ HashMap<String, String> hm = new HashMap<String, String>(); hm.put("111", "222"); Set<Map.E

2017-11-30 14:57:41 15952 7

原创 java:if (i == 1)和if (1 == i)有区别吗?

经常看到类似于if (1== i)的代码,其实在java中它和if (i == 1)是没有区别的,而且后者阅读性更强些(除非你喜欢从右往左阅读)。那么为什么有的人喜欢用表达式if (1== i)呢?这得从C/C++说起,在C/C++中,”if “条件判断条件成立,是以0与非0为基准的,0表示false,非0表示true。如果有这么一段代码:int i = 2;if (i == 1)在如上代码中,2

2017-11-30 14:53:05 10597 5

原创 java:判断数组中是否包含某元素

方法一 private static boolean isContainKey(String[] keys, String targetValue) { if (keys == null || keys.length == 0) { return false; } for (String str :

2017-11-24 09:40:39 36943 6

Spring Boot实战

在当今Java EE 开发中,Spring 框架是当之无愧的王者。而Spring Boot 是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 JavaEE开发的颠覆者:Spring Boot实战从Spring 基础、Spring MVC 基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 当你学完本书后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题。

2017-09-13

安卓柱状图表

安卓柱状图表

2016-12-23

一个绚丽的注册动画

一个绚丽的注册成功动画

2016-09-05

安卓仿电商商品详情中间部分滑动时页顶在顶部特效

现在很多电商类app的商品详情页(其他app也有类似效果,比如qq音乐)都有这么一种效果:在详情页面当用户向上滑动页面超过一定距离后,中间的标题栏会顶在顶部,往下拉回到固定高度又会消失。本demo可以实现该效果

2016-08-16

安卓自定义searcherView

一个简单的searcherView,使用简单,功能齐全

2016-07-19

listview万能适配器

一个通用的适配器`BaseCommAdapter<T>,非常简单,继承该`BaseCommAdapter<T>`,利用泛型传入item对应数据的javabean类,我们只需要重写3个方法即可(其中有一个还是构造方法)。

2016-06-28

一个酷炫的安卓加载动画

一个酷炫的安卓加载动画

2016-06-17

android利用注解精简代码

安卓开发通过注解精简代码,使用基类的完美封装

2016-06-05

自定义view

android自定义view,自定义属性的使用

2016-05-18

fragment俩种管理方式

可以实现对fragment的切换显示

2016-05-08

fragment使用封装

android对于Fragment操作的显示封装

2016-05-07

android_ormlite_jar包

android_ormlite_jar包

2016-05-04

Android使用ORMLite进行数据库操作

Android使用ORMLite进行数据库操作的简单教程

2016-05-04

安卓帧动画播放框架

安卓帧动画播放框架,完美解决OOM异常,播放200张图片无压力

2015-10-25

空空如也

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

TA关注的人

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