- 博客(49)
- 收藏
- 关注
转载 volatile关键字理解
先看代码public class Test { private static int init_value = 0; public static void main(String[] args) { new Thread(() -> { int a = init_value; while (a ...
2019-07-11 20:26:00
130
转载 Java文件读写分析
本文内容:IO流操作文件的细节分析;分析各种操作文件的方式。读写一个文件从一个示例开始分析,如何操作文件:/** * 向一个文件中写入数据 * @throws IOException */private static void writeFile() throws IOException { File file = new File("D://tmp/a.txt...
2019-07-11 20:25:00
182
转载 HBase原理分析
宏观架构HBase从宏观上看只有HMaster、RegionServer和zookeeper三个组件。Master: 负责启动的时候分配Region到具体的RegionServer,执行各种管理操作,比如Region的分割合并。HBase的Master是不负责数据的读写的,所以它挂了集群照样可以运行并读写数据,但是无法新建删除表。RegionServer:RegionServer...
2018-11-20 23:37:00
141
转载 ES ik分词器使用技巧
match查询会将查询词分词,然后对分词的结果进行term查询。然后默认是将每个分词term查询之后的结果求交集,所以只要分词的结果能够命中,某条数据就可以被查询出来,而分词是在新建索引时指定的,只有text类型的数据才能设置分词策略。新建索引,并指定分词策略:PUT mail_test3{ "settings": { "index": { "refre...
2018-11-12 21:45:00
289
转载 springBoot中使用定时任务
简单示例导入依赖springBoot已经默认集成了定时任务的依赖,只需要引入基本的依赖就可以使用定时任务。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-parent</artifac...
2018-10-24 16:34:00
85
转载 HBase基本操作
本文内容:利用SpringBoot整合HBase,基于HBaseJavaAPI的二次封装,可以直接引用jar包使用,目前测试已支持HBase1.1.2和HBase1.4.6两个版本。下文内容为该项目的使用方式,同时也介绍了HBaseJavaAPI的基本使用。项目地址:码云: https://gitee.com/Yao_Qi/HBaseComponentHBase 组件接口文档基...
2018-09-07 15:52:00
86
转载 spring中基于注解使用AOP
本文内容:spring中如何使用注解实现面向切面编程,以及如何使用自定义注解。一个场景比如用户登录,每个请求发起之前都会判断用户是否登录,如果每个请求都去判断一次,那就重复地做了很多事情,只要是有重复的地方,就有优化的空间。现在就把重复的地方抽取出来,暂且称之为 " 拦截器 ",然后每次请求之前就先经过" 拦截器 ",这个编程的思想就可以称之为面向切面编程。AOP(Aspect O...
2018-07-10 15:58:00
77
转载 springBoot集成redisCluster
本文主要内容:springBoot简介,在SpringBoot中如何集成Redis,可配置Redis集群。关于SpringBoot你想要的,这里都有:https://spring.io/projects/spring-boot 这是SpringBoot的官方文档,开发者已经将你需要的东西都给你了。SpringBoot是一个大的容器,可以在这里很轻松地创建各种Spring应用,并且轻...
2018-06-27 14:52:00
106
转载 crontab计划任务
本文主要内容:如何使用crontab设置定时任务,并给出相关实例。crontab介绍crond是linux平台下实现计划任务的一项服务。crontab只是一个文件,提供给crond计划任务的配置文件。先来看看这个配置文件:cat /etc/crontab第一行:SHELL变量指定了系统要使用哪个shell,这里是bash;第二行:PATH变量指定了系统执行命令的路径;第三...
2018-06-27 14:44:00
80
转载 工厂模式
简介工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。工厂模式主要是解决创建对象的问题,典型的应用就是在spring中的IOC,反转控制,反转控制就是把创建对象的权限交给框架,所以spring就是一个生产对象的工厂。思路工厂模式的思路就是设计一个产生对象的机制,让生产对象的过程交给第三方...
2018-03-30 18:09:00
58
转载 Git学习笔记
一.git文件状态变化状态说明:Untracked: 刚新加的文件,还没有纳入git管理范围UnModified: 已经committed的文件Modified: 已经committed的文件,通过vi等修改后,就变成ModifiedStaged: git add 后的文件状态转换:Untracked->Staged: 通过git add 来完成UnModifie...
2018-03-27 11:12:00
121
转载 redis集群离线安装
环境准备:redis-4.0.7.tar.gz redis的安装包Ruby环境(集群搭建需要用ruby创建, ruby环境在2.2以上。)rubygems-2.7.4.tgz 和 redis-3.2.2.gem (后面的是redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-3.2.2.gem。)centos7,注意安...
2018-02-08 15:55:00
167
转载 elasticSearch基础教程
概念 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库Apache Lucene™基础之上。然而,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。它可以被下面这样准确的形容:一个分布式的实时文档存储,每个字段可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展,并支持 PB 级别的结构化...
2018-02-08 14:26:00
280
转载 hadoop2.6.5运行wordcount实例
运行wordcount实例在/tmp目录下生成两个文本文件,上面随便写两个单词。cd /tmp/mkdir filecd file/echo "Hello world" > file1.txtcp file1.txt file2.txt在hadoop平台中新建 /input 目录,这里不是系统的 / 目录。cd /usr/local/hadoop-2.6.5./b...
2018-01-04 20:02:00
239
转载 搭建hadoop伪分布式环境
伪分布式就是只有一台机器,既是namenode又是datanode。一台阿里云服务器(centos)即可完成。Java环境首先需要安装Java环境,下载jdk的安装包,解压到/usr/java/,然后配置环境变量。vim /etc/profile#set java environmentexport JAVA_HOME=/usr/java/jdk1.8.0_151expor...
2018-01-03 23:02:00
62
转载 Java RuntimeException
异常机制是指当程序出现错误后,程序如何处理。 当异常抛出后,会发生以下几件事。首先,同Java中创建其他对象一样,将使用new在堆上创建异常对象。 然后,当前的执行路径被终止,并且从当前环境中弹出对异常对象的引用,此时,异常处理机制接管程序。 并开始寻找一个恰当的地方来继续执行程序。例如,在parseInt的源码中,如果s为空,会抛出一个NumberFormatException异常。...
2018-01-01 21:21:00
159
转载 如何搭建Git服务器
安装git首先需要在服务器上安装git环境,以centos为例:yum install git然后添加一个用户,就叫git吧。adduser gitpasswd gitinput your password...然后在终端输入 git添加信任关系linux默认是不信任任何机器的,通过ssh登录其他主机都需要输入密码,建立信任关系的过程就是一台主机生成公钥,把公钥放到其...
2018-01-01 21:20:00
84
转载 tomcat启动时间过长的问题
阿里云下的服务器安装jdk1.8和tomcat之后出现了一个问题,初次运行tomcat没有问题,可以正常访问tomcat首页,但是关闭之后再重启就发现tomcat首页刷不出来。而且再次关闭之后还报错了。报错信息上显示Tomcat may not be running,说明tomcat还没有启动,说明之前开启tomcat就出现问题了。方案一:官方的文档里有这个问题的解释:修改$JA...
2017-12-05 22:27:00
1818
转载 spring集成redis
redis是一种非关系型数据库,与mongoDB不同的是redis是内存数据库,所以访问速度很快。常用作缓存和发布-订阅式的消息队列。redis官方没有提供windows版本的软件。windows版本一直是微软维护的。下载地址:https://github.com/MSOpenTech/redis/releases。这里是redis相关的教程。http://muxiulin.cn...
2017-11-24 18:37:00
111
转载 linux新建用户并赋管理员权限
输入useradd新建一个用户[root@java-devenv ~]# useradd yaoqi[root@java-devenv ~]# passwd yaoqipasswd是修改用户密码的命令,这里会提示输入两次密码,密码是看不见的。然后修改该用户所属组,wheel组就是一个管理员组,加入wheel组,就相当于把用户赋予了管理员权限。[root@ja...
2017-11-17 19:52:00
182
转载 数据库插入中文变成问号
今天做一个关于ssm的项目,数据库用的是MySQL,但是遇到一个比较奇葩的乱码问题,数据库里面存的中文取出来变成了问号,存进去的中文也变成了问号,但是手动添加到数据库中的中文取出来又是显示正常的。一路查了很多资料,终于解决了,然后加上自己的分析,整理了一下思路。乱码问题出现的情况有很多种,针对web开发这一流程来说,可以根据数据的流向来定位乱码出现的位置。前台发起一个请求,数据通过h...
2017-11-16 22:51:00
3513
转载 spingMVC异步上传文件
框架是个强大的东西,一般你能想到的,框架都会帮你做了,然后只需要会用就行了,spingmvc中有处理异步请求的机制,而且跟一般处理请求的方法差别不大,只是多了一个注解;spingmvc也可以将string、list、map转化成json数据;然后前台发起一个ajax请求,后台处理完成返回json数据,这就是异步上传文件的基本思路。1、springMVC处理异步请求配置 首先是需...
2017-09-02 13:22:00
56
转载 Java发送QQ邮件
面试的时候被问到这个问题,别人问我用Java发过邮件没有,被问得一脸懵逼。然后就研究了一下,不是很难,按照网上的方法折腾了几天就搞出来了。首先,使用QQ邮箱发送邮件之前需要在邮箱里面配置,开启pop3和smtp服务,其实这就是两个网络协议,一个是接受邮件的协议,一个是发送邮件的协议;POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎...
2017-07-17 20:58:00
62
转载 Java实现对象的序列化
什么是对象的序列化?序列化:把对象转化成字节序列的过程就是对象的序列化;反序列化:把字节序列转化成对象的过程就是对象的反序列化。单看概念比较抽象,但是看代码就会明白。对象序列化的用途1、Java程序在运行中,对象都是分配在内存中,而序列化的一个用途就是将内存的中对象转化成磁盘中的对象。2、对象不能直接在网络中传输,有时候需要将对象转成字节序列在网络中传输,这就是对象序列化...
2017-06-24 23:12:00
79
转载 java设计模式之--单例模式
单例模式是GoF设计模式其中的一种并且属于创造的设计模式目录。定义上,这似乎是一种非常简单的设计模式,但从实现的角度来说涉及到非常多的方面。 单例模式的实现在开发者中一直是个很有争议的话题。这里我们将学习单例模式原则,不同的单例实现方式和最佳实践。单例模式单例模式限制类的实例和确保java类在java虚拟机中只有一个实例的存在。单例类必须提供一个全局的访问来获取...
2017-06-23 09:54:00
65
转载 如何实现一个评论模块
前言: 这篇文章主要介绍了博主在学习过程中的一些思路、以及这个评论模块的大致的实现过程,可能并不是常规的做法(全都是自己YY出来的),希望能提供一些思路。一、实现一个什么样的评论模块? 最开始接触到评论的时候,是在自己做一个个人博客的时候遇到的,当时自己想的很简单,别人评论,然后博主回复。类似于这样: 这种评论很简单,数据库里只需要把回复作为一个字段存进去...
2017-06-15 22:44:00
1387
转载 springMVC中上传图片
上传图片,很常见的问题,基本每个人都会遇到,但是个人认为在springMVC中上传图片相对来说是比较简单的,因为框架已经帮我们做好了许多事情。这篇文章所用的环境:spring4.3.3 、jdk1.8 、eclipse。环境准备如果项目中没有导入以下jar包请先导入,这里有:http://download.csdn.net/download/u011403655/855954...
2017-05-26 20:35:00
61
转载 使用HttpClient和Jsoup实现一个简单爬虫
一直很想了解一下爬虫这个东西的,完全是出于兴趣,其实刚开始是准备用python的,但是由于种种原因选择了java,此处省略很多字... 总之,如果你想做一件事情的话就尽快去做吧,千万不要把战线拉得太长了,否则时间一长其实发现自己什么都没做... 拖延症就是这样慢慢形成了。在写一个爬虫以前需要了解一下HTTP协议的,通常的B/S程序都是客户端请求、服务端响应这种模式,通过一个URL就能...
2017-05-19 20:29:00
142
转载 排序算法之快速排序
快速排序是一个速度非常快的交换排序算法,思路比较简单:从一个待排的数据序列中任取一个数据作为分界值,所有比这个值小的数据放到这个数的左边,比这个值大的数据放到右边,这样经过一次下来,这个序列分成了左右两个序列,左边的数据都比分界值小,右边的数据都比分界值大,然后再对左右两个子序列进行递归。所以,快速排序的关键在于第一趟要做的事情。实现思路如下:(1)、选出一个分界值。(2)、从左...
2017-05-18 22:20:00
70
转载 排序算法之冒泡排序
冒泡算法是最常见的排序算法之一,算法的思路也比较简单,也比较容易实现。对于一组n个数据的记录,最坏的情况需要n-1趟比较。第一趟:依次比较索引为0和1、1和2、2和3...n-2和n-1的元素,如果前者大于后者则交换这两个数据,所以经过第一趟,最大的元素排到了最后;而第二趟就不用管最后一个数据了,只需要再遍历前面的n-1个数据,以此类推。例如,19,45,16,21*,23,21...
2017-05-16 16:42:00
57
转载 排序算法之直接选择排序
直接选择排序是最简单直观的排序算法,属于选择排序。直接算法的排序思路:第一趟,程序将记录定位在第一个数据上,拿第一个数据依次和后面的数据进行比较,如果第一个数据大,交换,依次类推。经过第一趟比较,这组数据中最小的数据被选出来,排在第一位。第二趟,程序将记录定位在第二个数据上,拿第二个数据依次和后面的数据比较,同样地,第二个数据大就交换。经过第二次比较,这轮最小的书被选出来...
2017-05-08 19:31:00
151
转载 mybatis入门案例
mybatis简介MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。在m...
2017-05-02 18:27:00
68
转载 Java集合之Map和Set源码分析
以前就知道Set和Map是java中的两种集合,Set代表集合元素无序、不可重复的集合;Map是代表一种由多个key-value对组成的集合。然后两个集合分别有增删改查的方法。然后就迷迷糊糊地用着。突然在一个风雨交加的夜晚,感觉不能这样迷迷糊糊,得深入地去研究一下,于是去看了看源码(jdk1.8)。1.Map源码。/** * An object that maps key...
2017-04-25 20:31:00
82
转载 hibernate4使用原生jdbc进行批处理
在hibernate中,有一级缓存session和二级缓存sessionFactory这些机制,一方面为编码提供了便利,同时也会有一些副作用。比如有较大的数据量交互的话,缓存反而会降低效率。最近在做一个有关批量更新的程序,在调用session.update()之后,对象会保存在缓存中,如果数据量超过缓存的容量就会出错。解决方法是:在hibernate中调用jdbc批量处理的API,使用原...
2017-04-20 19:06:00
159
转载 HibernateUtil
import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.boot.registry.StandardServiceRegistry;import org.hibernate.boot.registry.StandardServiceRegistryBuild...
2017-04-02 08:57:00
86
转载 struts2中ajax的使用
前面写过原生js实现ajax的博客,但是用起来不是太方便,jquery对原生的js进行了很好的封装,使用起来也更简单;但是在项目中使用了struts2,处理ajax却又不同,花了几天时间研究,终于解决了这个问题。首先,大家都知道struts2中有处理表单提交的方法,表单元素中的name对应着action中的成员变量,当你提交的时候,会把输入组中的数据映射到action的成员变量中,这...
2017-01-12 18:35:00
81
转载 hibernate缓存机制(转)
原文出处:http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写...
2016-10-09 19:59:00
61
转载 struts2.5的配置及其注意事项
坑爹的apache,官方的jar包提供了一个struts2的运行最小jar包本以为下载这个最小的jar包放到lib目录下,配置一下就能运行,结果在tomcat环境下并不能运行成功,需要再加入两个jar包log4j和Javaassist,这两个jar包在之前的版本中也有,所以2.5的版本jar包没有很大变化,但是在配置文件中却有一点点小变化。web.xml中的过滤...
2016-10-07 18:22:00
102
转载 javaMd5加密
package com.md5Test;import java.security.MessageDigest;public class Md5Test { public void toMD5(String plainText) { try { //生成实现指定摘要算法的 MessageDigest 对象。 ...
2016-09-28 18:56:00
175
转载 jsp中使用原生js实现异步交互
Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。 Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写数据,这一特点主要得益于XMLHTTPRequest对象。XMLHtt...
2016-08-21 22:34:00
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人