
java
文章平均质量分 79
poetteaes
这个作者很懒,什么都没留下…
展开
-
Spring AOP总结测试
AOP(Aspect Oriented Programming),即面向切面的编程。(一)什么是面向切面的编程切面是指代码中一些公共的非核心模块的抽象,比如日志打印,可以将其从核心代码中剥离出来,当程序运行需要时通过切面插入公共代码即可,从而降低代码的耦合度,提高代码的可复用性,并使得我们编程的时候能够更专注于核心业务代码的编写,这种编程模式叫做面向切面的编程。类可以继承,因此可以看做...原创 2018-09-01 19:25:38 · 378 阅读 · 0 评论 -
jpa利用Specification实现多条件查询排序
Entity实体类:import java.time.Instant;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import java...原创 2019-06-14 18:58:09 · 3229 阅读 · 0 评论 -
浏览器点击生成的下载链接点击事实现下载而不是自动播放并且指定下载文件名
对于视频或者图片文件,生成的下载链接,在浏览器中点击的时候,可能会自动播放,而不是下载。生成下载链接时可以通过指定response header的content-type参数来实现下载而不是自动播放,如下设置:content-type: application/octet-stream下载的时候默认的名称是下载链接处的文件名,如果想指定文件名,生成下载链接时可以通过指定response...原创 2019-07-08 21:05:09 · 2660 阅读 · 0 评论 -
基于LinkedHashMap实现LRU Cache以及手写LRU
public class LruCache<K, V> extends LinkedHashMap<K, V> { private int chcheSize; public LruCache(int chcheSize) { if (chcheSize < = 0) { throw new IlleagalArgumentException ("c...原创 2019-10-06 17:17:31 · 456 阅读 · 0 评论 -
java线程池实例及总结(以多路socket通信为例)
(一)线程池概念我们知道,多线程是针对多任务处理的,可以多线程可以并发执行多个任务,提高了程序执行效率。但是线程的创建和销毁需要时间,如果频繁创建和销毁线程,可能会影响执行效率,线程池可以解决这个问题。顾名思义,线程池可以理解为一个预先创建的线程集合,每次有任务来的时候,从线程池中取得一个线程去执行任务(如果线程池无空闲线程,可能要新建线程或者等待),执行完毕后线程暂不销毁,等待执行下一个任务...原创 2018-08-12 15:22:03 · 9835 阅读 · 0 评论 -
synchronized线程同步探讨(购票问题为例)
先前的文章(java多线程)对java的多线程进行了一些总结,这里对synchronized线程同步进行一些进一步的研究。以典型的购票问题为例,模拟购票,为了票数能够正确更新,线程需要同步,否则余票数量将有误,我们来看看synchronized的几种同步方案:(1)代码块同步,正确方法:这里有几个重要的地方,首先ticketCount要定义成static类型的,在多个Ticket对象之...原创 2018-08-11 22:05:14 · 836 阅读 · 0 评论 -
java socket编程实现客户端服务端TCP通信
先前的一篇博文(C语言socket编程实现TCP通信),在unix系统下,利用C语言socket编程简单实现了客户端服务端TCP通信。实际上,利用java.net包中的类可以更容易的进行socket通信。但不管是使用java还是C语言进行socket编程,TCP通信本质上是一样的。都是服务端端绑定一个端口并对此端口进行监听,客户端根据IP和端口访问服务端,两者通过三次握手建立连接,然后就可以通...原创 2018-05-18 23:30:13 · 1067 阅读 · 0 评论 -
文件读写(使用BufferedReader和PrintWriter)
FileReader/FileWriter按照字符流读写;FileInputStream/FileOutputStream按照字节流读写;使用BufferedReader可以使用readLine方法按行读取。本文使用BufferedReader和PrintWriter实现文件的读写。BufferedReader和PrintWriter实例化方式如下:File inFile = new Fi...原创 2018-06-14 13:58:49 · 2056 阅读 · 0 评论 -
二叉树的层次遍历带换行java语言实现
可以使用队列实现二叉树的遍历,LinkedLsit可以看做是一个队列,offer和poll分别是进队列和出队列。队列先入先出的特性实现了层次遍历,先将根节点入队,进入循环(循环条件队列非空),首先从队列中取出一个节点(并打印数据),判断从队列中取出(这是重点)的节点是否有左右儿子,有的话依次入队列;如果队列非空,继续循环,从队列再弹出一个节点(并打印),判断该节点的节点是否有左右儿子,有的话依次入...原创 2018-05-20 21:33:01 · 459 阅读 · 0 评论 -
JDBC连接mysql-8.0实现增删改查
(一)安装配置mysql官网下载mysql-8.0.11-winx64.zip解压到某个目录(例如E:\mysql-8.0.11-winx64)添加环境变量 MYSQL_HOME,值为E:\mysql-8.0.11-winx64(需要替换成实际解压目录);修改环境变量PATH,在末尾添加%MYSQL_HOME%\bin;打开cmd窗口,在E:\mysql-8.0.11-winx64\...原创 2018-06-24 19:59:09 · 3170 阅读 · 0 评论 -
java操作redis
前面几篇文章(redis安装配置与测试、redis的数据类型、hiredis包装redis增删改查接口)已经对redis的理论和实践进行了一些探讨。这里介绍一下java下redis的访问和操作,java操作redis需要使用jedis.jar包,可以从官网下载https://mvnrepository.com/artifact/redis.clients/jedis 。jedis的一些api可以看...原创 2018-06-10 18:12:53 · 267 阅读 · 0 评论 -
MyBatis测试
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 MyBatis中的全局配置文件定...原创 2018-06-29 23:28:18 · 8213 阅读 · 0 评论 -
Java web实现简登录页面(MyBatis+jsp+servlet+html+css+javascript)附源码
本文利用MyBatis+jsp+servlet+html+css+javascript实现了一个简单的登录页面。对用户输入的用户名和密码就行校验,校验通过则登录成功,密码和用户信息保存在mysql表中,通过MyBatis访问(MyBatis相关知识可参考先前的文章MyBatis测试)。先给出最终的效果图:登录成功则进入如下页面:登录失败,则进入如下页面:如果输入的密码或者用...原创 2018-07-01 21:44:13 · 32623 阅读 · 8 评论