自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (2)
  • 收藏
  • 关注

原创 java自动发送邮件实例

最近项目中有用到系统自动给用户发邮件的功能,今天抽时间总结一下:一、概述使用Java发送邮件就要使用到JavaMail API,JavaMail API提供了一个独立于平台并且与协议无关的框架来构建邮件和消息传递应用程序。JavaMail API可用作与Java SE平台一起使用的可选软件包, 并且还包括在 Java EE平台中。JavaMail API 是读取、撰写、发送电子信息

2017-11-02 20:32:21 3584

原创 oracle去除字段内空格、换行符

这几天从excel向oracle数据库导入数据的时候发现一个字段连带换行符都插入进去了,给后续的功能处理带来了很大困扰,java代码已经做了更改,但是由于导入的数据量很大,删除重新导入会非常麻烦,于是就想用条sql处理下,sql如下:首先我们要知道这些特殊符号的ascii定义:(1)制表符 chr(9) (2)换行符 chr(10)(3)回车符 chr(13) 注意:每

2017-07-10 11:34:59 23424

原创 SVN报错Cleanup failed to process the following paths

昨天操作TortoiseSVN,不停的修改还原文件,操作太频繁后文件就找不到了,执行Cleanup命令后结果就报错了Cleanup failed to process the following pathsD:\cncPrevious operation has not finished;run 'Cleanup' if it was interruptedPlease e

2017-07-08 15:33:00 3286 1

原创 linux环境设置静态IP

安装了centOS后,每次关机启动后在Xshell中都要重新设置连接,非常麻烦,就想着能不能设置成静态IP,这样连接过一次后就不用每次都重新设置了。平时的工作过程中使用linux还是少,参考了网上大量的教程都设置不了,最后一步一步来解决,设置过程可以分为以下几个步骤:1、首先切换到root用户,如果不切换直接修改的话,到最后保存退出的时候会提示没有文件操作权限,保存不了连接系统,查看用

2017-07-03 16:46:06 433

原创 浅析代理模式

代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一、代理的种类1、虚拟代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建。2、远程代理:为一

2017-05-18 17:07:45 344

原创 浅析原型模式

原型模式(Prototype)属于对象的创建模式,通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是原型模式的用意。     java语言的构件模型直接支持原型模式。所有的JavaBean都继承自java.lang.Object,而Object类提供一个clone()方法,可以将一个JavaBean对象复制一份。但是,这个JavaBean

2017-05-18 09:02:55 370

原创 Fork/Join框架

Fork/Join框架是Java 1.7提供的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务, 最终汇总每个小任务结果后得到大任务结果的框架。Fork就是把一个大任务切分为若干子任务并行的执行, Join就是合并这些子任务的执行结果, 最后得到这个大任务的结果。Fork/Join框架使用工作窃取算法实现。一、工作窃取算法工作窃取(work-stealing) 算法是指某个线

2017-05-10 21:25:21 253

原创 BlockingQueue

JDK 1.7提供了7个阻塞队列:· ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列。· LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列。· PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列。· DelayQueue: 一个使用优先级队列实现的无界阻塞队列。· SynchronousQueue:

2017-05-10 09:42:21 262

原创 java中的阻塞队列

一、阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。 这两个附加的操作支持阻塞的插入和移除方法。1、支持阻塞的插入方法: 意思是当队列满时, 队列会阻塞插入元素的线程, 直到队列不满。2、支持阻塞的移除方法: 意思是在队列为空时, 获取元素的线程会等待队列变为非空。阻塞队列常用于生产者和消费者的场景, 生产者是向队列里添加元素的线程, 消费者是从队列里取元素的

2017-05-09 23:41:03 250

原创 如何使用Junit进行单元测试

我们在编写大型程序的时候,常常需要写千上万个方法或函数,这些函数的功能强大,但我们在程序中只用到该函数的一小部分功能,每编写完一个函数之后,我们都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。那么如何确保每一个方法或者函数都完全正确呢?传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。Jun

2017-05-09 11:21:14 2895

原创 ConcurrentLinkedQueue详解

ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列, 它采用先进先出的规则对节点进行排序, 当我们添加一个元素的时候, 它会添加到队列的尾部; 当我们获取一个元素时, 它会返回队列头部的元素。 它采用了“wait-free”算法(即CAS算法) 来实现, 该算法在Michael&Scott算法上进行了一些修改。

2017-05-08 20:55:33 826

原创 ConcurrentHashMap详解

ConcurrentHashMap是线程安全且高效的HashMap。一、为什么要使用ConcurrentHashMap在并发编程中使用HashMap可能导致程序死循环。而使用线程安全的HashTable效率又非常低下, 基于以上两个原因, 便有了ConcurrentHashMap。1、 HashMap在多线程环境下, 使用HashMap进行put操作会引起死循环, 导致CPU利用率

2017-05-08 11:57:46 286

原创 多线程并发容器

最近学习java并发编程,少不了对java并发容器的学习,今天抽时间总结一下,有不正确之处还望互相学习:一、ConcurrentHashMap与hashMap和hashTable一样,ConcurrentHashMap提供了高并发的线程安全的Map实现,不但实现了的Map的功能,并且实现了接口ConcurrentMap所定义的原子操作。ConcurrentHashMap也是一个基于散列的M

2017-05-07 15:26:54 665

原创 Java实现动态代理

Java动态代理创建对象的过程:1、通过实现InvocationHandler接口创建自己的调用处理器 MyIvocationHandler;2、通过为Proxy类指定ClassLoader对象和一组interface创建动态代理类;3、通过反射机制获取动态代理类的构造函数,其参数类型是调用处理器接口类型;4、通过构造函数创建代理类实例,此时需将调用处理器对象作为参数被传入。为

2017-05-02 10:52:12 325

原创 redis安装配置

Redis如今已经成为Web开发社区中最火热的内存数据库之一,Redis是一个开源的高性能键值对数据库,它提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。那么redis如何安装配置呢?以下是redis在linux系统下的安装配置:1、下载linux环境下输入以下命令就会自动下载redis安装包:wget http://

2017-04-25 22:01:27 275

原创 redis入门

Redis是一个开源,高级的键值存储和一个适用的解决方案,用于构建高性能,可扩展的Web应用程序。1、存储结构     Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。Redis支持的键值数据类型如下:(1)字符串类型(2)散列类型(3)列表类型(4)集合类型(5)

2017-04-23 23:39:37 315

原创 java并发编程面临的问题

并发编程的目的是为了让程序运行的更快,但是并不是启动更多的线程就能让程序最大限度地并发执行。java并发编程面临的问题:一、上下文切换问题:任务从保存到再加载的过程就是一次上下文切换(1)使用Lmbench3可以测量上下文切换的时长。(2)使用vmstat可以测量上下文切换的次数。减少上下文切换的方法:1、无锁并发编程。 多线程竞争锁时, 会引起上下文切换, 所以多线程处理

2017-04-20 22:58:53 451

原创 Java中的内存分配

java虚拟机中的内存共划分为三个代:年轻代(Young Generation)、老年代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的。 整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。年轻代:  

2017-04-18 23:04:59 252

原创 常用linux命令(3)

1、at命令at允许使用一套相当复杂的指定时间的方法。他能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执

2017-04-17 20:54:45 303

原创 常用linux命令(2)

1、chmod命令chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。(1)命令格式:chmod [-cfvR] [--help] [--version] mode file   (2) 命令参数:必要参数:-c 当发生改变时,报告处理信息-

2017-04-17 09:34:13 325

原创 Spring的beanFactory

public interface BeanFactory { //这里是对 FactoryBean 的转义定义,因为如果使用 bean 的名字检索 FactoryBean 得到的对象是工厂生成的对象, //如果需要得到工厂本身,需要转义 String FACTORY_BEAN_PREFIX = "&"; //这里根据 bean 的名字,在 IOC 容器中得到 bean

2017-04-12 15:16:54 237

原创 Spring的七个核心模块

1、Spring core:核心容器核心容器提供spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean,它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。BeanFactory使用依赖注入的方式提供给组件依赖。主要实现控制反

2017-04-11 19:30:04 6025

原创 java反射机制

1、反射机制概念反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2、反射机制的作用    可用于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(

2017-04-10 18:06:31 224

原创 浅析单例模式和工厂模式

一、单例模式通过单例模式可以保证系统中一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有以下特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。/** * 单例模式 */public class SingletonTest { //方式一 private s

2017-04-10 09:51:29 1348

原创 String、list、map转换为json

import java.util.ArrayList;import java.util.HashMap;import com.alibaba.fastjson.JSONObject;public class strToJson { //String转json public static void main(String arg[]){ String[

2017-04-09 22:16:27 1069

原创 浅析java设计模式

设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对

2017-04-09 18:16:04 284

原创 Active MQ的使用

Active MQ 是Apache出品,最流行的,能力强劲的开源消息总线。一、Active MQ特性:1、多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP2、完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)

2017-04-08 20:26:07 4435

原创 常用linux命令(1)

做java开发自然少不了对linux系统的了解,以下总结了工作以来接触到的linux命令1、find命令find命令用于在目录结构中搜索文件,并执行指定的操作。(1)命令格式:find pathname -options [-print -exec -ok ...](2)命令参数:pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根

2017-04-07 15:19:27 289

原创 mysql错误2003处理办法

之前电脑系统出了点问题,重新安装了mysql,结果打开报错2003,也找了好多解决办法,最后使用以下办法成功了解决了问题1、打开命令提示符(管理员权限),执行以下命令:net stop mysql2、如果已经启动了MySQL,将其关闭,然后切换到MySQL的bin目录下,执行以下命令,删除已有的服务sc delete mysql3、手工安装服务,执行以下命令mysqld -

2017-04-07 09:38:02 906

原创 dbcp数据库连接池实例

import org.apache.log4j.Logger;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import org.apac

2017-03-31 10:50:26 334

原创 java分页工具类

web系统页面展示一般都需要分页,那分页是如何实现的呢?以下为分页工具类的实例:/** * 分页工具类 */public class PageResponse { private String message;//返回的结果提示信息 private boolean status;//操作执行的状态 private String url;//操作成功之后跳转的url p

2017-03-30 09:19:29 461

原创 浅析XPath

XPath 是一种用于在 XML 中查找信息语言。 XPath 可用来在 XML 文档中对元素和属性进行遍历。1、XPath 基本介绍(1) XPath 使用路径表达式在 XML 文档中进行导航。(2) XPath 包含一个标准函数库。(3) XPath 是 XSLT 中的主要元素。(4) XPath 是一个 W3C 标准。2、使用 XPath 的好处当我们单纯使用 D

2017-03-29 10:28:13 409

原创 java多线程的简单实现及线程池实例

一、多线程的两种实现方式1、继承Thread类的多线程/** * 继承Thread类的多线程简单实现 */public class extThread extends Thread { public void run(){ for(int i=0;i<100;i++){ System.out.printl

2017-03-28 20:36:28 1721

原创 Java内存溢出和内存泄漏

内存溢出(out of memory):是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 (memory leak):是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积的后果很严重,无论多少内存,迟早会被占光。一、内存溢出

2017-03-28 09:24:40 268

原创 Java异常处理机制

我们平时程序中都遇到过异常处理的问题,今天抽时间总结下java的异常处理机制。首先我们来看异常的分类:Error 系统级别的错误: Java 运行时环境出现的错误,不可控。Exception 是程序级别的错误:编译阶段的错误,可控。异常结构中的父类 Throwable 类,其下子类 Exception类和 Error 类。我们在程序中可以捕获的是 Exception 的子类

2017-03-27 20:42:50 257

原创 网络编程之GET/POST请求实例

通常创建一个URL的连接并发送请求、读取此URL引用的资源的步骤如下:1、调用URL的openConnection()方法来创建URLConnection对象2、设置URLConnection的参数和普通请求属性3、如果只是发送GET方式请求,使用connect方法建立和远程资源之间的实际连接就行;如果需要发送POST方式的请求,需要获取URLConnection实例对应的输出流来发送

2017-03-27 15:45:09 500

原创 Socket网络编程

在java编程过程中,我们常常会遇到需要在客户端和服务器之间进行通信的需求,那就需要使用Socket了。Socket套接字在 java.net.Socket 包下。1 、网络通信模型(1)C/S: client/server,客户端/服务器端;服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,客户端需要安装专用的客户端软件。(2) B/S: browser/serv

2017-03-27 12:35:44 358

原创 浅析java线程池

线程若想启动需要调用 start()方法。这个方法要做很多操作。要和操作系统打交道。如注册线程,等待线程调度等。ExecutorService 提供了管理终止线程池的方法。1、线程池的概念首先创建一些线程,它们的集合称为线程池,当服务器接受到一个客户请求后,就从线程池中取出一个空闲的线程为之服务,服务完后不关闭该线程,而是将该线程还回到线程池中。在线程池的编程模式下,任务是提交给整个线程池

2017-03-27 10:11:07 345

原创 深入jQuery技术

jQuery 是一种框架, jQuery 利用选择器查找要操作的节点(DOM 对象),然后将这些节点封装成一个 jQuery 对象(封装的目的有两个:1、是为了兼容不同的浏览器。2、也为了简化代码)。通过调用 jQuery 对象的方法或者属性来实现对底层的 DOM 对象的操作。一、jQuery编程步骤1、引入 jQuery 框架( www.jquery.org 下载), min 为去掉

2017-03-26 20:36:26 408

原创 浅析Ajax技术

项目中一直在使用Ajax技术,今天抽时间总结一下:一、什么是 AjaxAsynchronous Javascript And Xml,异步的 JavaScript 和 Xml。实质是利用浏览器内置的一个特殊对象XMLHttpRequest,(一般称之为 Ajax 对象)异步地向服务器发送请求,服务器送回部分数据,在浏览器端,可以利用这些数据部分更新当前页面。整个过程,页面无刷新,不打断用户

2017-03-26 16:11:57 233

XJad反编译工具

XJad反编译工具

2017-06-26

反编译工具

反编译工具

2017-06-26

空空如也

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

TA关注的人

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