自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 消息队列rabbitmq在java中的使用

        前言:RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。        在开始本次小demo之前,本地必须装有rabbitmq,本人是在mac系统...

2018-11-24 17:12:20 397

原创 消息队列rabbitmq在mac上的安装

一、安装rabbitMq.        在mac平台上安装rabbitMq,打开终端,在终端上输入以下命令:brew install rabbitmq       安装rabbitMq需要一些时间,请耐心等待下。       安装完后一般是在/usr/local/Cellar目录下,在此目录可以看到有一个erlang文件夹,里面放置着erlang语言的环境,erlang是一钟面...

2018-11-24 13:17:13 318

转载 JAVA 比较两张图片的相似度的代码

        今天工作上遇到一个需求,需要扫描原图与加水印之后的图片做对比,从而拿到加水印图片的原始图片,想到的是把文件转换为二进制流或者用图片的像素点做对比,巧合之下在网上发现了下面一段代码,稍作修改之后就能满足我的需求,给作者点赞。原文:http://www.open-open.com/code/view/1448334323079。代码如下:import java.awt.i...

2018-08-08 18:01:23 2175 2

原创 JVM的几种垃圾收集算法

在我以前学习C++语言时,很头疼的一个问题就是内存的分配,C++需要我们自己分配内存,用完的时候还需要自己释放,当我们开发人员一旦出现疏忽忘记释放资源的时候,累积起来就很容易抛出OutOfMemoryError异常。       后来我转到了Java开发,随着慢慢的深入后,我接触到了Java虚拟机(下面就叫jvm了),在内存这个问题上,jvm可以自动为我们回收一些未被引用的对象,从而达

2018-01-08 19:40:31 456 1

转载 Oracle PL/SQL,把过程与函数说透

转载自EricHu大神。文章写的通俗易懂,很赞,分享。原文链接:http://www.cnblogs.com/huyong/archive/2011/04/28/2031541.htmlOracle PL/SQL,把过程与函数说透本篇主要内容如下:6.1 引言6.2 创建函数6.3 存储过程6.3.1 创建过程6.3.2 调用存储过程6.3.3 AU

2017-10-14 10:52:06 581

转载 Oracle数据库之事务

Oracle数据库之事务1. 什么是事务在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么都成功执行,完成整个工作单元操作,要么一个也不执行。如:网上转帐就是典型的要用事务来处理,用以保证数据的一致性。2. 事务特性SQL92标准定义了数据库事务的四个特点:原子性(Atomicity)

2017-10-12 20:21:49 376

转载 Eclipse:An internal error occurred during: "Build Project". GC overhead limit exceeded

本文转自:testcs_dn(微wx笑) http://blog.csdn.net/testcs_dn/article/details/45225413在使用Eclipse的Build Project功能时,提示以下错误: An internal error occurred during: “Build Project”. GC overhead limit exceed

2017-09-27 19:10:20 354

原创 Java基本数据类型的大小,他们的封装类以及自动拆箱和装箱

Java提供了一套基本数据类型,总共有八种,也会有人说是有九种。在我们的印象中,很多人可能会说出byte,short,int,long,float,double,boolean,char这八种数据类型。那么还有一种是哪种呢,它到底是不是数据类型呢?我们很容易忽略一个void,有人说void也是数据类型之一,也有人说不是。在Java的API中,并未说明void是基本数据类型,那为什么

2017-09-19 11:40:08 787

原创 初学AJAX总结

AJAX全称为Asynchronous JavaScript and XML。也就是异步的JavaScript和XML。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。在学习使用AJAX的过程中,不得不了解到一个对象:XMLHttpRequest。所有的现代浏览器都支持XMLHttpRe

2017-09-14 15:07:26 250

原创 观察者模式

观察者模式观察者模式是23种设计模式之一。观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。我们把观察者模式中的“一”称为主题,把“多” 称为观察者,当“一”这个对象的状态发生改变时,会把它状态发生改变的消息都发送给依赖于它的“多”多个对象。我们以天气预报这个例子来说明一下观察者模式,其中我们用“气象站”

2017-09-12 13:57:40 339

转载 eclipse配置apache tomcat运行时访问路径不需要项目名称

问题:tomcat运行项目默认是要带上项目名的,有时候不想要项目名来访问,如何解决呢?方法:1:双击打开tomcat2:选择Modules,选择你要修改的项目3:点击Edit,把path修改成空或者你自己想要的路径即可!转载自:http://blog.csdn.net/hj7jay/article/deta

2017-09-10 13:31:54 490

原创 策略模式

策略模式策略模式也是23种设计模式之一。策略模式是指将程序中可变部分抽象分离成一系列的算法,并将每一个算法封装起来,而且使他们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式一般由下面三部分组成:1. 抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 2. 具体策略角色:包装了相关的算法和行为。 3. 环境角色:持有某一个策略类的引用,客户端调用。

2017-08-31 09:26:37 294

原创 抽象工厂模式

抽象工厂模式(Abstract Factory)在看抽象工厂模式之前,希望大家先去看一下我另一篇博客:工厂方法模式在了解了工厂方法模式之后,我们会发现一个问题,类的创建会依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?我们试着看看抽象工厂模式。抽象工厂模式:就是创建多个工厂类,这样一但需要增加新的

2017-08-30 13:51:38 276

原创 工厂方法模式

工厂模式(Factory Method)是23种设计模式之一。工厂模式又可分为:普通工厂模式,多个工厂方法模式,静态工厂方法模式。普通工厂模式:就是建立一个工厂类,对实现了统一接口的一些类进行实例的创建。我们以Animal接口,Dog类,Cat类为例,看一下继承关系。Animal.java代码:public interface Animal { public void pla

2017-08-30 09:54:23 299

原创 以进销存管理系统为例的SSM框架整合

本例子前端界面已经准备好。只以进销存管理系统的登录操作为例来整合SSM框架。以Maven为项目构建工具。下面是创建好Maven Web项目后,并根据我们所需创建的一些文件目录,在下面会讲解各个目录分别会放置哪些文件。从上往下com.invoicing.controller:此包放置与前端页面进行交互的Java代码。com.invoicing.dao:此包放置与数据库

2017-08-26 14:56:51 6718 3

转载 Web大规模高并发请求和抢购的解决方案

电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,

2017-08-24 11:04:06 355

转载 java synchronized关键字的用法以及锁的等级:方法锁、对象锁、类锁

作者用通俗易懂的语言将复杂的技术讲解的如此透彻,学习,传播!原文地址:http://zhh9106.iteye.com/blog/2151791在Java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。 java的内置锁:每

2017-08-23 15:44:39 2635

转载 LinkedList原理及实现学习总结

一、LinkedList实现原理概述LinkedList 和 ArrayList 一样,都实现了 List 接口,但其内部的数据结构有本质的不同。LinkedList 是基于链表实现的(通过名字也能区分开来),所以它的插入和删除操作比 ArrayList 更加高效。但也是由于其为基于链表的,所以随机访问的效率要比 ArrayList 差。二、LinkedList类定义p

2017-08-23 11:03:34 504

转载 HashSet原理及实现学习总结

一.HsahSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。public class HashSetE> extends AbstractSetE> implements SetE>, Cloneable, java.io.Serializ

2017-08-23 11:00:43 324

转载 ArrayList原理及实现学习总结

一、ArrayList介绍ArrayList是一种线性数据结构,它的底层是用数组实现的,相当于动态数组。与Java中的数组相比,它的容量能动态增长。类似于C语言中的动态申请内存,动态增长内存。 当创建一个数组的时候,就必须确定它的大小,系统会在内存中开辟一块连续的空间,用来保存数组,因此数组容量固定且无法动态改变。ArrayList在保留数组可以快速查找的优势的基础上,弥补了数组在创建后,

2017-08-23 10:45:48 325

转载 Java中hashCode的作用

以下是关于HashCode的官方文档定义:[plain] view plain copyhashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。     hashCode 的常规协定是:   在 Java 应用程序执行期间,在同一对象上多次调用 has

2017-08-22 18:14:12 187

转载 Java的四种引用,强弱软虚,用到的场景

众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。      在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品

2017-08-22 17:37:44 369

原创 如何创建一个Maven Web项目

1.对Maven工具和SSM三大框架的初步了解。1.1、Maven在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差jar包?每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。因此,我们就要用到

2017-08-19 22:09:04 1571

转载 HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别

①HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象

2017-07-23 13:45:10 296 1

转载 面向对象的设计模式---工厂模式和单例模式

1.工厂模式:       a.概述:     工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程(new 关键字和具体的构造器)隐藏起来。用一个工厂方法来替代,对外提供的只是一个工厂方法,达到提高灵活性的目的。      b.优点:            1.隐藏了new关键字和构造器            2.降低了这个对象与别的类之间的耦合度,提高了程序的可扩

2017-07-23 13:23:49 420

转载 "=="和equals()方法究竟有什么区别?

"=="和equals方法究竟有什么区别?(单独把一个东西说清楚,然后再说清楚另一个,这样,它们的区别自然就出来了,混在一起说,则很难说清楚)==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内

2017-07-23 12:52:33 1405

转载 Mac环境下svn的使用

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简单的配置。我们首先来看下,如何在Mac环境下搭建svn服务器端环境。创建代码仓库,用来存储客户端所上传的代码我先在/User/apple目录下新建一个svn目录,以后可以

2017-06-23 23:53:02 242

原创 通过git托管代码到github

Git(分布式版本控制系统),Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。想要使用git来托管你的代码,首先我们得做一些准备工作。1.安装git,可以到git官网:https://git-scm.com 下载你系统对应的g

2017-04-19 17:46:25 366

原创 Java,JDBC连接数据库

JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。本例主要讲的是Java用JDBC与MySQL数据库进行连接,并进行增,删,改,查的操作。J

2017-02-26 23:07:56 598

转载 Java中集合List,Map,Set的使用

结合框架体系应该最重要的是如何灵活利用三种接口,set,map,list,他们如何遍历,各有什么特征,怎么样去处理,这是关键,在这个基础上再去掌握在什么场合用什么类型的接口。比如说list和set,set是无序的一个空袋子,当我们只需要放入取出,这个接口当然是最实用的,但是如果我们需要按序取出,这个方法就不能用了,而要用到list,map接口就有个特点,它有一个特定的key值,而一个key值又对应

2017-02-16 16:36:15 867

原创 Hibernate的使用

Hibernate是Java的三大框架之一,hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是对应MVC设计模式中的Model;Hibernate对JDBC进行了封装,不在需要我们像JDBC那样去访问数据库。eclipse使用Hibernate框架需要装Hibernate的插件,myeclipse有自

2016-12-09 16:22:01 263

原创 JSP+Servlet的初步应用

JSP+Servlet的初步应用,要想JSP与Servlet结合使用,只需完成三个步骤。           一.要创建一个Servlet,创建一个Servlet有两种方式,(1).创建一个类 extends HttpServlet,然后重写其中的doGet(HttpServletRequest request,HttpServletResponse response){}和doPost(Ht

2016-11-25 14:09:09 382

原创 安卓开发SQLite关系数据库的使用

要想使用SQLite关系数据库,先得创建一个SQLiteDatabase对象,对数据库进行操作,而SQLiteDatabase对象得要用SQLiteOpenHelper类的对象的getReadableDatabase()方法或者getWritableDatabase方法来返回,但SQLiteOpenHelper类是一个abstract类,所以要先写一个类 extends SQLiteOpenHel

2016-11-20 12:12:17 790

空空如也

空空如也

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

TA关注的人

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