自定义博客皮肤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)
  • 资源 (7)
  • 收藏
  • 关注

原创 分析ActiveMQ的点对点和发布/订阅二种消息传递形式

ActiveMQ对于消息的传递有两种类型: 一种是点对点的,即一个生产者和一个消费者一一对应; 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。 首先是点对点的这种消息传递,提供方演示代码如下public void Test() throws JMSException { // 第一步:创建ConnectionFactory对象,需...

2018-08-03 20:50:46 3506 1

原创 Linux的网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改IP(根本上修改) DEVICE=eth0 HWADDR=00:0c:29:40:f6:68 TYPE=Ethernet UUID=26b72759-2362-4824-8c4f-2690ab531bd8 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=s...

2018-07-23 21:15:38 229

原创 linux基本命令之权限命令

权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以 查看某个目录下的文件或目录的权限 示例:在随意某个目录下ls -l 第一列的内容的信息解释如下: 文件的类型: d:代表目录 -:代表文件 l:代表链接(可以认为是window中的快捷方式) 后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的 用户的权限,其他用户的权限...

2018-07-23 21:07:44 4300

原创 linux基本命令之文件操作命令

一、文件的操作命令(1)文件的创建 命令:touch 文件名称 —– 空文件 示例:在test目录下创建一个空文件 touch aaa.txt (2)文件的查看 命令:cat/more/less/tail 文件 示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容 示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一...

2018-07-23 20:39:42 814

原创 linux的基本命令之目录操作命令

一、目录的切换命令cd usr 切换到该目录下usr目录 cd ../ 切换到上一层目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录二、目录的操作命令(1)增加目录操作 命令:mkdir 目录名称 示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生...

2018-07-23 20:23:10 15108 2

原创 spring boot之@Controller和@RestController区别及应用

@Controller和@RestController区别:在springboot开发中控制层使用注解@Controller时,加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值对应的是一个视图,而使用@RestController返回值对应的是json数据,而@Controller+@ResponseBody的作用相当于@RestContr...

2018-07-16 20:12:56 3780 1

原创 struts2实现文件的上传下载

在struts.xml文件中的配置<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/s...

2018-07-16 09:58:41 162

原创 spring boot之使用spring data jpa的自定义sql

spring data jpa介绍PA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate,TopLink,JDO等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate,...

2018-07-16 09:21:35 21143 2

原创 Spring的AOP的开发的AspectJ配置

bean.xml配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="h

2018-07-13 21:29:27 193

原创 Hibernate查询之get和load的区别

一、.从返回结果上对比load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null二、.从检索执行机制上对比get方法和find方法都是直接从数据库中检索 ,而load方法的执行则比较复杂 ■ 首先查找session的persistent Context中是否有缓存,如果有则直接返回 ■ ...

2018-07-13 21:07:17 318

原创 hibernate框架的配置文件的基本配置

一、配置hibernate.cfg.xml<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hib...

2018-07-13 20:55:27 238

原创 使用ThreadLocal+filter实现JDBC的事务处理

一、首先创建一个使用单例模式的ConnectionContext类public class ConnectionContext { /** * 构造方法私有化,将ConnectionContext设计成单例 */ private ConnectionContext(){ } //创建ConnectionContext实例对象 ...

2018-06-22 21:31:49 565

原创 使用ThreadLocal实现对JDBC的事务处理

一、准备工作 在应用ThreadLocal对JDBC的事务处理前,可以先在项目中导入数据库连接池的jar包,然后创建c3p0-config.xml并配置。二、创建使用ThreadLocal的事务处理工具类public class JDBCUtils3 { private static DataSource dataSource=null; private stati...

2018-06-20 20:52:34 967

原创 Java多线程之死锁

一、死锁介绍在Java中,一个对象可以有synchronized方法或别的加锁机制来保证线程安全,线程是可以阻塞的,假如第一个线程在等待另一个线程,而后者又在等待别的线程,这样一直下去,直到这个链条上的线程又在等待第一个线程释放锁。这就造成了线程之间相互等待的连续循环,没有哪个线程能够继续,这被称之为死锁。二、死锁产生的必要条件互斥条件:指进程对所分配到的资源进行排它性使用,...

2018-05-20 11:23:25 198

原创 Java多线程之实现方式

一、介绍多线程的好处是解决了一个进程能同时执行多个任务的问题和提高了资源的利用率,缺点是增加cpu的负担、引发了线程安全问题、降低了一个进程中线程的执行概率、出现了死锁现象等,尽管多线程有一定的缺点,不过总的来说多线程的实现是利大于弊的。二、多线程的实现(1)实现Runnable接口 下面以一个简单的多窗口售票程序来演示实现Runnable接口的多线程的实现public ...

2018-05-19 20:24:51 140

原创 Tcp通信之三次握手和四次挥手

一、说明ACK :TCP协议规定只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1。SYN:在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1,因此SYN置1就表示这是一个连接请求或连接接受报文。FIN:用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完...

2018-05-13 20:57:43 192

原创 Java虚拟机之对象的创建及内存布局

一、对象的创建在语言层面上,对象的创建通常仅仅是一个new关键字而已,而当虚拟机接收到一个new指令时,它会做如下的操作。虚拟机接收到一条new指令时,首先会去检查这个指定的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被类加载器加载、链接和初始化过。如果没有则先执行相应的类加载过程。类加载完成后,接着会在Java堆中划分一块内存分配给对象。内存分配根据...

2018-05-05 17:51:46 313

原创 Java虚拟机之垃圾收集器

一、对象引用JDK1.2之前,Java中的引用定义很很纯粹:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。但在JDK1.2之后,Java对引用的概念进行了扩充,将其分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)四...

2018-05-04 22:07:19 153

原创 Java虚拟机内存划分分析

根据《Java虚拟机规范(Java SE7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示一、程序计数器        程序计数器是一块较小的内存空间,他的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分...

2018-04-27 20:19:06 215

原创 Java装箱拆箱之Integer和int的区别

面向对象的Java,为了编程的方便为每一个基本数据类型都引入了对应的包装类型,提供了拆箱和装箱的语法糖,而int的包装类就是Integer。一、基本区别Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。二、其他区别public static void main(String[] args) { int s=1; Integer aInteger =1; ...

2018-04-25 21:16:59 219

原创 多线程之生产者消费者模式的实现

在实际的开发工作中,会有这样的情节:某个模块负责生产数据(产品),而这些数据由另一个模块负责消费(此处的模块是广义的,可以是类、方法、线程、进程等)。在这里,负责生产数据的模块就是生产者,而负责处理这些数据的就是消费者。下面通过一个简单的例子说明1.要生产和消费的产品public class Product{ private String name;//名字 private double pr...

2018-04-24 20:42:17 720

原创 虚拟机类加载机制解析(二)

类加载器一、类与类加载器    对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。即比较二个类是否“相等”,只有在这二个类是由同一个类加载器加载的前提下才有意义,否则即使这二个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这二个类就必定不相等。public Class Class...

2018-04-22 22:34:26 152

原创 虚拟机类加载机制解析(一)

类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括加载、验证、准备、解析、初始化、使用和卸载7个阶段,其中验证、准备、解析统称为连接。7个阶段的发生顺序如图一、加载加载阶段虚拟机需要完成三件事(1)通过一个类的全限定名来获取定义此类的二进制字节流。(2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。(3)在内存中生成一个代表这个类的java.lang.Class的...

2018-04-21 21:16:11 221

原创 Oracle的ROWNUM原理和分页用法

1.ROWNUM原理:ROWNUM是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推。ROWNUM总是从1开始,不管当前的记录是否满足查询结果,ROWNUM返回的值都是1,如果这条记录的值最终满足所有的条件,那么ROWNUM会递加,下一条记录的ROWNUM会返回2,否则下一条记录的ROWNUM仍然返回1。具体如图所示2.ROWNUM分页用法示例(1)显示...

2018-04-21 12:07:34 791

原创 java多线程之start方法和run方法的使用区别

一、区别概述start与run方法的主要区别在于当程序调用start方法一个新线程将会被创建,并且在run方法中的代码将会在新线程上运行,然而在你直接调用run方法的时候,程序并不会创建新线程,run方法内部的代码将在当前线程上运行。二、分析public class MyThread1 extends Thread { @Override public void run() { try ...

2018-04-11 17:00:00 579

原创 ConcurrentHashMap原理解析

一、ConcurrentHashMap的引入HashMap是非线程安全的,Hashtable是线程安全的,但是由于Hashtable是采用synchronized进行同步,相当于所有线程进行读写时都去竞争一把锁,导致效率非常低下。有没有一种既能保证效率,又能保证的线程安全的机制呢?Java提供了ConcurrentHashMap类,ConcurrentHashMap代替同步的Map(Collect...

2018-04-08 11:43:31 759

原创 分析HashMap实现原理

1.HashMap的数据结构HashMap的数据结构采用的是哈希表的方式,不过HashMap的哈希表是由数组+链表组成的,既规避了数组的插入和链表的查询等操作慢的缺点,由很好的结合了各自的优点,使得HashMap的数据的查询和插入都快。另外HashMap采用的是以“桶”的方式对其数据进行存储,通过hashcode()计算Key相同的entry会被放到同一个“桶”内,也就是数组位置相同。HashMa...

2018-04-06 18:59:04 132

原创 Java对象序列化

1.说明所有分布式应用常常需要跨平台,跨网络,因此要求所有传的参数、返回值都必须实现序列化。而对象序列化包含序列化和反序列化二部分,序列化是把Java对象转换为字节序列的过程,反序列化是把字节序列恢复为Java对象的过程。2.用途对象序列化主要有二种用途,一个是把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中,也叫持久化对象;另一个是在网络上传送对象的字节序列,也叫网络传输对象。3.实现序...

2018-04-05 16:43:39 1749

原创 解压缩版mysql安装及注意事项

1.解压之后可以将该文件夹放到合适的位置2.配置环境变量,在系统变量里添加一个MYSQL_HOME变量,值为mysql的路径3.在PATH变量里添加值为%MYSQL_HOME%前后用;隔开4.配置完后修改mysql文件夹下的my-default.ini文件里的basedir和datadir5.以管理员身份运行cmd(一定要用管理员身份运行,不然权限不够),进入到mysql文件夹的bin目录下,执行...

2018-03-24 20:46:59 416

原创 使用git工具上传本地项目

1.    git的相关指令:        git init //把这个目录变成Git可以管理的仓库。       git add README.md //文件添加到仓库  git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了   git commit -m "first commit" //把文件提交到仓库   git re...

2018-03-22 21:42:38 1669

原创 抽象类,接口的特点以及类、抽象类、接口的关系

先前对抽象类和接口的特点不是很清楚,而抽象类是对类的抽象,而接口是功能的集合,所以理解二者的特点以及在继承和实现方面很重要,所以专门对二者进行了总结,具体如下:1.接口和抽象类一样不能实例化,使用interface关键字表示接口,接口是功能的合集。接口里只能有常量和抽象方法,不能有构造方法,代码块,变量,普通方法等。2.类在使用implements关键字实现接口时,必须将接口中的抽象方法都实现,如...

2018-03-22 20:32:11 625

原创 linux安装DHCP和FTP的命令和应用

DHCP 检查是否安装了DHCP [root@localhost ]#rpm-qa| grep dhcp 加载光驱 [root@localhost ]#mount /dev/cdrom /media[root@localhost ]#cd /meida/Server[root@localhost ]#ls dhcp-*解除加载 [root@localhost ]# ...

2017-12-24 21:08:47 760

原创 JSP+Servlet使用jspsmartupload实现文件上传至服务器

1.下载一个jspsmartupload.jar,将其复制到eclipse的WEB-INF/lib目录下。 2.更改JSP页面的编码为gbk。 3.表单的form属性里添加ENCTYPE=”multipart/form-data” 4.获取JSP表单的值前先在Servlet里添加下列代码 5.servlet获取使用jspsmartupload的JSP的表单的值。 在servlet里也要

2017-12-24 19:11:02 8464

基于SSH框架的员工管理系统

该项目使用struts2、hibernate和spring实现对员工信息管理的web开发的增删改查操作

2018-07-16

单表的SSH框架整合

该项目使用struts2、hibernate和spring三个框架进行整合,实现对单表的jsp页面的增删改查操作

2018-07-16

商品信息管理系统

该系统在实现商品信息管理的功能上采用ajax技术实现。

2018-06-21

基金购买系统

该系统在实现用户购买基金功能中使用ThreadLocal来实现JDBC事务的的处理

2018-06-21

员工信息管理系统

系统全部以JSP技术实现员工信息的增删改查操作,系统界面不够美观,主功能实现

2018-06-21

屏幕共享软件

该屏幕共享软件通过局域网可以连接多台电脑,输入ip地址便能查看其他电脑的屏幕广播

2018-04-29

Tomcat8.5服务器

该Tomcat服务器版本为8.5,小型服务器,支持大概150个并发,适用于开发者进行小型项目的web开发和测试

2017-12-25

空空如也

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

TA关注的人

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