---Java
文章平均质量分 78
Grace_sisi
这个作者很懒,什么都没留下…
展开
-
java8 stream sort排序
集合对象为订单对象,主键、订单号、订单类型、总金额public class OrderInfo { private Integer id; private String orderNo; private Integer type; private Double total; public OrderInfo(Integer id,String orderNo,Integer type,Double total){ this.id = i原创 2020-11-17 22:19:38 · 5864 阅读 · 3 评论 -
Map的四种遍历方法
缘由: 今天看完整看到关于Map的遍历方式,看到了Entry方式,当时自己并不知道,于是经过学习和查阅资料,总结一下Map的遍历方式。遍历方式: Map map = new HashMap(); map.put("1","java"); map.put("2","c"); map.put("3","go");原创 2016-10-24 19:46:40 · 25838 阅读 · 38 评论 -
maven简单介绍
1、什么是maven? maven在英文中是“专家”或“内行”,是一个跨平台的项目管理工具。maven是Apache的一个开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理的一个工具。2、为什么用maven? 我们每个项目都需要进行编译、测试、打包、发布等操作,这本身就是一个非常复杂的事情。而maven能够帮我原创 2016-10-23 16:24:58 · 932 阅读 · 35 评论 -
Eclipse搭建maven web项目
最近在做做一个小实验,搭建ssm框架,要求使用maven来统一管理jar包,接下来就看如何建立maven项目,首先必须有要有相应的开发环境:JDK和maven,以及配置tomcat。 开发环境搭建可以参考这篇博客:http://blog.csdn.net/zhshulin/article/details/30779873 配置好环境之后接下来开始建立maven项目。原创 2016-09-24 20:37:50 · 1682 阅读 · 59 评论 -
锁的类型和兼容性
当我们使用单击版的系统时,根本不需要考虑并发量,但现在我们很多的系统都会有大量用户,我们就不得不面对并发,当出现并发访问时,我们自然会想到加锁,而数据库会自动管理锁,当进行查询和修改数据库时,自动为其加上锁。接下来我们先来看一下有哪几种锁!一、共享锁 共享:正如这个词的中文意思一样,大家可以可以共享资源。共享锁主要用于读写数据操作,它是非读占的,允许其他事务同时读取其锁定的资源,但不允原创 2016-09-11 21:02:37 · 2986 阅读 · 29 评论 -
Hibernate中的Session
我们之前也经常使用Session,通过连接服务器将需要保存的值存到服务器的session中,这是之前关于session的简单应用。现在看到Hibernate框架中也有关于Session的定义,该定义是和之前的有所不同的,我们先来看看什么是Hibernate中的Session!定义: Session是Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与Session原创 2016-09-04 22:22:53 · 770 阅读 · 18 评论 -
Hibernate主键生成策略
Hibernate主键生成策略有很多种,正如设置不同的数据类型一样,设置不同的主键生成策略,也是适用于不同的场景。接下来一一来看不同的生成策略,有什么作用和优缺点。 1、identity[自然递增] identity是底层数据库生成的标识符。identity是由数据库自己生成的,而且这个主键必须设置为自增长的,使用identity的前提是数据库必须支持自增长的类型,如mysql、原创 2016-08-25 21:28:39 · 792 阅读 · 27 评论 -
文件下载显示进度条
文件下载网络上下载资源,当文件比较小的时候,没有显示进度,可能看不出来什么,但当文件内容比较大,显示出进度条,这样就更加贴切的让用户感到文件下载的状况。 现在先做一个小例子,主要是现在控制台输出文件下载的进度。 package com.tgb.demo;import java.io.File;import java.io.IOException;import java.i原创 2017-03-05 21:24:55 · 15107 阅读 · 11 评论 -
深入理解JVM-内存模型
最近一直在研究这个JVM,看了一本书《深入理解Java虚拟机》,来记录一下这一段的学习历程。Java虚拟机内存分析,初研究感觉好像很难理解,其实跟日常我们编程有很大的关系,理解Java虚拟机对我们提升代码质量也有很大的帮助。 JVM虚拟机运行时数据区: 程序计数器: 一块较小的内存空间,可看作是当前线程执行的字节码的行号指示器。 ...原创 2017-04-30 21:08:33 · 815 阅读 · 10 评论 -
深入理解JVM-类加载
1、为什么使用类加载器? 类加载过程都是在运行时完成的,这个过程会增加系统性能的开销,但能够带来灵活性。我们可以在运行期间,通过类加载器, 在程序运行时加载一些class文件。2、类加载过程? 使用Java编译器将java文件编译为class文件,这个过程不再详细叙述。主要说明我们如何利用这些编译好的 class文件。 JVM将class文...原创 2017-05-07 22:49:22 · 598 阅读 · 8 评论 -
并行-Future模式
一、Future模式的核心: 去除主线程的等待时间,并让原本需要等待的时间段用于处理其他的业务逻辑。原创 2017-07-12 20:42:01 · 782 阅读 · 38 评论 -
并行-Master-Worker模式
master-worker模式,我们生活中有很多这样的例子,比如一个小组会有一个组长,组长负责给每个人分配任务,也监控每个人的工作情况。Master-Worker模式是常用的并行模式,它的核心思想是,系统由两个重要角色组成,一个为Master,用于任务的分配和最终结果的合成;一个为Worker,用于实际处理一个任务。原创 2017-07-30 09:00:35 · 771 阅读 · 14 评论 -
并行-Guarded Suspension模式
核心思想: Guarded Suspension的意思是暂停保护,该模式的核心思想是仅当服务器准备好时,才提供服务。就是当大量客户请求到来,而我们不能放弃任何一个请求,必须让客户请求排队,由服务器一个一个去处理。适用场景: 服务器请求多,但服务器程序不能丢弃任何一个客户的请求。 Guarded Suspension模式:既可以最大原创 2017-07-31 14:02:32 · 577 阅读 · 15 评论 -
并行-携带返回结果的Guarded Suspension模式
上篇博客已经讲解了Guarded Suspension模式使用用户请求队列,可有序地对客户申请进行处理,但是客户进程的Request不能获得服务进程的返回结果。如果客户端要求必须有返回值时,这个模式就不适用了。这时我们就可以考虑使用之前讲过的Future模式,对Guarded Suspension模式进行扩展。原创 2017-08-02 22:48:18 · 457 阅读 · 5 评论 -
Map遍历效率比较
1、由来 上次博客提到了Map的四种遍历方法,其中有的只是获取了key值或者是value值,但我们应该在什么时刻选择什么样的遍历方式呢,必须通过实践的比较才能看到效率。 也看了很多文章,大家建议使用entrySet,认为entrySet对于大数据量的查找来说,速度更快,今天我们就通过下面采用不同方法遍历key+value,key,value不同情景下的差异原创 2016-10-30 10:56:27 · 23544 阅读 · 48 评论 -
Java动态代理演变之路
1、什么是代理? 代理,英文成文Proxy。意思是你不用去做,别人代替你去处理。比如有人想找明星周董去唱歌,他需要做签约、讨论、唱歌和付款等等过程,但真正周董擅长的事情是唱歌,其他的事情可以交代给他的经纪人来做,经纪人就是一个代理,周董就是被代理的人。2、我们为什么要引入代理? 比如我们要统计每个方法的执行时间,以对性能做出评估,那我们就需要在每个方法的头尾原创 2016-11-05 18:55:13 · 690 阅读 · 28 评论 -
java创建邮件模板
一直在整发送邮件,由于发送的邮件格式比较固定,是一个固定的表格,我就想能不能做一个邮件的模板,这样在发送邮件的时候只需要将内容填充上去,而不需要像之前一样,每次都要重新拼邮件的内容。 下面先来看一下邮件模板,如何设置邮件模板。先添加一个配置文件mail.propertites,在该配置文件中自定义邮件的格式,下面是我定义的邮件的格式: mail_content=尊敬的各位管理人原创 2016-06-11 11:40:47 · 8006 阅读 · 26 评论 -
filter配置
之前在项目中应用过filter,但对于究竟是如何来起到拦截作用的,还不是很清楚,今天自己来梳理一下,这方面的知识。原创 2016-07-10 22:55:20 · 943 阅读 · 18 评论 -
Web.xml中配置Servlet
之前在做项目中,一直需要在web.xml中配置Servlet,但为什么这么写,这么写是如何通过配置文件找到我们响应的Servlet中的方法的呢?今天就从配置开始说起,我们的Servlet是如何在整个项目中起作用的。 Servelt配置如下: ShowAddItemServlet //Servlet应用名字 com.bjpowernode.drp.原创 2016-07-16 11:20:44 · 6714 阅读 · 22 评论 -
Quartz定时任务
Quartz是一个完全由java编写的开源作业调度框架,可以用来创建简单或运行十个、百个甚至是更复杂的程序。而我主要用的是用来设置定时完成任务。首先来看一下如何配置定时任务的时间。 CronTrigger时间格式配置说明: 格式:秒 分 时 日 月 周 年 常用示例: 0 0 12 * * ? 每天12点触发 0原创 2016-06-19 21:45:19 · 969 阅读 · 30 评论 -
覆写equals方法
我们在写java类时,经常会覆写equals()方法,目的是根据业务判断两个对象是否相等。比如原创 2016-07-31 21:41:42 · 2167 阅读 · 19 评论 -
java中List集合
List集合是一个元素有序可以重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复集合,前面博客写到Set不允许有重复集合。List集合可以通过索引来访问指定位置的集合元素。 List实现了Collection接口,故可以使用Collection接口的所有方法。而且由于List是有序集合,List可以根据索引来操作集合元素的方法。这些方法我们在平时使用list的原创 2016-08-18 17:42:31 · 771 阅读 · 27 评论 -
Struts2上传文件
文件上传在我们的生活中非常常见,今天我们就来看看如何利用struts2框架,来实现文件的上传。要实现文件上传的方法实际上已经有很多的例子,但我们在了解了如何实现文件上传功能后,必须去深入了解文件上传的机制。首先来看一下如何实现文件上传:一、引入jar包,必须协调commons-fileupload.jar和commons-io.jar的版本 二、新建jsp上传界面原创 2016-08-10 21:41:54 · 593 阅读 · 22 评论 -
java中Map
Map:在java中非常常用,是一种key-value映射的集合,它的每一个元素都包含一对键对象和值对象。Map并没有继承Collection接口,并没有显示的继承任何接口。从Map集合中检索元素时,只要给出key(键值),就能够返回对应的value值对象。 Map功能: put(Object key,Object value)添加一个你想要放的东西与你想原创 2016-08-07 22:31:22 · 725 阅读 · 26 评论 -
Java动态代理-JDK自带实现
上篇文章讲解了什么是静态代理,但是静态代理有一个问题就是需要建立很多的代理类,这样我们需要修改代理的方法的时候,需要在每个类中都要修改,这对于我们来说:当代理类很多的时候工作量就会成倍的增加。 于是针对上述问题,人们就提出了解决方案,我们在运行中来实现代理类的创建,也就是今天要讲解的主题——动态代理,首先先说的是JDK自带的动态代理的实现。 JDK自带的代理实现原创 2016-11-13 19:35:54 · 2002 阅读 · 53 评论 -
Java定时发送邮件(一)
最近在做一个定时发送邮件的任务,刚拿到就想到之前在SSH网上商城做过发送邮件,但由于刚进入对项目所用的整体框架不是很理解,定时发送邮件真不知道应该怎么做? 既然没有思路,就开始找思路,先从第一步开始做起,了解需求。该任务主要是对一些数据的统计,让管理员和公司高层能够了解软件的运行状况,以及带来的价值,统计统计从每天信息(从昨天7:00-今天7:00)、每星期、每月的信息,并定时在每天七点原创 2016-05-31 22:50:10 · 5683 阅读 · 0 评论 -
Java的基本类型和包装类型
一、Java基本类型 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 1、整数:包括int,short,byte,long ,初始值为0 2、浮点型:float,double ,初始值为0.0 3、字符:char ,初始值为空格,即'' ",如果输出,在Console上是看不到原创 2016-12-31 10:04:01 · 812 阅读 · 16 评论 -
Java动态代理--CGLib实现
上一篇说了通过JDK实现实现了动态代理,但是用JDK实现代理,要求所代理的类必须实现一个接口。如果我们类不实现接口,这就在无法使用JDK提供的Proxy来实现动态代理,这个时候我们应该怎么办呢?我们找到了一个能代理没有接口的类,就是CGLib类库。1、什么是CGLib? Byte Code Generation Library is high level API to g原创 2016-12-04 18:54:27 · 935 阅读 · 26 评论 -
认识Activiti
之前没有用到过工作流,这次由于需要,用到了Activiti工作流引擎,首先要做的就是先来了解一下什么是工作流引擎,它能够完成什么的任务,我们在什么情况下选用工作流引擎来处理问题。1、Activiti由来? Activiti的创始人也就是JBPM的创始人,从JBoss离职后开发了一个新的BPM引擎-----Activiti。由于是JBPM的创始人发明的Activiti,故其中有很多原创 2016-11-27 17:12:06 · 837 阅读 · 31 评论 -
商城----项目宏观(1)
最近在做一个关于商城的项目,首先先对项目做一个宏观的认识,项目主要分为前后台,前台用来给用户使用,后台主要是管理人员对商品的管理操作。 系统分为前台系统、后台系统、搜索系统、会员系统和订单系统。将系统按照模块进行拆分。这样使每个模块有自己独立的业务,使用接口进行通信,降低模块之间的耦合度。系统大致分为这几个模块,也是为了能够增加系统的灵活性,之后如何需要添加新的业务,我原创 2016-11-20 19:46:16 · 818 阅读 · 28 评论 -
OAuth2.0授权方式
一、定义 OAuth是个安全相关的协议,用户可以通过OAuth授权给第三方应用访问某些权限,而无需向第三方应用透露自己的密码。OAuth2.0是OAuth协议的最新版本。原创 2016-05-29 18:46:13 · 2166 阅读 · 14 评论