JAVA基础
文章平均质量分 53
endcy2016
偶尔想起了这里的笔记本。--如文章进CSDN会员可见,请大伙直接投诉,平台表脸,可耻可笑可悲。
展开
-
SpringMVC中Controller返回的后续自定义处理
应用范围和场景 和统一异常处理不同,有些时候Controller处理可能需要做后续处理,例如关键字拦截,例如数据脱敏等,使用切面的方式比较复杂,如果Controller里需要后续处理的接口使用的都是@ResponseBody注解,那么实现ResponseBodyAdvice接口将是非常便利的处理方法,当然使用拦截器、HandlerMethodReturnValueHandler接口实现也是几种方法,这里仅示例更简单的ResponseBodyAdvice接口使用实现。应用示例 ...原创 2021-05-11 19:32:29 · 772 阅读 · 0 评论 -
装饰器模式、JDK动态代理和CGLIB动态代理三种AOP实现
AOP即对OOP的补充,面向切面的编程方式增强面向对象思想的功能,概念之类的问题这里不做阐述,直接上代码实现细节,具体原理需要深入源码理解。测试功能,定义一个普通service类,利用AOP不修改原来类代码实现嵌入这个类的日志打印。定义一个DAO接口:public interface DAO { public boolean insert(); public bool...原创 2018-10-15 10:25:36 · 732 阅读 · 0 评论 -
JAVA模拟高并发及多线程计数器
1、多线程高并发模拟实现可采用闭锁CountDownLatch,设置对应线程数的CountDownLatch,达到就绪条件后会多线程统一执行。这里只是单机模拟,因为线程采用抢占式执行方式,并不能完全模拟统一同时执行。2、多线程计数器可采用悲观锁CAS实现类AtomicInteger等原子操作方法实现。import java.util.concurrent.CountDownLatch;...原创 2018-10-12 17:26:59 · 2671 阅读 · 1 评论 -
LinkedBlockingQueue和ArrayBlockingQueue的区别
源码分析见:https://blog.csdn.net/javazejian/article/details/77410889LinkedBlockingQueue和ArrayBlockingQueue的区别:1.队列大小有所不同,ArrayBlockingQueue是有界的初始化必须指定大小,而LinkedBlockingQueue可以是有界的也可以是无界的(Integer.MAX_...转载 2018-09-07 10:54:59 · 578 阅读 · 0 评论 -
String 、InputStream、Reader 的转换
1、String –> InputStreamInputStrem is = new ByteArrayInputStream(str.getBytes());orByteArrayInputStream stream= new ByteArrayInputStream(str.getBytes());2、InputStream–>StringinputStream in...原创 2018-07-19 14:09:06 · 1818 阅读 · 0 评论 -
生产者消费者模式(阻塞队列)
生产消费者模式需要使用到同步,以及线程,属于多并发行列,和观察者模式的差异也就在于此,所以实现起来也主要在这里的差异。 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还...原创 2018-07-19 14:06:26 · 328 阅读 · 0 评论 -
URLEncoder和URLDecoder的转码
URLEncoder类为实现将任意字符串转为特定编码的encode编码类似加密后字符串;URLDecoder类为实现将编码后的字符串通过特定编码转回类似解密后可读的字符串;设置编译环境和项目编译编码为:UTF-8 UTF-8,类文件设置为GBK,代码如下:public static void main(String[] args) { String str = "GBK:...原创 2018-07-19 11:24:11 · 1000 阅读 · 0 评论 -
字符图片验证码的java实现
这里仅写出验证码程序的生成方式和Servlet访问应用,具体的应用场景可以变更,例如可以将方法至于单独处理类,供MVC调用等等。import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.image.Buf...原创 2018-07-24 11:09:43 · 244 阅读 · 0 评论 -
Servlet+Ajax实现简单登录验证
具体实现步骤如下: 1.下载jquery库 jquery-1.3.2.js2.把它放在一个web工程webroot目录下面的一个文件夹里面(如 js文件夹里面) 3.编写服务器端的程序: AjaxServlet.java public class AjaxServlet extends HttpServlet { protected void doGet(HttpServl...原创 2018-07-24 10:48:55 · 4640 阅读 · 0 评论 -
Java中10大常见的String问题
1. 字符串比较,使用 “==” 还是 equals() ?简单来说, “==” 判断两个引用的是不是同一个具体来说是地址,不是值而 equals 判断两个对象的值是否相等字符串的驻留 ( String Interning ) 则会更好地理解这个问题2. 对于信息安全敏感的场景下为何使用char[]要比String更好?String是不可变对象, 意思是一旦创建那么整个对象就不可改变.即使新手觉得...转载 2018-04-17 15:29:15 · 343 阅读 · 0 评论 -
单例模式详解
1. 前言单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗?作为一个Java开发者,也许你觉得自己对单例模式的了解已经足够多了。我并不想危言耸听说一定还有你不知道的——毕竟我自己的了解也的确有限,但究竟你自己了解的程度到底怎样呢?往下看,我们一起来聊聊看~2. 什么是单例?单例对象的类必须保证只有一个实例存...转载 2018-04-17 15:21:16 · 157 阅读 · 0 评论