自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

凡  尘

笨  小  孩~~

  • 博客(44)
  • 收藏
  • 关注

原创 Java邮件发送的简单实现

java邮件发送:利用现有的邮件账户发送邮件,比如说,我在网易注册一个邮箱账户,通过JAVA操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。实现: 1.JavaMail 可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载,并将mai

2015-12-24 21:12:12 893

原创 Springmvc访问静态资源

最近写项目的时候,前后台交接的总是找不到对应的js,css,image文件.出现的原因在此(web.xml): 这样写的话,所有的请求都被springmvc处理了,静态资源你没有写controller的话自然就找不到.=_=解决: 1.激活Tomcat的defaultServlet来处理静态文件 在web.xml中添加:<servlet-mapping> <servlet-name>

2015-12-24 20:40:28 629

原创 Java Web中资源的访问路径

在web应用中,以“/”开头的是绝对路径,不以“/”开头的是相对路径。在服务器端,通常都使用绝对路径.服务器端的“/”等同于:http://localhost:8080/day01。(day01为工程名)在客户端,可使用绝对路径,也可使用相对路径。但是客户端的绝对路径与服务器端的绝对路径中的“/”代表的意思是不同的。 客户端的“/”等同于:http://localhost:8080/。(它是不带工

2015-12-24 20:14:37 794

原创 红黑树

红黑树的简介R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则

2015-12-04 21:25:02 547

原创 平衡二叉树(AVL)

上一篇我们聊过,二叉查找树不是严格的O(logN),如果找到一种方法,使得二叉查找树不受输入序列和插入结点等的影响,始终保持平衡状态,从而达到很好的检索效率.平衡二叉树就是基于此目的而产生的.定义:平衡二叉树或为空树,或为如下性质的二叉排序树(平衡二叉树是一种特殊的二叉排序树): (1)左右子树深度之差的绝对值不超过1; (2)左右子树仍然为平衡二叉树. 平衡因子BF=左子树深度-右子树深度

2015-12-04 17:36:22 622

原创 二叉排序树

构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找和插入删除的效率。那么什么是二叉排序树呢?二叉排序树具有以下几个特点: 1,若根节点有左子树,则左子树的所有节点都比根节点小; 2,若根节点有右子树,则右子树的所有节点都比根节点大; 3,根节点的左,右子树也分别为二叉排序树.插入 思路:首先查找待插入的记录是否在树中,如果存在则不允许插入重复关键字;如果直到找到叶子结点

2015-12-04 16:14:37 4714

原创 浅谈java装饰模式

顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例.Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method();}public class Source i

2015-11-17 19:48:10 662

原创 浅谈java适配器模式

基本概念: 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分类:类的适配器模式、对象的适配器模式、接口的适配器模式。 类的适配器模式在上图中可以看出,Adaptee类并没有sampleOperation2()方法,而客户端则期待这个方法。为使客户端能够使用Adaptee类,提供一个中间环节,即类Adapter,把Adaptee的A

2015-11-17 19:30:22 531

原创 JDBC 连接数据库

创建一个以jdbc连接数据库的步骤如下: 1.加载jdbc驱动程序在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql

2015-11-17 19:05:54 330

原创 Java抓取360网页手机助手评论

最近在看java多线程,多看不如一敲,索性就爬取一些数据量较大的信息吧.题目大意:在取360网页手机助手里面抓取某类软件的前几十个排名的软件的全部评论.例如:获取数据的xml格式如下:<?xml version="1.0"?><app> <appid>优酷</appid> <allcomments>53268</allcomments> <comment>

2015-11-13 11:09:52 1167

原创 Mybatis 忘记session.close(),导致页面加载特别缓慢的问题

这几天在写一个项目,出现的问题如下: 当点击页面几次之后就会出现加载特别特别缓慢的情况. 找来找去,是感觉哪里都对对的,在小伙伴的提示下,恩,session.close()忘记写了==,我也是醉了.原因: 不关闭session的后果是,随着系统的运行,数据库连接数将逐渐增多,最终导致数据库拒绝连接。 数据库拒绝连接后,重新启动应用,原有连接将释放,此时应用又可正常运行。

2015-11-13 09:42:10 1505

原创 The method getDispatcherType() is undefined for the type HttpServletRequest解决办法

我和小伙伴一起做一个项目,我从他的github上clone代码到自己机器运行出现就会出现这个错误,但在他的机子上却是好好地.后来检查出来是因为tomcat版本不一致,我用的8.0.27,他是8.0.23 装了8.0.27的tomcat之后就好了.

2015-11-13 08:33:09 1324

原创 任? 时光匆匆......

今天晚上参加软件科技协会的纳新,想起了自己在软协的那一年,那些人,那些事... 那年我们误打误撞加入了那个大家庭,在那里有我们的嬉戏打闹,在那里有我们的通宵汗水,在那里有学长学姐的淳淳教诲... 在那里刷过ACM,而如今呢?,想想真是惭愧 如今,身在小组,这么好的氛围,那么多牛皮的大神,那么多辛勤的背影,那么多的一幕幕... **骚年,加油吧!!!**

2015-11-12 22:06:23 369

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一

2015-11-08 11:01:12 467

转载 Java并发编程:Lock

在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。  也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronized的缺

2015-11-08 09:50:17 377

转载 Java并发编程:synchronized

虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。  以下是本文的目录大纲:   一.什么时候会出现线程安全问题?   二.如何解决线程安全问题?   三.synchronized同步方法或者同步块   若有不正之

2015-11-08 09:37:00 405

原创 Git 常见错误

git commit 上传出现如下错误: 解决办法:sudo chown -R 用户名 .git/*

2015-11-05 08:31:55 346

翻译 Linux下使用dosemu编写汇编程序

一.ubuntu下安装dosemu (同类软件还有dosbox)模拟Dos环境sudo apt-get install dosemu运行sudo dosemudosemu 下看到的C盘和D盘只是虚拟出来的,对应的目录在~/.dosemu/drives 下: dos 下用到的程序放置在 ~/.dosemu/drives/d/bin 目录下 dosemu 已经自带了debug,若要编译汇编代码

2015-10-30 17:21:54 2490

原创 Linux命令-重定向和软硬链接

echo 功能说明:显示文字. 语 法:echo [-ne][字符串] 或 echo [–help][–version] 参数:   -n 不要在最后自动换行 重定向  >是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用>,将日志文件清空(文件大小变成0字节); >>这个是将输出内

2015-10-30 17:02:30 3906

原创 浅谈Java的标识接口-cloneable

为什么对对象进行克隆 谈到了对象的克隆,就不得不说为什么要对对象进行克隆?Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来)。有的时候,我们编写的代码想让调用者只获得该对象的一个拷贝(也就是一个内容完全相同的对象,但是在内存中存

2015-10-29 17:37:04 1505 1

原创 浅谈Java的标识接口-Serializable

为什么java中有些interface没有任何方法? 在Java语言中,有些接口内部没有声明任何方法,也就是说实现这些接口的类不需要重写任何方法,这些没有任何方法声明的接口又被叫做标识接口,标识接口对实现它的类没有任何语义上的要求,它仅仅充当一个标识的作用,用来表明实现它的类属于一个特定的类型。这个标签类似于汽车的标志图标,每当人们看到一个汽车的标志图标时,就能知道这款汽车的品牌。Java类

2015-10-29 08:58:31 7895

原创 JVM学习笔记-垃圾回收器

什么是垃圾回收器 Java垃圾回收器是Java虚拟机(JVM)的三个重要模块(另外两个是解释器和多线程机制)之一,为应用程序提供内存的自动分配(Memory Allocation)、自动回收(Garbage Collect)功能,这两个操作都发生在Java堆上(一段内存快)。某一个时点,一个对象如果有一个以上的引用(Rreference)指向它,那么该对象就为活着的(Live),否则死亡(Dea

2015-10-27 19:35:40 545

转载 JVM学习笔记-jvm内存区域模型

JVM内存区域模型 1.方法区 也称”永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。 运行时常量池:是方法区的一部分,Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编

2015-10-27 15:29:46 485

转载 JVM 学习笔记-java程序编译和运行的过程

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程. Java程序从源文件创建到程序运行要经过两大步骤: 1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。 因为java程序既要编译也要经过JVM的解释运行,所以说Java被称为半解释语言.下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程。代码如

2015-10-27 15:17:53 2955

原创 浅谈Java重载和重写

对于重载到底读chongzai还是zhongzai呢?当然是各有各的读法. 读 重(chong)载:函数被重复多次载入,表现多态性; 读 重(zhong)载:相对于c语言中的函数被过多的载入,也符合overload 的直译;所以还是看大家的习惯了,毕竟这只是一种称呼,重要的还是理解其用法. 昨天晚上一个学弟问我重写对返回值有限制么,那我为什么重写tostring()返回void也行?然后我习

2015-10-27 10:33:14 560

原创 Mysql分页-Limit

一.Mysql 的Limit用法 在我们使用查询语句的时候,经常会返回一部分,即按页返回. mysql已经为我们提供了这样一个功能.SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offsetLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定

2015-10-25 18:08:21 480

原创 动态规划-最长公共子序列

一.基本概念 最长公共子串:子串在原字符串中是最长且连续的. 最长公共子序列:子串在原字符串中是最长且可以不连续的.二.解题步骤 按照上一篇动态规划的解题步骤: 1)找出最长公共子序列的结构 设序列X = {x1,x2,…xm}和Y = {y1,y2,…yn}的最长公共子序列为Z = {z1,z2,…zk},则: 若Xm = Yn,则Zk = Xm = Yn,且Zk-1是Xk-

2015-10-25 14:50:54 375

原创 动态规划

一.基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二.基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有

2015-10-25 14:16:27 414

原创 浅谈计算机中的存储模型-(虚拟存储)

前面所介绍的各种存储管理方式有一个共同的特点,即他们要求将一个作业全部装入内存后方能运行,于是出现了以下情况: 1>有的作业很大,其所要求的内存空间超过了内存总容量,作业不能全部被装入,致使作业无法运行 2>有大量作业要求运行,但由于内存容量不足,只能将少数作业装入内存,而其他大量的作业留在外存等待. 一个办法就是从物理上增加内存容量,但往往会受到机器自身的限制,另一种

2015-10-25 10:19:25 599

原创 浅谈计算机中的存储管理-(物理内存)

1.物理内存的划分  1)等长分区划分:将内存等长划分,然后选择一部分给进程(分页)  2)不等长分区划分:进程需要多少给它划分多少(分段)  分页就是将内存分为等块等块的,在虚拟内存中称为页,在物理内存中成为页框或者块.  分段就是将内存分为不同段区域. 2.物理内存的管理 1)等长分区管理:位图 位图(bit

2015-10-24 22:23:45 1138

原创 浅谈计算机中的存储管理-(整体结构)

最近操作系统学到了存储管理这一章节,再加之前一段实验室的小伙伴刚分享了他对这方面的理解,现在回头看看很多困惑都想清楚了.1.基本概念逻辑地址:相对于程序(即进程)的偏移地址;线性地址:逻辑地址到物理地址变换之间的中间层(即逻辑地址+段基址)物理地址:出现在CPU外部地址总线上的寻址物理内存的地址虚拟内存:指计算机呈现出要比实际拥有的内存大得多的内存量(给人的感觉)MMU:中文名是内存管理

2015-10-24 21:14:25 712

原创 IntelliJ IDEA SpringMVC+Mybatis初整合

自己一直有个错误的理解(springmvc是ssh的另一种叫法),不知道有没有和我一样的,其实springmvc和struts的功能对应着.=_=学习任何东西,感觉初次写的时候配置特别麻烦,所以特意记录下来,以供参考.1.命名过程 注:具体的maven环境配置请参考2.配置过程 pom.xml <properties> <spring.version>4.1.1.RELEASE<

2015-10-24 17:19:14 2192

原创 IntelliJ IDEA 创建第一个Mybatis工程

暑假的时候学习SSH三大框架,记得花了整整一个暑假才把他们学完,后来接触了Mybatis,听说易上手,所以就学习学习.,简单总结一些两者的区别吧:1.两者最大的区别:针对简单逻辑,Hibernate和MyBatis都有相应的代码生成工具,可以生成简单基本的DAO层方法。针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关

2015-10-24 16:50:53 25616 13

原创 浅谈Java的==、equals()、hashcode()

一道题引发的血泪史 Long a1 = Long.parseLong("100"); Long a2 = Long.parseLong("100"); System.out.println( a1 == a2); Long b1 = Long.parseLong("200"); Long b2 = Long.parseLong("200"); Syst

2015-09-16 00:05:20 547

原创 Spring 的ClassPathXmlApplicationContext()路径读取错误

最近在学习Spring,由于所用的IDE是intellij idea,而网上的资料基本都是MyEclipse,在刚开始创建项目,特别是写第一个项目的时候得需要自己好好探索一番。。。(回归正题^_^) // ClassPathXmlApplicationContext 是读取 src 目录下的配置文件 ApplicationContext  app=new ClassPathXm

2015-08-19 10:59:39 1679 1

原创 浅谈Java工厂模式

一.  概念   工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。(工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。)    二. 分类 工厂模式在《Java与模式》中分为三类: 1)简单工厂模式(Simple

2015-08-18 20:53:49 988

转载 浅谈Java单例模式

单例模式分三种:懒汉式单例、饿汉式单例、登记式单例 单例模式有以下特点: 1、单例类只能有一个实例; 2、单例类必须自己创建自己的唯一实例; 3、单例类必须给所有其他对象提供这一实例;//饿汉式单例类.在类初始化时,已经自行实例化 public class Singleton1 { //私有的默认构造子 private Singleton1() {

2015-08-18 16:25:37 458

原创 浅谈Java代理模式

在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以就简单的了解了一下下...代理:代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口

2015-08-18 15:20:36 581

原创 浅谈Java反射机制

1.什么是Java反射 要让Java程序能够运行,就得让Java类被Java虚拟机加载。Java类如果不被Java虚拟机加载就不能正常运行。正常情况下,我们运行的所有的程序在编译期时候就已经把那个类被加载了。 Java的反射机制是在编译时并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用的是在编译期并不知道的类。这样的编译特点就是java反射。2.Java反

2015-08-17 19:51:49 585

转载 Linuxc 文件操作讲座知识

相比于书上的示例,讲座提到的知识会深入一点,这里参考一些大牛的博客加深理解^_^!Inode节点:http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html 文件描述符:http://blog.csdn.net/cywosp/article/details/38965239 mode和umask:http://blog.csdn.n

2015-07-25 00:02:19 507

空空如也

空空如也

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

TA关注的人

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