自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 问答 (2)
  • 收藏
  • 关注

原创 java8中optional的使用

java8中optional的使用​ 我们在写java代码中,尤其是业务代码,如果一个类的组合以及级联关系过多时,很容易造成空指针异常,如下面一个例子://人public class Person { private Car car; public Car getCar() { return car; }}//车public class Ca...

2019-04-03 16:40:52 3029

原创 MyBatis运行原理与解析

文章目录一、项目结构二、mybatis内部运行原理解析MyBatis的运行主要有两大部分:一是读取配置文件到Configuration,用来创建SqlSessionFactory,二是执行SqlSession。前者容易理解,后者的执行处理过程比较复杂,需要涉及到反射以及动态代理技术,接下来通过一个最基础的demo来分析一下mybatis的运行过程。(前方大量代码,引起极度不适者回避)一、项目结...

2018-11-20 16:45:24 16894 6

原创 使用springboot自定义starter

创建一个maven项目,在pom文件中添加如下依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs...

2018-10-29 13:57:42 17723 9

转载 一致性哈希算法原理

一致性哈希算法原理   一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。  但现在一致性has...

2018-07-02 16:14:55 196

原创 Centos7配置yum源

Centos7配置yum源操作步骤:Centos7配置yum源在centos系统中使用yum命令来安装软件时,默认会从国外的网站下载,速度十分缓慢,因此可以配置阿里的yum源。操作步骤:备份:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup下...

2018-05-07 23:38:49 679

原创 3、Redis集群部署

Redis集群部署Redis集群架构图Redis集群搭建Redis集群部署Redis集群架构图集群架构图:Redis容错机制: 架构说明:(1)所有的redis节点彼此互联(使用PING-PONG机制),内部使用二进制协议优化传输速度和带宽。(2)节点的fail是通过集群中超过半数的节点检测失效时才生效。(3)客户端与redis节点...

2018-04-28 09:41:36 234

原创 2、Redis持久化以及主从复制

Redis持久化以及主从复制Redis的持久化方案Redis主从复制1.介绍2.配置:3.主从复制过程Redis持久化以及主从复制Redis的持久化方案​ Redis的高性能是由于其将所有数据都存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。​ Redis支持两种方式的持...

2018-04-28 09:39:51 314

原创 1、Redis安装以及五种基本数据类型

Redis入门Redis安装Redis五种基本数据类型1、String:key-value(做缓存)类型2、Hash:key-fields-values(做缓存)3、List:有顺序可重复4、Set:元素无顺序,不能重复5、zset:sorted set:有序集合Redis入门Redis安装Redis下载地址](http://redis.io...

2018-04-28 09:37:14 366

转载 java值传递的问题

为什么说Java中只有值传递

2018-04-02 14:44:22 134

原创 克隆

克隆java中实现克隆的方式有两种,一种是实现Cloneable接口,这种方式会存在深拷贝和浅拷贝的问题。另一种是实现Serializable接口,通过序列化的方式进行克隆,反序列话会生成崭新的对象。实现Cloneable接口浅拷贝(Object类中的clone()方法)是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝。深拷...

2018-04-02 14:06:20 203

原创 动态代理

最近在看spring的aop,由于aop底层原理使用动态代理实现的,所以对动态代理做一番研究。 动态代理分为两种,jdk动态代理和CGlib动态代理1、jdk动态代理jdk动态代理的一个要求是必须只能为接口创建代理实例。接下来来看代码: - 定义一个普通接口package com.wisdom.jdkproxy;/******************************...

2018-03-14 14:20:33 236

转载 Java 虚拟机体系结构

Java 虚拟机体系结构

2018-03-05 20:16:37 152

转载 IntelliJ IDEA推荐

Java人员正确使用 IntelliJ IDEA的方式

2018-03-01 10:19:40 291

原创 Java通过Jedis连接Redis异常,错误记录

紧接上一篇文章,Centos7下Redis安装教程我用Jedis连接Redis时报错,代码和错误如下图 解决方案: 在redis.conf这个配置文件中,找到bind和protected-mode这两个属性,将其修改。 默认: 修改后: 在vmware中创建centos7虚拟机并安装Redis后,如果以redis.conf配置文件运行的话,只能本机(仅仅是...

2018-02-26 15:04:28 520 1

原创 Centos7下Redis安装教程

Redis下载地址,约定版本号最后一位偶数为稳定版本,奇数为非稳定版本,我这里下载的是redis-4.0.8版本在/usr/local下新建redis目录,将下载的redis压缩包上传至/usr/local/redis目录下解压并安装(需要注意的是安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装,输入gcc:yum install gcc-c++...

2018-02-24 20:32:06 921

原创 CentOS7下 搭建 FastDFS 分布式文件服务器

FastDFS介绍1.FastDFS是什么2.FastDFS架构3.Tracker集群4.Storage集群5.Storage状态收集6.文件上传、下载流程FastDFS服务器搭建1.安装libfastcommon2.安装FastDFS3.配置Tracker4.配置Storage5.测试6.安装fastdfs-nginx-modulea.storage ...

2018-02-24 09:41:56 2432 3

原创 Python基础四之函数

"""函数:1.示例2.带参数的打印3.传递参数(位置实参和关键字实参)4.为形参指定默认值5.return返回值6.可选参数"""# 1.示例def greet(): print("hello")# 调用函数greet() # 输出结果:hello# 2.带参数的打印def greet(username): print("hello " ...

2018-02-13 11:44:44 192

原创 Linux系统下Nginx反向代理Tomcat集群

环境介绍Centos7 X64nginx-1.8.0Tomcat 8.5一、安装nginx1.将下载的linux下的Nginx压缩包上传至/usr/local/nginx目录。(nginx下载地址) 2.使用tar -vxf命令解压 nginx压缩包,进入解压后的目录中,发现该目录下并没有可执行的程序,在这里还需要安装一下编译环境。 3.编译环境介绍。(需要有联...

2018-02-11 15:49:08 487

原创 Python基础三之字典操作

"""字典:(个人认为可以当做是json字符串去学习,内部存储的都是键值对)1.示例2.添加键值对3.修改字典中指定键的值4.删除键值对5.遍历字典6.遍历字典中的所有键,keys()7.使用sorted()按顺序遍历字典中的所有键(使用keys()实际上返回的是一个列表)8.遍历字典中的所有值values()9.使用集合set()可以再遍历出来的值列表中剔除其中的重复值10...

2018-02-09 16:03:45 168

原创 Python基础二之简单列表操作补充

简单列表操作"""1.遍历列表2.python利用缩进来判断代码行与前一个代码行之间的关系3.创建数值列表,range()函数能够生成一系列的数字4.range()中还可以指定第三个参数,表示步长5.list()函数可以将range()的结果直接转变为列表6.找出列表中的最大、最小值,求和。min()、max()、sum()7.列表解析8.获取列表中指定索引段的元素,pyt...

2018-02-08 14:53:39 173

原创 Python基础一之字符串和简单列表操作

操作字符串"""1.upper(),将字符串变为大写2.lower(),将字符串变为小写3.title(),将每个单词的首字符大写,其余字母小写4.使用“+”号可以对字符串进行拼接5.rstrip()可以用于删除字符串末尾多余的空白6.lstrip()可以用于删除字符串开头多余的空白7.strip()可以用于删除字符串开头和末尾多余的空白"""name = "wi...

2018-02-08 11:27:20 198

原创 Windows系统下Nginx反向代理Tomcat集群

Windows系统下Nginx反向代理Tomcat集群环境要求jdk环境 (我使用的是1.8版本)两台Tomcat以上服务器(我使用的是Tomcat7版本)windows版Nginx压缩包(我使用的是1.8版本,Nginx下载地址)1.将两个Tomcat服务器放在同一目录下(最好使用同一版本),修改端口号,务必使两个服务器的所有端口(不只是修改8080端口,也需要

2018-02-06 16:33:21 482

原创 Centos 7发布web项目

Centos 7发布web项目上一篇文章介绍了Centos7安装jdk、mysql和tomcat,此篇记录一下Centos7中发布web项目。(上一篇地址)前提:准备一个war包备份数据库,将备份的数据库上传到Centos7中。 我在此使用命令行操作,具体方法如下: 在windows的dos命令行中,首先net start mysql开启mysql服务,然后输入mys

2018-02-06 13:31:26 1587

原创 Linux系统中安装jdk、mysql和tomcat

版本说明: centos7-x64 +jdk-8u162-linux-x64 +mysql-5.7.21-x64 +apache-tomcat-8.5.27Linux中安装jdk1.8首先先检测一下linux系统中是否已经安装了jdk,因为在centos安装过程中,如果你勾选了安装jdk platform选项的话,linux系统就会将其安装。不过此jdk与我们平时开发用的j

2018-02-05 17:24:20 418

转载 spring整合ehcache缓存

1 Spring 对缓存的介绍 Since version 3.1, Spring Framework provides support for transparently adding caching into an existing Spring application. Similar to the transaction support, the caching abstracti

2018-01-10 14:39:03 180

转载 MySQL常见命令

MySQL常见命令和操作一览 转载 2015年08月13日 15:14:46 标签:

2017-12-07 20:20:23 199

原创 Eclipse和Tomcat的整合

1、 选择Eclipse中Windows——>Preferences——>Server——>Runtime Environments,点击add。2、选择你安装的tomcat版本,然后点击Next。3、点击browse选择tomcat安装路径,然后点击Installed JRE选择你自己的jdk环境。完成后点击finish。4、可以看到已经有tomcat服务器,点击apply and close。5

2017-12-07 14:07:28 588

原创 java集合框架之迭代器

迭代器首先来展示集合框架的容器类类库结构图,方便理解。 1、要想实现对容器的遍历,就需要借助于迭代器。迭代器也是一个对象,而且是一个轻量级的对象,因为创建它的代价很小。 2、在Collection容器中的所有子类和接口都可以借助Iterator和ListIterator这两个迭代器来遍历其容器内元素。但是查看java api文档会发现,Collection实现了一个Iterable接口,那么这个

2017-11-20 19:59:34 225

原创 java集合框架概述

泛型1、相信大家对集合框架都有一定的了解,由于自己老是混淆这一块内容的实现方式,故在此通过自己的阅读thinking in java一书后在此做一些总结,以便回顾。 在javase5之前,由于没有泛型的概念,程序员可以向容器中添加任意类型的对象。来看如下例子://创建dog类class Dog{ String dog = "dog";}//创建cat类class Cat{}pub

2017-11-16 14:08:33 201

原创 java日期类操作:Date、SimpleDateFormat、Calendar简介

1、Date类简介 Date类是java.util下的一个封装时间和日期信息的类。不过Date类中用于时间分量的计算已经被Calendar类所取代。重点介绍setTime和getTime两个方法。 public void testDate(){ //创建一个date对象并打印时间 Date date = new Date(); System.ou

2017-11-14 22:14:31 359

原创 equals方法和==的区别

先上例子: public void testEquals() { String str1 = new String("hello"); String str2 = str1; String str3 = new String("hello"); System.out.println(str1 == str2); //true

2017-11-13 19:45:53 196

转载 android sdk manager设置国内镜像快速下载sdk

万恶的GFW,Android sdk manager通过google的url下载sdk卡成翔了,在网上找了几个国内镜像,亲测可用。Android SDK在线更新镜像服务器:中国科学院开源协会镜像站地址:IPV4/IPV6: http://mirrors.opencas.cn 端口:80IPV4/IPV6: http://mirrors.opencas.org 端口:80IPV4/IPV6:

2017-05-03 00:02:40 23366 1

原创 JDBC连接数据库(Mysql、抽取工具类)

package com.jdbc.hello;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.junit.Test;import

2017-04-20 21:16:29 630

原创 JDBC连接数据库(Mysql)

package com.jdbc.hello;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.junit.Test;import

2017-04-20 21:12:56 244

原创 Java实现单链表翻转

Java实现单链表反转,递归和非递归两种形式/** * 反转单链表 *//** * 定义链表 * * @author 16026 * */class Node { int val; Node next; public Node(int val) { this.val = val; }}public class ReverseList

2017-03-24 13:24:17 303

转载 一遍记住Java常用的八种排序算法与代码实现

一遍记住Java常用的八种排序算法与代码实现

2017-03-13 21:35:20 294

原创 java实现归并排序算法

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并操作的工作原理如下: 第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 第二步:设定

2017-03-13 15:13:10 5013 1

原创 Java实现堆排序算法

堆是一种重要的数据结构,为一棵完全二叉树, 底层如果用数组存储数据的话,假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2。分为最大堆和最小堆,最大堆的任意子树根节点不小于任意子结点,最小堆的根节点不大于任意子结点。所谓堆排序就是利用堆这种数据结构来对数组排序,我们使用的是最大堆。处理的思想和冒泡排序,选择

2017-03-12 21:22:44 316

原创 Java实现约瑟夫环问题

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。/** * @author 16026 * */import java.util.ArrayList;import java.util.List;

2017-03-05 14:48:34 34995 5

原创 Java求一个整数的二进制中1的个数

常规解法。 思路:将整数n与1进行与运算,当整数n最低位是1时,则结果非零,否则结果为0。 然后将1左移一位,继续与n进行与运算,当次低位是1时,结果非零,否则结果为0。 循环以上操作,记录非零的次数即可。 代码如下: public static int times1(int n ){ int count = 0;

2017-02-25 17:10:54 6603 1

空空如也

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

TA关注的人

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