自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Amazing

NikoBelic

  • 博客(56)
  • 资源 (3)
  • 问答 (5)
  • 收藏
  • 关注

原创 Java多线程:解决高并发环境下数据插入重复问题

1.背景描述应用框架:Spring + SpringMVC + Hibernate 数据库:Oracle11g一家文学网站向我系统推多线程低并发推送数据,我这边观察日志和数据库,发现有一个作者被存储了2次到数据库中。按照程序的编写逻辑,重复的数据是会被判断出来不被存储的。2.原因分析由于网络原因,客户可能连续推送了两条重复的数据,两条数据时间间隔非常小,因此导致

2016-11-23 17:56:53 69866 15

转载 String类深入解析

众所周知,String是由字符组成的串,在程序中使用频率很高。Java中的String是一个类,而并非基本数据类型。 不过她却不是普通的类哦!!!1 String对象的创建关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外: String s=new String("Hello world"); 问题是参数”Hello world”是什么东西,也是字符串对象吗?莫非用字

2017-03-15 18:02:34 535

原创 剑指Offer_4Extra_合并两个有序数组

题目描述 有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请事先一个函数,把A2中的所有数字插入到A1zhong并且所有的数字是排序的。解题思路和前面的例题一样,很多人首先想到的办法是在A1中从头到尾复制数字,但是这样会出现多次复制一个数字的情况。 更好的办法是从尾到头比较A1和A2中的数字,并把较大的数字复制到A1的合适位置。 注意边界条件的控制,如果A1已经移动

2017-03-14 22:03:45 465 1

原创 剑指Offer_4_替换空格

题目描述 请实现一个函数,把字符串中的每个空格替换成 %20 。例如输入”We are happy”,则输出”We%20are%20happy” 不能用java的一些api,完全用C语言的方式完成本题,不然会被鄙视。解题思路 虽然我们可以使用遍历的方式,创建一个新的空数组来完成这道题,时间复杂度也只是O(n),但是浪费了很多空间。 虽然我们可以正序遍历数组,每碰到一个空格,就将后边的

2017-03-14 22:03:24 371

原创 剑指Offer_3_二维数组中的查找

题目描述 在一个二位数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增顺序排序。请完成一个函数, 输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路 发现规律:1.首先选取数组中右上角的数字。如果该数字等于key,查找过程结束 2.如果该数字大于key,则删除这个数字所在的列(因为该列所有元素都比key大) 3.如果该数字小于key,则删除这个

2017-03-14 22:02:51 402

原创 剑指Offer_2_实现Singleton模式

不好的解法:方法一:仅支持单线程的单例模式,只有if判断。public class NotSafeSingleton{ private static NotSafeSingleton instance = null; private NotSafeSingleton(){} public static NotSafeSingleton getInstance() {

2017-03-14 22:01:41 267

原创 搜索-Solr学习笔记

1 Solr基本概念1.1 什么是SolrSolr是基于Lucene的全文检索服务器Solr需要部署在Web容器中使用POST方法向Solr服务器发送一个描述Field及其内容的XML文档,Solr根据xml文档添加、删除、更新索引。1.2 Solr与Lucene的区别Lucene是一个开元全文检索引擎工具包,并不是一个全文检索引擎。 Solr的目的是打造一款企业级引擎系统,他是一个搜索引

2017-03-14 12:34:34 402

原创 搜索-Lucene学习笔记

1 全文检索 和 索引1.1 索引将非结构化数据中的一部分信息 取出来,重新组织,使其变得有一定结构,然后对此有 一定结构的数据进行搜索,从而达到搜索相对较快的目的。这部分从非结构化数据中 取出的然 后重新组织的信息,我们称之索引。例如:字典。字典的拼音表和部首检字表就相当于字典的索引,对每一个字的解释是非结 构化的,如果字典没有音节表和部首检字表,在茫茫辞海中找一个字只能顺序扫 。然而字的某 些信

2017-03-08 14:35:31 260

原创 Redis学习(四) - 数据安全与性能

4.1 持久化选项持久化有两种方式:快照 snapshot:将某一时刻的所有数据都写入到硬盘里面只追加文件 append-only file:执行写命令时,将写命令复制到硬盘里面。两种持久化方式可以同时或单独或都不使用。基本命令Snapshotsave 60 1000stop-writes-on-bgsave-error nordbcompression yesdbfilename d

2017-03-06 18:55:32 534

原创 ElasticSearch - 30分钟快速入门

1 IntroductionElasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。 不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:分布式的实时文件存储,每个字段都被索引并可被搜索分布式的实时分析搜索引擎可以扩展

2017-02-19 21:03:02 911

原创 Spring学习笔记 - Spring 整合 JMS - ActiveMQ

Spring JMS1 maven配置<!--Spring ActiveMQ--><spring-activemq.version>5.14.3</spring-activemq.version><activemq.version>5.14.3</activemq.version><dependency> <groupId>org.springframework</groupId> <a

2017-02-08 13:54:10 395

转载 如何在同一台电脑上使用两个Git账户

但是如果你想在一台机器使用两个github账号(比如私人账号和工作用账号)。这个时候怎么指定push到哪个账号的test仓库上去呢解决方案是两套key,再写个配置文件,注意生成两个Key时,不要随便输入enter键就就不会覆盖掉老的两个key(假设你已经拥有私有账号且已经OK,现在想使用另一个工作用账号):1:为工作账号生成SSH Key$ ss

2017-02-07 14:51:56 2390

原创 CodeReview工具:UpSource+SVN+Idea搭建与使用

1 下载、安装、配置1.1 官网主页下载zip包https://www.jetbrains.com/upsource/features/ 免费版可以创建10个用户,admin + guest + 8 user1.2 安装配置要求:内存建议8G以上Linux系统配置/etc/security/limits.conffile:(可选操作)查看linux文件打开上限ulimit -n,ulimit

2017-02-06 21:45:37 10644

原创 Ngxin安装、反向代理、负载均衡学习笔记

1 什么是NginxNginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。2 特点2.1 反向代理我们经常使用正向代理,即用户手动设置代理服务器的ip和端口号,通过代理

2017-02-06 00:21:04 2022

转载 Timer与ScheduledThreadPoolExecutor

在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录。在JDK中提供了两种方法去创建延迟周期性任务。TimerTimer是java.util包下的一个类,在JDK1.3的时候被引入,Timer只是充当了一个执行者的角色,真正的任务逻辑是通过一个叫做TimerTask的抽象类完成的,TimerTask也是j

2017-02-03 18:29:18 219

原创 Spring学习笔记 - Spring Boot

Spring Boot1 最简单的一个SpringBoot应用程序1.1 导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.4.1.RELEASE</version></dependency>1.

2017-01-31 12:47:00 1043

原创 Spring学习笔记-WebServive

Spring 可以与RMI、Hessian、Burlap、HTTP invoker 等远程调用整合,但是都太麻烦了,在实际中应用很少,本文主要介绍如何使用Spring与WebService整合实现远程调用。 几个名词:SOAP:简单对象访问协议WSDL:WebService描述语言JaxWs配置package data_persistent.config;import org.springf

2017-01-30 22:52:29 659

原创 Spring学习笔记-Spring Cache

缓存对于某些不要求实时获取最新数据的请求非常好用,如果再高并发环境下,数据库成为系统的性能瓶颈,使用缓存能够大幅度提升系统性能。 本文以Redis作为缓存容器,结合Spring来模拟一个缓存系统。 个人认为,如果你会使用Redis,则完全没有必要将其与Spring整合来实现缓存,自己使用Jedis工具来实现缓存更加灵活。但是如果你不懂Redis,那么使用SpringCache+Redis就可以了

2017-01-25 10:19:13 359

原创 Spring学习笔记 - Spring Data

本章将介绍如何使用Spring的JDBCTemplate、如何使用SpringData整合MongoDB、如何使用SpringData在运行时自动生成Repository。10.1 配置文件类全局配置package data_persistent.config;import org.springframework.web.servlet.support.AbstractAnnotationConfi

2017-01-23 18:21:08 381

原创 Redis学习(三)-Java实现基于Jedis+Spring的通用工具类

“”“Spring整合Jedis Maven引入 “”” org.springframework.data spring-data-redis spring−data−redis.versionredis.clientsjedis{spring-data-redis.versio

2017-01-21 18:53:27 1115

原创 Python日常-格式化日期与时间戳转换

#设a为字符串import timea = "2011-09-28 10:00:00"#中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday

2017-01-21 16:08:26 459

原创 Python日常-格式化日期与时间戳转换

#设a为字符串import timea = "2011-09-28 10:00:00"#中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday

2017-01-21 16:08:22 4044

原创 Python日常-字典排序

python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1. 按value排序dic = {'a':31, 'bc':5, 'c':3, 'asd':4, 'aa':74, 'd':0}dict= sorted(dic.iteritems(), key=lambda d:d[1], reverse = Tr

2017-01-21 16:06:46 203

原创 Redis学习(二)- 常用命令

2.1 字符串Redis处理自增自减的命令 命令 用例和描述 incr incr keyname 值+1 decr decr keyname 值-1 incrby incrby keyname amount 值+amount decrby decrby keyname amount 值-amount incrbyfloat incrbyflo

2017-01-21 11:28:26 591

原创 Linux实用技巧-CURL实现HTTP的GET POST方法

Curl是Linux下一个很强大的http命令行工具,其功能十分强大。一、CURL对HTTP的常规访问1. 访问网站$ curl http://www.linuxidc.com回车之后,www.linuxidc.com 的html 显示在屏幕上了 2. 保存页面用curl option: -o$ curl -o page.html http://www.linuxidc.com可以看到屏幕上出现一个

2017-01-19 13:14:43 321

转载 Python日常-两个字典(dict)合并

dict1={1:[1,11,111],2:[2,22,222]}dict2={3:[3,33,333],4:[4,44,444]}合并两个字典得到类似{1:[1,11,111],2:[2,22,222],3:[3,33,333],4:[4,44,444]}方法1:dictMerged1=dict(dict1.items()+dict2.items())方法2:

2017-01-18 09:45:02 274

原创 Redis学习(一)-数据结构

1 Redis数据结构简介 结构类型 结构存储的值 结构的读写能力 String 字符串、整数、浮点数 对字符串或字符串的一部分执行操作;对整数、浮点数进行自增、自减 List 一个链表,链表上的每个节点都包含了一个字符串 从链表的两端push或者pop元素,根据index对链表进行trim;读取单个或多个元素;根据值查找或移除元素 Set 字符串无序col

2017-01-17 22:51:55 198

原创 Python日常:json.loads&json.dumps的使用

每次遇到json loads/dumps始终搞不清方向,写段代码试下:import json dict_ = {1:2, 3:4, "55":"66"} # test json.dumps print type(dict_), dict_ json_str = json.dumps(dict_) print "json.dumps(dict) return:" print type

2017-01-17 15:56:44 471

转载 Java实现九大排序算法

一、对比分析图均按从小到大排列k代表数值中的”数位”个数n代表数据规模m代表数据的最大值减最小值 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。二、冒泡排序

2017-01-17 14:13:45 2045

转载 Windows环境MySql-5.7.17的安装配置

一、下载软件1. 进入mysql官网,登陆自己的Oracle账号(没有账号的自己注册一个),下载Mysql-5.7.17,下载地址:http://dev.mysql.com/downloads/mysql/2.将下载好的文件解压到指定目录,解压在E:\mysql-5.7.17-winx64二、安装过程  1.首先配置环境变量path,将E:\mysql-5.7.

2017-01-16 22:51:08 399

原创 Spring学习笔记-C9-SpringSecurity

Chapter09 Spring Security9.1 Spring Security简介Spring Security 是为基于Spring的应用程序提供声明式安全保护的安全性框架。SpringSecurity充分利用了DI和AOP技术。本章将使用SpringSecurity保证Web安全性。9.1.1 SpringSecurity模块SpringSecurity被分成了11个模块 ACL

2017-01-12 21:37:19 4792 2

原创 Spring学习笔记-C7-SpringMVC高级技术

Chapter07 SpringMVC高级技术7.1 SpringMVC的环境搭建方式Java配置方式 全局配置public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ /** * Spring上下文配置 * ContextLoader

2017-01-10 10:55:35 268

原创 Algo-C1

Algo-C11.1 二叉树按层遍历(BFS)针对二叉树的宽度又下班遍历宽度优先遍历常使用队列结构面试中,该类题目常对换行有所要求,即按二叉树的结构打印出各个节点(换行)思路: BFS不必多说,用队列完美解决遍历顺序问题。但是如何按照树的结构进行换行符的打印呢? 我们需要2个指针,last:表示当前行最后一个节点,nlast:表示下一行最后一个节点。 当currentNode为last

2017-01-09 02:31:19 227

原创 Spring学习笔记-C6-渲染Web试图

Chapter06 渲染Web试图我们最常使用的JSP文件是使用InternalResourceViewResolver试图解析器来渲染试图。 在第5章中,我们用这个视图解析器进行了配置,为了得到试图的名字,会使用”/WEB-INF/views/”前缀和”.jsp”后缀,从而确定来渲染模型的JSP文件的物理位置。 SpringMVC规定以了一个名为ViewResolver的接口,它大致如下所示:

2017-01-09 00:09:20 390

原创 Spring学习笔记-C5-SpringMVC起步

Chapter05 SpringMVC起步5.1 请求在SpringMVC组件之间的流转请求发送DispatcherServlet查询一个或多个HandlerMapping来确定请求的下一站。按照HM查询结果,将请求转发到指定的Controller。Controller返回ModelAndView给DispatcherServlet。DispatcherServlet使用视图解析器View

2017-01-02 02:44:22 448 1

原创 Spring学习笔记-C4-面向切面的Spring

Chapter04 面向切面的Spring** Spring学习笔记-C3-Spring装配Bean高级篇**4.1AOP所要解决的问题将横切关注点(包裹在业务代码外层)与业务逻辑相分离,AOP实现将横切关注点与他们所影响的对象之间的解耦。除此之外,AOP还还会在声明式事务、安全和缓存进行应用。 AOP用于重用通用功能,传统方式最常见的是继承和委托。继承会造成对象体系非常脆弱,委托会对委托对象进行

2016-12-29 19:32:41 462

原创 Oracle数据库运维、备份常用指令

Oracle数据库运维、备份常用指令1. Oracle数据泵备份导出1.1 准备工作在linux系统下创建导出结果存放的文件夹,切记要切换到oracle用户创建,否则会出现权限问题。su - oraclemkdir /home/oracle/dwcr_dumps如果使用root创建了文件夹,可是使用命令来修改文件权限。chown /home/oracle/dumps oralce:oinstall

2016-12-29 11:45:58 5215

原创 Spring学习笔记-C3-Spring装配Bean高级篇

Chapter03 高级装配3.1 环境与Profile一般情况下,开发环境所需要的spring配置文件,例如dataSource数据源肯定与生产环境是不一样的,开发环境到生产环境或测试换几个时,我们都需要手动的去替换大量配置文件,非常麻烦,Spring的Profile为我们解决了这个问题,通过激活不同的profile来控制创建哪些bean。下面举一个最简单的例子 创建两个不同的类,假设他们是不同

2016-12-27 23:34:08 339

原创 Spring学习笔记-C2-Spring装配Bean

Chapter02 装配Bean2.1 Sprig装配Bean的方式Spring装配Bean的方案有三种,任选其一。在XML中进行显示配置在Java中进行显示配置隐式的bean发现机制和自动装配自动化装配Bean Spring从两个角度来实现自动化装备:组件扫描component scanning:Spring自动发现应用上下文所创建的bean自动装配autowiring:Spring

2016-12-26 21:33:51 405

原创 Spring学习笔记-C1-Spring核心简要介绍

Chapter01 Spring之旅本章简要介绍一下Spring的核心模块:依赖注入、切面。并介绍一下Spring的模块组件,对Spring有一个简要的了解。在后续章节将详细学习Spring的DI、AOP等核心组件。1.依赖注入(DI)传统的代码编写方式,例如一个Student类中创建了Arm、Leg、Body等对象,那么我们需要创建Student对象时,他就会按照类中写死的那样去创建固定类型的Ar

2016-12-26 01:21:45 411

传智网上书城项目(非SSH,纯Jsp+Servlet完成)

传智网上书城项目(非SSH,纯Jsp+Servlet完成)

2015-08-11

基于C/S架构的学生选课系统(C#)

小学期做的学生选课系统 权限分为管理员和学生.比较简单,供新手学习.

2015-08-11

科研成果登记审核系统(C#+SqlServer)

我做的毕业设计,内容非常齐全,包括如下: 1.完整代码 2.数据库生成脚本 3.开题报告 4.中期答辩ppt 5.毕业答辩 6.毕业论文

2015-08-11

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

TA关注的人

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