自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (1)
  • 收藏
  • 关注

转载 基于tesseract_OCR+opencv实现图片中汉字辨识

最近在研究视频字幕识别,写了一个小的程序,得到一些实验结果,同时也存在着一些问题,这里拿出来和大家分享下。 1.工具 (1)tesseract_ocr(识别汉字); (2)vs2010; (3)opencv244(其中涉及图像处理部分)。 这里我把自己用到的资料都上传了,链接奉上: http://download.csdn.net/detail/zhancf/92273332.实现过程 准备好上述...

2018-06-26 11:02:31 13176 2

转载 synchronized和ReentrantLock区别浅析

一、什么是sychronized       sychronized是java中最基本同步互斥的手段,可以修饰代码块,方法,类.      在修饰代码块的时候需要一个reference对象作为锁的对象.      在修饰方法的时候默认是当前对象作为锁的对象.      在修饰类时候默认是当前类的Class对象作为锁的对象.      synchronized

2017-12-19 10:33:05 384

转载 Java并发:volatile内存可见性和指令重排

volatile两大作用1、保证内存可见性2、防止指令重排 此外需注意volatile并不保证操作的原子性。(一)内存可见性1 概念         JVM内存模型:主内存和线程独立的工作内存Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存(比如CPU的寄存器),线程只能访问自

2017-12-13 17:53:53 384

转载 内存可见性和原子性:Synchronized和Volatile的比较

Java多线程之内存可见性和原子性:Synchronized和Volatile的比较    【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/52525724     在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。     (1)Java所有变量都存储在主内存中     (

2017-12-13 16:27:38 409 1

转载 JVM中Perm区持续上涨问题

公司一位大牛在微博上的一条,打算消化一下,毕竟今后Perm区的上涨还是有可能遇到的。“Java应用Perm区一直呈上涨趋势的原因可以用一个简单的办法排查,就是用btrace去跟踪下是什么地方在调用ClassLoader.defineClass,在大多数情况下这招都是管用的。”(1)Perm区存放的啥信息?        Perm叫做持久代,存放了类的信息、类的静态变量、类中fi

2017-07-11 15:31:56 599

转载 JVM调优:PermSpace溢出

引言: 在JVM中, PermSpace主要存放什么信息?如何去理解它的溢出呢?什么是PermSpace?   PermSpace主要是存放静态的类信息和方法信息,静态的方法和变量,final标注的常量信息等。PermSpace溢出的Case 1:   这里的JDK版本1.6.0_45(jdk7/jdk8不存在类似问题) Opertion System: U

2017-07-11 15:31:26 563

转载 【Tensorflow】Windows下基于Anaconda的Tensorflow环境配置

详细步骤见TensorFlow 安装教程1. Anaconda (Anaconda3-4.2.0-Windows-x86_64.exe[python版本3.5.2])下载安装:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/版本为:Anaconda3,for windows,64bit(tensorflow在windows

2017-04-03 16:18:10 6956 1

转载 数据库脏读、不可重复读、幻象读

数据库的事务隔离级别(TRANSACTION ISOLATION LEVEL)是一个数据库上很基本的一个概念。为什么会有事务隔离级别,SQL Server上实现了哪些事务隔离级别?事务隔离级别的前提是一个多用户、多进程、多线程的并发系统,在这个系统中为了保证数据的一致性和完整性,我们引入了事务隔离级别这个概念,对一个单用户、单线程的应用来说则不存在这个问题。首先,我们来看一下高并发的系统中

2016-11-08 16:03:15 520

转载 Spring transaction 事务 --Isolation & Progation

Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定

2016-11-08 16:01:35 641

转载 JAVA多线程和并发基础面试问答(转载)

JAVA多线程和并发基础面试问答  原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/  多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问

2016-11-04 18:37:39 324

转载 Java并发编程:线程池的使用

Java并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。  那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任

2016-11-04 18:35:12 258

转载 java中volatile关键字的含义

在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch

2016-11-04 18:31:02 251

转载 Spring JdbcTemplate方法详解

JdbcTemplate主要提供以下五类方法:execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;query方法及queryForXXX方法:用于执行查询相关语句;call方法:用于执行存储过程、函数

2016-11-03 14:48:59 641

转载 Spring AOP根据JdbcTemplate方法名动态设置数据源

说明:现在的场景是,采用数据库(Mysql)复制(binlog)的方式在两台不同服务器部署并配置主从(Master-Slave)关系;并需要程序上的数据操作方法来访问不同的数据库,比如,update*方法访问主数据库服务器,query*方法访问从数据库服务器。即把“增删改”和“查”分开访问两台服务器,当然两台服务器的数据库同步事先已经配置好。然而程序是早已完成的使用Spri

2016-11-03 14:23:33 4220

转载 (自定义注解)Java注释@interface的用法【转】

Java用  @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。@Override,@Deprecated,@SuppressWarnings为常见的3个注解。注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后,JAVAC编译器,开发工具和其他程序可以用反射来了解你的类以及各种元素上有无任何标记,看你有什么

2016-11-02 18:04:48 1222

转载 SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)

首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题。这个时候就马上打开CRT或者SSH连上服务器拿日子来分析。受网络的各种限制。于是我们就想为什么不能直接在管理后台查看报错的信息呢。于是日志管理就出现了。         其次个人觉得做日志管理最好的是Aop,有的人也喜欢用拦截器。都可以,在此我重点介绍我的实现方式。         Aop有的人说拦截不

2016-11-02 17:51:54 270

转载 JDBC与JNDI这两种连接方式有什么区别

dbc是数据库中间代理商为了是java连接数据库而定的一个协议 或者说是方法,通过jdbc-odbc的方法进行数据库连接,是连接一次创建一次的做法 1,由数据库驱动和协议组成连接数据的方法,调用中间商提供的类包,进行创建连接 2.再由连接去调用3种状态. 3.由状态来提供对数据库的操作 jndi是一种命名树的方式,把需要的类都列成目录的样式,需要哪个只要根据命名直接去 调用,是一种比较快洁的思想和

2016-11-02 17:47:35 25140

转载 JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源

com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置。一、下载Druid的jar包  下载地址:http://mvnrepository.com/artifact/com.alibaba/druid/1.0.9,如下图所示:    druid.jar

2016-11-02 17:46:33 518

转载 JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

一、C3P0下载  C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar    下载完成之后得到一个压缩包。二、使用C3P0配置JNDI数据源  Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置J

2016-11-02 17:45:29 458

转载 JNDI学习总结(一)——JNDI数据源的配置

一、数据源的由来  在Java开发中,使用JDBC操作数据库的四个步骤如下:      ①加载数据库驱动程序(Class.forName("数据库驱动类");)      ②连接数据库(Connection con  = DriverManager.getConnection();)      ③操作数据库(PreparedStatement stat = con.pr

2016-11-02 17:44:46 422

转载 HashMap与ConcurrentHashMap的区别

从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心。在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从此Map也有安全的了。ConcurrentHashMap具体是怎么实现线程安全的呢,肯定不可能是每个方法加synchronized,那样就变成了HashTable

2016-11-02 16:00:08 261

转载 CXF实战

Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构。它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于spring的轻量级容器中,也可以部署在更高级的服务器上,例如Jboss、WebSphere或WebLogic。 CXF提供了以下功能:WebService服务标准支持:Java API for XML Web Services

2016-10-23 21:04:42 309

转载 JAX-WS使用Handler实现简单的WebService权限验证

WebService如果涉及到安全保密或者使用权限的时候,WS-Security通常是最优选择。WS-Security (Web服务安全) 包含了关于如何在WebService消息上保证完整性和机密性的规约,如何将签名和加密头加入SOAP消息。不过WS-Security也有一些性能上的损耗,在信息保密要求不是很高的情况下,可以通过在SOAPHeader中添加简单的校验信息实现。具体思路是客

2016-10-23 21:03:20 3122 2

转载 JAX-WS HandlerChain使用详解

JAX-WS的Handler和Servlet的Filter相似,可以对所有WebServicer进行拦截,在Handler中可以记录日志、权限控制、对请求的SOAP消息进行加密,解密等。JAX-WS提供两个Handler接口,LogicalHandler和SOAPHandler。LogicalHandler处理的是Message Payload,只能够访问消息单元中的SOAP消息体。SOAPHan

2016-10-23 21:01:44 410

转载 用JAX-WS在Tomcat中发布WebService

JDK中已经内置了Webservice发布,不过要用Tomcat等Web服务器发布WebService,还需要用第三方Webservice框架。Axis2和CXF是目前最流行的Webservice框架,这两个框架各有优点,不过都属于重量级框架。JAX-WS RI是JAX WebService参考实现。相对于Axis2和CXF,JAX-WS RI是一个轻量级的框架。虽然是个轻量级框架,JAX

2016-10-23 21:00:19 490

转载 C#调用WebService服务(动态调用)

1 创建WebService[csharp] view plain copyusing System;  using System.Web.Services;    namespace WebService1  {      ///       /// Service1 的摘要说明      ///      

2016-10-23 20:58:54 13834 1

转载 MySQL优化之BTree索引使用规则

MySQL优化之BTree索引使用规则从一道题开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分A where c1=x and c2=x and c4>x and c3=xB where c1=x and c2=x and c4=x order by c3C where c1=x and c4= x group

2016-10-18 23:36:20 2037

原创 Mysql建表与索引使用规范详解

一、Mysql建表、索引等一些总结一、 MySQL建表,字段需设置为非空,需设置字段默认值。二、 MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。三、 MySQL建表,如果字段等价于外键,应在该字段加索引。四、 MySQL建表,不同表之间的相同属性值的字段,列类型,类型长度,是否非空,是否默认值,需保持一致,否则无法正确使用索引进行关联对比。五、 M

2016-10-18 23:29:48 4730

转载 网站前端性能分析工具-Yslow的使用方法

Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了博客模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速度的秘籍,就是通过这款插件分析得出的。网络上已经有不少Yslow使用说明了,本文我想介绍下我使用Yslow的方法和一些别人没提到的小技巧。Yslow的安装方法现在Yslow已经有很多版

2016-10-18 21:38:43 1885

转载 btrace实际案例分析

BTrace实际案例分析问题表象问题描述1.最近有项目组的童鞋反馈,web页面频繁出现假死的状态。2.web页面的假死出现是概率事件,且无法确定假死的引发原因。3.是在一定的操作之后出现的,但是无法确定究竟是哪些操作引发这些操作。问题分析初步分析我们都知道web容器一般都是单实例

2016-10-18 21:34:19 420

原创 利用btrace在线监控java程序状态

一、背景        在生产环境中可能经常遇到各种问题,定位问题需要获取程序运行时的数据信息,如方法参数、返回值、全局变量、堆栈信息等。为了获取这些数据信息,我们可以通过改写代码,增加日志信息的打印,再发布到生产环境。通过这种方式,一方面将增大定位问题的成本和周期,对于紧急问题无法做到及时响应;另一方面重新部署后环境可能已被破坏,很难重新问题的场景。 二、BTrace功能    

2016-10-18 21:33:02 1750

转载 servlet request getHeader(“x-forwarded-for”) 获取真实IP

request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106客户端主机名:request.getRemoteHost()输出:abcrequest.getHeader("Host") 输出:192.168.0.1:8080Web服务器名字:request.getServerName()输出:192.168.0.1服务器监听的端口:req

2016-10-14 09:44:46 399

转载 使用SPRING中的线程池ThreadPoolTaskExecutor实现JAVA并发

ThreadPoolTaskExecutor是一个spring的线程池技术,它是使用jdk中的java.util.concurrent.ThreadPoolExecutor进行实现。ThreadPoolTaskExecutor的参数:  int corePoolSize:线程池维护线程的最小数量.   int maximumPoolSize:线程池维护线程的最大数量.   

2016-10-11 11:22:22 29336 1

转载 Java线程池ExecutorService

示例[java] view plain copy print?import java.util.concurrent.ExecutorService;  import java.util.concurrent.Executors;  import java.util.concurrent.ScheduledExecutorServ

2016-10-10 23:08:24 390

转载 利用tomcat-redis-session-manager解决tomcat的分布式session问题

[摘要:Redis+Tomcat完成session流程 1.客户端初次要求办事端 2.办事端发生session并set cookie相应给客户端 3.客户端再次要求办事端,会带上cookie 4.办事端依据cookie找到对应的session 完成思绪 若是我们]Redis+Tomcat实现session流程1.客户端首次请求服务端2.服务端产生session并set co

2016-10-09 14:57:06 8327 7

转载 ActiveMQ 集群

1、ActiveMQ 集群(1)Queue consumer clusters(消费者集群):  简介: 同一个queue,如果一个消费者失效, 那么任何未经确认的消息将会被发送给queue上的其它消费者。如果一个消费者比其它消费者执行的更快,它将会消费更多的消息。如果任何一个消费者执行速度变慢,那么其他消费者将来弥补空缺。所以,消费者在(队列中)处理消息时,可以有一个可靠的负载均

2016-10-04 13:49:15 607

转载 ActiveMQ之消息指针

消息指针(Message cursor)是activeMQ里一个非常重要的核心类,它是提供某种优化消息存储的方法。消息中间件的实现一般都是当消费者准备好消费消息的时候,它会从持久化存储中一批一批的读取消息,并发送给消费者。消息指针维护着下一批待读取消息的相关位置信息。 消息游标:  当producer发送的持久化消息到达broker之后,broker首先会把它保存在持久存储中。接下

2016-10-04 13:47:21 503

转载 ActiveMQ之 TCP通讯机制

ActiveMQ支持多种通讯协议TCP/UDP等,我们选取最常用的TCP来分析ActiveMQ的通讯机制。首先我们来明确一个概念:   客户(Client):消息的生产者、消费者对ActiveMQ来说都叫作客户。   消息中介(Message broker):接收消息并进行相关处理后分发给消息的消费者.          为了能清楚的描述出ActiveMQ的

2016-10-04 13:46:44 3552

转载 ActiveMQ可靠性机制

消息的签收(Acknowledgment):  客户端成功接收一条消息的标志是这条消息被签收。  成功接收一条消息一般包括如下三个阶段:     (1) 客户端接收消息     (2) 客户端处理消息      (3) 消息被签收      签收可以由ActiveMQ发起,也可以由客户端发起,取决于Session签收模式的设置。   

2016-10-04 13:46:04 575

转载 JMS消息传输机制

JMS消息传送模型:  消息传送机制, 是基于拉取(pull)或者轮询(polling)的方式.  JMS具备两种"消息传送模型": P2P和Pub/sub. (1) P2P:点对点消息传送模型, 允许JMS客户端通过队列(queue)这个虚拟通道来同步或异步发送消息; 消息的生产者为Sender, 消费者为receiver.       receiver主

2016-10-04 13:45:34 2672

Android 百度地图API-定位周边搜索POI源码

Android 百度地图API-定位周边搜索POI源码

2014-03-27

空空如也

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

TA关注的人

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