自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(168)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java知识点

跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。准备不充分的面试,完全是浪费时间,更是对自己的不负责(如果title很高,当我没说)。今天给大家分享下chenssy在这次跳槽中整理的Java面试大纲,其中大...

2018-03-22 13:51:50 456

原创 推荐优质技术博客

1、五月的仓颉(spring、java)2、Python3网络爬虫3、Jack Cui  (机器学习、爬虫技术)4、廖雪峰的官方网站 python、java5、java_my_life (设计模式)6、大神 http://www.cnblogs.com/LBSer/p/5183300.html廖雪峰的官方网站廖雪峰的官方网站廖雪峰的官方网站...

2018-02-05 15:07:27 570

原创 kafka发送消息的三种方式

1、发后即忘(fire-and-forget)只管往kafka发送消息而并不关心消息是否正确到达。正常情况没什么问题,不过有些时候(比如不可重试异常)会造成消息的丢失。这种发送方式性能最高,可靠性最差。kafkaTemplate.send(topic, msg)2、同步发送(sync)其实kafkaTemplate.send方法并不是返回void,而是ListenableFuture<SendResult<K, V>>,该类继承了jdk concurrent包的Fu

2020-05-31 16:10:22 17199

转载 spring data jpa动态查询

https://blog.csdn.net/anxpp/article/details/51996472

2018-08-22 10:27:29 253

原创 shell 变量的值作为新的变量名、实现二维数组

eval命令的作用是扫描命令两次再执行,如果不使用eval,只扫描一次,然后执行。看个例子:root@suse:~$ name=Barryroot@suse:~$ $name=helloBarry=hello: command not found为什么第二句给Barry变量赋值会出错呢?从报错信息可以发现shell并没有识别这是个赋值语句,而是把Barry=hello当作一个命令来执行,当然会报错...

2018-07-10 16:24:50 1916

原创 装饰者模式

前几天看了鸿洋大神的 Android 优雅的为RecyclerView添加HeaderView和FooterView,发现装饰者模式 在某些情况下是设计得如此 优雅,现在总结如下:本篇博客主要讲解一下几个问题什么 是装饰者模式 怎样实现装饰者模式 装饰者模式的优缺点 装饰者模式在Android中的应用关于观察者设计模式的,可以参考我的这篇博客 观察者设计模式 Vs 事件委托(jav...

2018-04-10 15:14:47 555

原创 深入理解JVM(一)——JVM内存模型

Java开发有个很基础的问题,虽然我们平时接触的不多,但是了解它却成为Java开发的必备基础——这就是JVM。在C++中我们需要手动申请内存然后释放内存,否则就会出现对象已经不再使用内存却仍被占用的情况。在Java中JVM内置了垃圾回收的机制,帮助开发者承担对象的创建和释放的工作,极大的减轻了开发的负担。那是不是我们就不需要了解JVM了,显然在做一些优化或者深入研究应用性能的时候,JVM还是起了很...

2018-04-01 19:53:16 355

原创 synchronized锁住的是代码还是对象

在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码: class Sync {      public synchronized void test() {...

2018-04-01 16:14:30 235

原创 Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS

首先介绍一些乐观锁与悲观锁:  悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。  乐观锁:顾名思义,就是很乐观,每次去拿数据的时候...

2018-04-01 10:43:34 201

原创 缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地...

2018-03-19 14:44:44 172

原创 linux sort,uniq,cut,wc命令详解

sortsort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。sort语法[root@www ~]# sort [-fbMnrtuk] [file or stdin]选项与参数:-f :忽略大小写的差异,例如 A 与 a 视为编码相同;-b :忽略最前面的空格符部分;...

2018-03-16 13:49:04 159

原创 数据库加锁

      场景一: 比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务的分配规则设计成了通过审核人员每次主动的请求拉取,然后服务端从任务池中随机的选取任务进行分配。这个场景看到这里你会觉得比较单一,但是实际的分配过程中,由于涉及到了按用户聚类的问题,所以要比我描述的复杂,但是这里为了说明问题,大家可以把问题简单化理解。那么在使用过程...

2018-03-14 09:53:06 998 1

原创 多线程编程注意捕获异常

多线程编程时,注意每个线程处理的任务是否存在异常的情况,如果存在,必须try catch进行捕获,否则只要一个线程出现异常,就会阻塞后面的线程的执行。      工资代发业务时,通过rabbitMQ消息队列的方式和其他系统进行交互,在对发过来的消息进行校验员工数据,其中一条数据出现了异常,导致后面的消息一只阻塞在队列中,无法消费。例如下面的例子:参考:https://my.oschin...

2018-03-09 13:55:47 277

原创 记一次synchronized锁字符串引发的坑兼再谈Java字符串

问题描述业务有一个需求,我把问题描述一下:通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。为了防止多线程取到同一个IP,同时发现该IP对应的COOKIE失效,同时去调用脚本更新COOKIE,针对IP加了锁。为了保证锁的...

2018-03-09 10:40:12 505

原创 Java 200道题

Java 200道题1. junit用法,before,beforeClass,after, afterClass的执行顺序一个测试类单元测试的执行顺序为:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass每一个测试方法的调用顺序为:@Before –> @Test –>

2018-02-02 15:32:39 2425

原创 统计客户调用接口的次数

由于用户行为异常,需要定位是哪个用户频繁调用某一个接口。日志大致格式如下:10:33:13.412 [DubboServerHandler-10.999.111.888:20880-thread-200] INFO c.s.f.c.a.ServiceExceptionAdvice[64] - call method createToken,input:["0001122798"],return:...

2018-01-29 10:49:19 13500

原创 python3的matplotlib中文乱码问题(数据是中文的情况)

Matplotlib是Python的一个很好的绘图包,但是其本身并不支持中文(貌似其默认配置中没有中文字体),所以如果绘图中出现了中文,就会出现乱码。下面给出个例子解决中文乱码问题:import matplotlib.pyplot as pltfrom matplotlib.font_manager import *cities = {"上海":10, "江苏":5,"浙江"

2018-01-22 15:37:47 1892

原创 Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)

urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的数据进行保存哦,下面整理了一些关于urllib使用中的一些关于header,代理,超时,认证,异常处理处理方法,下面一起来看看。 python3 抓取网页资源的 N 种方法1、最简单1 import urllib.reques

2018-01-16 16:35:05 204

原创 分布式锁 Java常用技术方案

分布式锁1 Java常用技术方案前言:      由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。 =======================================...

2018-01-04 16:23:45 177

原创 StringRedisTemplate常用操作

[java] view plain copystringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间  [java] view plain copystringRedisTempl

2018-01-03 16:53:26 1158

原创 实现Comparable接口不严谨导致Comparison method violates its general contract!

因为业务需要,自己的model实现了Comparable接口,在Service层使用Collections.sort()方法对model对象的list进行排序。但是在运行的时候,却报下面的异常。java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.C...

2017-12-21 14:53:07 539

原创 Java之CountDownLatch使用

CountDownLatch1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重

2017-12-06 15:21:44 145

原创 Java ExecutorService四种线程池的例子与说明

参考Executor源码解析:https://www.jianshu.com/p/87bff5cc8d8c原文这里1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?[java] view plain copynew Thread(new Runnable() {        @Override      public void run() {          /...

2017-12-06 14:29:06 153

原创 awk简介

参考:https://www.cnblogs.com/ginvip/p/6352157.html简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gaw...

2017-11-30 10:15:50 156

原创 awk 的內建函数

awk 的內建函数(Built-in Functions)(一)。 字串函数index( 原字串, 找寻的子字串 ):  若原字串中含有欲找寻的子字串,则返回该子字串在原字串中第一次出现的位置,若未曾出现该子字串则返回0。 例如执行 :[u@h W]$  awk 'BEGIN{print index("8-12-94","-")}'2leng

2017-11-29 18:18:08 221

原创 Linux下grep、tail、wc、awk文件处理命令

Linux下grep、tail、wc、awk文件处理命令阅读目录greptailwcawkgrepLinux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并匹配行打印出来。命令语法:usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B

2017-11-29 14:53:14 894

原创 创建本地项目添加.gitignore文件

文件名: .gitignore文件内容:*.class#package file*.war*.ear#kdiff3 ignore*.orig#maven ignoretarget/#elipse ignore.settings/.project.classpath#idea.idea//idea/*.ipr*.iml*.iws#t

2017-10-31 09:24:38 1202

原创 Idea 15 激活

破解步骤1.下载补丁1.下载地址:链接:http://pan.baidu.com/s/1hsviZmk  密码:1dgi2.拷贝下载的文件 JetbrainsCrack.jar 到 /bin目录下(是指你的软件安装根目录)2.修改软件bin目录下的vmoptions文件编辑"64.vmoptions" 文件和.vmoptions文件,在文件最后追加一行  "-j

2017-10-30 09:53:33 1174

原创 Nginx的安装

一、Nginx简介Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤二、Nginx安装1、下载Nginx及相关组件Linux系统是Centos 6.5 64位,我直接切换到root用户下安装进入用户目录下载程序下载相关组件[r

2017-10-25 18:14:03 205

原创 Centos查看端口占用情况和开启端口命令

Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令: lsof -i tcp:80 列出所有端口 netstat -ntlp 1、开启端口(以80端口为例)       方法一:          /sbin/iptables -I INPUT -p tcp --dport 80 -

2017-10-25 18:07:00 3608

转载 mac 如何显示隐藏文件和.点开头文件?

隐藏文件和.开头文件(比如.Trash,.DS_Store),在Unix系统下都被认作是隐藏文件。快速的查看,可以使用系统带的--- 终端----程序,在命令行定位到想要查看的目录(cd && ls)然后在目录下  ls  -la   就能看到所有隐藏文件了,如果想进一步如copy,mv等操作,网上搜索命令行工具就可以了。

2017-10-16 18:12:24 768

原创 使用explain分析及优化由多表(三个以上)组成的视图性能

视图如下图: create or replace view FLOW_SUBMITPROCESS_V asselect pi.START_USER_ID_,pir.STARTUSERID,pi.PROC_INST_ID_,pir.PROCESSINSTID,pir.CURRENTTASKINSTID as TASKID,pir.PROCESSSTARTER as S

2017-09-29 10:03:34 702

转载 Spring Data操作Redis时,发现key值出现 \xac\xed\x00\x05t\x00\tb

最近在研究redis,以及spring data对redis的支持发现了一个奇怪的现象先说现象吧,通过redisTemplate下的opsForHash方法存储hash类型的值,操作成功以后,去redis控制台显示keys * 的时候,发现一个奇怪的现象,插入的hash类型的key前面会有一堆的\xac\xed\x00\x05t\x00\tb 这种东西,见图1 

2017-09-25 15:29:48 704

原创 redis+spring+maven平台搭建

一、什么是Redis?      redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此

2017-09-25 14:59:19 310

原创 正则表达式教程

原出处来自:青藤园(www.itivy.com),目前打不开链接:http://www.itivy.com/ivy/archive/2011/11/16/learn-regular-expressions-with-ease.html程序员大咖整理发布,转载请联系作者获得授权编写验证规则最流行和最简单的方法就是正则表达式了,但唯一的一个问题是正则表达式的

2017-09-20 13:49:15 247

原创 RabbitMQ基本概念简介

转至:http://www.ostest.cn/archives/497参考:https://www.cnblogs.com/leocook/p/mq_rabbitmq_0.html引言你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构...

2017-09-18 10:21:06 456

原创 从头开始搭建一个dubbo+zookeeper平台

从头开始搭建一个dubbo+zookeeper平台 本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用。  首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后的常规方案演进历程。        其次,当服务越来越多之后,我们需要做哪些服务治理?        

2017-09-06 10:26:25 215

原创 mysql 对一个字段的多条记录update

举例说明:表useridnamestatus1张三  2张三 3李四 4李四 将同名的第一条记录的status设为:N如果你打算用下面的方式更新就错了,mysql暂时bu zhi chupdate user , tmp set user.status='Y

2017-08-04 19:36:51 4127

原创 mybatis批量插入

1、mapper.xml INSERT INTO t_user(USER_NAME,USER_PASSWORD,USER_EMAIL) VALUES (#{item.userName},#{item.userPassword},#{item.userEmail}) 一开始错误,搞了我半天,低级错

2017-07-18 19:34:34 247

原创 mybatis批量查询

1、mapper文件 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> SELECT * FROM t_user WHERE USER_ID in #{it

2017-07-18 14:56:48 724

机器学习实战中英文版+python程序实现

机器学习实战中英文pdf,python代码实现,适合初学者学习。

2017-11-14

spring4.0讲义(精简)

spring讲义,精简地讲述了spring在企业开发过程中的应用。特别适合新手学习的spring讲义。该讲义来自于北京动力节点。

2017-09-06

哒哒租车系统

根据所学知识,编写一个控制台班的“答答租车系统” 功能:  展示可租车辆  选择车型、租车量  展示租车清单,包含:总金额、总载货量及其车型、总载人量及其车型

2016-01-23

开发板程序

开发板焊机,科研实践led灯 数码管 继电器 蜂鸣器

2013-06-28

空空如也

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

TA关注的人

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