
java
文章平均质量分 81
M_Jack
这个作者很懒,什么都没留下…
展开
-
阿里巴巴Java开发手册推荐线程池的创建方式你知道吗?
前言之前在项目中做一些任务型的项目,采用多线程方式,笔者通常用ExecutorService cachedThreadPool=Executors.newFixedThreadPool();方式创建。但是后来看阿里巴巴的JAVA开发手册,上面有个建议:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。那么线程池的原理是什么样的?创建方式是什么样的呢?接下来让我们看看。转载 2021-07-22 14:22:54 · 968 阅读 · 0 评论 -
idea中debug模式下查看request中的请求参数
查看request中的请求参数的键值前端向后端发起请求时,传输的参数保存在request的结构中:查看路径如下:123request—request –coyoteRequest –parameters –paramHashValues...转载 2021-04-23 17:35:50 · 2157 阅读 · 0 评论 -
微服务分布式事务4种解决方案实战
一、前言Seata 是一款开源的分布式事务解决方案,star 高达 18100+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,本文将剖析 Seata-AT 的实现原理,让用户对 AT 模式有更深入的认识。二、Seata 事务模式是什么?1. Seata 对事务的定义Seata 定义了全局事务的框架。全局事务定义为若干分支事务的整体协调:TM 向 TC 请求发起(Begin)、提交(Commit)、回滚(Rollback)全局事务。 TM 把代表全局事务的转载 2021-03-06 19:50:53 · 1915 阅读 · 0 评论 -
如果面试官再问你消息队列,就把这篇甩给他
https://cloud.tencent.com/developer/article/1632827转载 2021-03-06 19:48:41 · 215 阅读 · 0 评论 -
@JsonAlias和@JsonProperty注解使用详解
@JsonAlias和@JsonProperty注解使用详解前言在实际的工作需求中,写接口的人会经常遇到对于Bean各种各样的操作,比如我对数据库要写个Bean,返回前台还得有个Vo bean,在另一个需求又用到和这个类似的Bean了,但是就有些字段不一样啊,字段的有些类型不一样啊,接收的参数名不一样啊,反正就是一个小小的需求变动,可能就需要写好几个不同的Bean,之前需求没那么多的时候写两个就写两个吧,后来写的多了就烦了,所以认真研究下怎么转换就迫在眉睫了。JackSon这里讲解的是JackSo转载 2021-03-04 16:13:22 · 2589 阅读 · 1 评论 -
java 抛出异常的目的_Java异常处理原则与技巧总结
一处理原则Java异常代码中我们使用异常的目的是让异常的异常类型来提示“什么”被抛出了--- 即出了什么问题;用异常的栈打印信息来跟踪异常在“哪里”抛出 --- 即哪里出了问题;异常提示信息来提示“为什么”会抛出 --- 即出问题的原因。在对异常进行处理时,遵循以下原则可以有助于在调试过程中最大限度的使用好异常。具体明确提早抛出延迟捕获1.具体明确具体明确指的是在抛出异常时需要针对具体问题来抛出异常,抛出的异常要足够具体详细;在捕获异常时需要对捕获的异常进行细分,这时会有多个c.转载 2021-03-03 10:13:07 · 669 阅读 · 0 评论 -
Java中的初始化和清理及类的加载
构造器:java在创建对象时,用构造器保证对象被初始化。 使用new关键字,将会为对象分配存储空间,并调用相对应的构造器。 构造器名称与类名相同。 不接受任何参数的构造器称为默认构造器,也称为无参构造器; 构造器也是方法无返回值,和void空返回值不同; 构造器方法和普通方法的区别: 方法名和类名称相同,首字母大写 无返回值类型方法重载:方法签名相同,参数类型不同; 方法签名:返回值类型+方法名this关键字:this表示当前对象,this关键字只能在方法内部使用,表示对“调转载 2021-02-20 15:19:11 · 326 阅读 · 0 评论 -
java基础:静态内部类和非静态内部类对外部类属性的使用
public class InnerClassTest { int a = 1; static int b = 2; private int c = 3; private static int d = 4; //非静态内部类 class Inner1{ void test(){ System.out.println(a); //外部类属性 System.out.println(b); //外部.转载 2021-02-19 17:37:53 · 4354 阅读 · 0 评论 -
Java8 Lambda表达式教程
1. 什么是λ表达式λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (int x, int y) -> x + y;参数类型也可以省略,Java编译器会根据上下文推断出来: (x, y) -> x + y; //返回两数之和或者 (x, y) -> { return x + y...转载 2021-02-18 11:21:26 · 347 阅读 · 1 评论 -
十大经典算法
十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。0.2 算法复杂度0.3 相关概念稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:..转载 2021-01-20 09:59:29 · 45750 阅读 · 9 评论 -
多线程并发教程
http://ifeve.com/java-concurrency-thread-directory/转载 2021-01-20 09:55:27 · 355 阅读 · 0 评论 -
@interface 注解详解
Java基础加强总结(一)——注解(Annotation)@interface 注解详解转:http://www.cnblogs.com/xdp-gacl/p/3622275.html一、认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts2有一部分也是基于注解的了,注解是一种趋势,现在已经有不少的人开始用注解了,注解是JDK1.5之后才有...转载 2021-01-20 09:50:45 · 428 阅读 · 0 评论 -
拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别
https://cloud.tencent.com/developer/article/1421041转载 2021-01-12 14:44:23 · 616 阅读 · 0 评论 -
java 安全加密api(cipher,signature,mac...)
前言本文主要讲解常用加密算法,消息摘要,二进制字符变换等的java实现,对于加密算法本身的原理只会做简单的介绍,详细的原理可百度。相关概念加密加密是指将可读取的明文作为输入,通过特定的变换操作得到不易读取的输出(通常是二进制序列),目前常用的加密算法包括 对称加密的AES/DES,非对称加密的RSA/DSA/EC,加密很重要的一点就是解密,无论多复杂的数学变换,一定可以通过相应的逆变换得到原始输入,这是的加密行为才有意义。hash(哈希变换)hash值又称散列值或者消息摘要,对转载 2020-08-28 17:58:29 · 562 阅读 · 1 评论 -
七个开源的 Spring Boot 前后端分离项目
https://www.cnblogs.com/lenve/p/11539910.htmlhttps://www.cnblogs.com/lenve/转载 2020-08-11 14:58:58 · 291 阅读 · 0 评论 -
内存与异常复习
首先来看异常的根节点Throwable是所有异常的根,java.lang.Throwable Error是错误,java.lang.Error Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形.这种异常会导致JVM中断,必须人为处理 java虚拟机中发生的,不需要程序猿try-catch或者抛出 StackOutFlowError(栈溢出)和Ou...转载 2020-04-24 17:07:28 · 284 阅读 · 0 评论 -
获取客户端访问的ip地址
//获取客户端访问的ip地址 public static String getIp() { HttpServletRequest request = ServletActionContext.getRequest(); String ip = request.getHeader("X-Forwarded-For"); ...原创 2020-04-09 10:26:08 · 646 阅读 · 0 评论 -
Java微信支付和支付宝支付
java集成微信支付(完整流程)1.申请微信支付能力* 要想使用微信支付能力,不管是app支付、公众号支付、h5支付等支付方式都需要先在微信商户平台申请开通支付能力。* 申请开通支付能力的资料有公司营业执照、负责人身份证正反面等图片,相关所需的所有资料在微信官方商户平台上有说明。* 申请完开通支付能力后,我们会得到商户号以及appId,然后设置32位官方密钥。1232.准备...转载 2020-02-20 16:38:26 · 1619 阅读 · 0 评论 -
java中的各种锁详细介绍
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观...转载 2020-01-15 19:45:32 · 1279 阅读 · 0 评论 -
jquery和mybaits的一点小使用
var leixing =$('tbody:eq(0) tr:eq(0) td:last').html().replace(/(^\s+)|(\s+$)/g,""); if(leixing=="系统自动审核"){ $('#xgbjyxx').attr("disabled",true); $('#tj1').attr("disabl...原创 2019-12-24 15:28:33 · 359 阅读 · 0 评论 -
Java生成验证码并进行验证
一、实现思路使用BufferedImage用于在内存中存储生成的验证码图片使用Graphics来进行验证码图片的绘制,并将绘制在图片上的验证码存放到session中用于后续验证最后通过ImageIO将生成的图片进行输出通过页面提交的验证码和存放在session中的验证码对比来进行校验二、生成验证码页面通过访问servlet来生成验证码,servlet中的代码如下:pac转载 2017-11-22 15:31:19 · 1658 阅读 · 0 评论 -
Spring 注解学习手札(六) 测试
既然系统基于注解自成一体,那么基于Spring的测试是否可以依赖注解轻松完成呢?坚决地没问题! Spring-Test义不容辞的完成了这个任务!并且,通过Spring-Test的事务会滚控制,我们可以在不污染数据库数据的前提下进行业务测试! 完成这项内容,本次Spring 注解学习手札整理就正式落幕了! 感谢大家的关注! 相关参考: Spring 注解学习手札(一) 构建简单Web应用 Sprin转载 2018-01-18 12:59:21 · 320 阅读 · 0 评论 -
Java中导入、导出Excel
Java中导入、导出Excel一、介绍当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要实现导入、导出Excel的应用。目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel下面我就分别讲...转载 2018-02-23 14:26:28 · 401 阅读 · 0 评论 -
java实现excel表格上传和下载
需要导入excel相应的jar包form表单需要加上enctype=”multipart/form-data”这个属性 //封装上传文件对象 private File userExcel; // 封装上传文件类型的属性 private String userExcelContentType; // 封装上传文件名的属性 private String u...转载 2018-02-23 14:27:54 · 458 阅读 · 0 评论 -
SpringMVC上传和解析Excel方法
示例:导入相关数据(Excel文件),相关的文件数据编辑好。XML文件配置再spring的xml文件中配置要上传文件的大小?1234<!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes --><bean id="multipartResolver" class="org.springframework.web.mult...转载 2018-02-23 14:30:22 · 690 阅读 · 0 评论 -
Spring学习笔记之使用Spring发送Email
配置Spring发送邮件Spring Email抽象的核心是MailSender接口。顾名思义,MailSender的实现能够通过连接Email服务器实现邮件发送的功能。 Spring自带的一个MailSender的实现——JavaMailSenderImpl。它会使用JavaMail API来发送Email。配置邮件发送器需要的核心maven: <dependency> ...转载 2018-02-23 18:01:38 · 829 阅读 · 0 评论 -
Quartz定时器入门总结
Quartz可以用来做什么?Quartz是一个任务调度框架。比如你遇到这样的问题想每月25号,信用卡自动还款想每年4月1日自己给当年暗恋女神发一封匿名贺卡想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Quartz就是来干这样的事...转载 2018-03-22 17:41:24 · 242 阅读 · 0 评论 -
Spring Quartz定时器 配置文件详解
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等。我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但时调度控制非常不方便,并且我们需要大量的代码。使用Quartz框架无疑是非常好的选择,并且与Spring可以非常方便的集成,下面介绍它们集成方法和Cron表达式的详细介绍。一、增加所依赖的JAR包1、...转载 2018-03-22 18:30:43 · 209 阅读 · 0 评论 -
Java Zip压缩实现
最近在自学javaWeb,先复习一下java,把还给老师的东西再找回来(知识如果不用很快就会忘记啊)。。今天看到了zip压缩,决定要整理一下。java将有关zip压缩的内容都封装在java.util.zip宝中,用java实现zip压缩,不用考虑压缩算法,java已经将这些进行了封装实际上用java实现zip压缩涉及的就是一个“输入输出流”的概念用java实现一个文件的zip压缩,过程可以简单地表...转载 2018-03-06 10:54:54 · 2858 阅读 · 1 评论 -
SM2&SM3&SM4 Java实现分析
【摘要】本文主要讲解“国密加密算法”SM系列的Java实现方法,不涉及具体的算法剖析,在网络上找到的java实现方法比较少,切在跨语言加密解密上会存在一些问题,所以整理此文志之。源码下载地址http://download.youkuaiyun.com/detail/ererfei/9474502需要C#实现SM系列算法源码的可以评论留邮箱地址,看到后发送1.SM2 & SM3由于SM2算法中需要使用S...转载 2018-03-19 15:40:29 · 23694 阅读 · 7 评论 -
Java常用加密算法实例总结
本文实例总结了Java常用加密算法。分享给大家供大家参考,具体如下:项目中第一次深入地了解到加密算法的使用,现第一阶段结束,将使用到的加密算法和大家分享一下:首先还是先给大家普及一下常用加密算法的基础知识基本的单向加密算法BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,...转载 2018-03-19 17:15:36 · 773 阅读 · 0 评论 -
Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查
由于公司的新接得项目要实现一批数据的同步,通过外围厂商提供的一系列各个系统的webervices接口定时将数据同步到我们开发的共享平台上,由于厂商系统的数据是不断在变化以及各系统闲忙时的特点,所以定时同步任务的执行必须在时间上能够动态配置。因此,我们需要动态的从数据库中获取配置信息,以改变各个定时间的执行规则,废话不说了,上代码:(我利用的是ssh框架直接写的,框架搭建不再叙述)1.创建数据表(我...转载 2018-03-23 13:49:21 · 2236 阅读 · 0 评论 -
Quartz从数据库获得时间
什么是动态定时任务?是由客户制定生成的,服务端只知道该去执行什么任务,但任务的定时是不确定的(是由客户制定)。这样总不能修改配置文件每定制个定时 任务就增加一个trigger吧,即便允许客户修改配置文件,但总需要重新启动web服务啊,研究了下Quartz在Spring中的动态定时,发现:Xml代码 <bean id="cronTrigger" class="org.springframe...转载 2018-03-23 13:58:59 · 2346 阅读 · 0 评论 -
quartz1.8+spring2.3.9实现从数据库中读取定时任务
数据库建表语句CREATE TABLE `report_tasks_manager` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', `task_desc` varchar(255) DEFAULT NULL COMMENT '任务描述', `task_name` varchar(100) NOT NULL COMMENT ...转载 2018-03-23 14:19:20 · 910 阅读 · 0 评论 -
JAVA高并发多线程必须懂的50个问题
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么方式...转载 2018-03-29 17:42:46 · 345 阅读 · 0 评论 -
Java高并发,如何解决,什么方式解决
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息...转载 2018-03-30 11:51:43 · 213 阅读 · 0 评论 -
Shiro整合SSO单点登录系统
前言shiro是一个非常强大的权限管理框架,关于shiro与cas整合的示例有很多,但是我们平时开发的时候,很多公司并不是使用cas来做SSO的,而是自己公司会用自己开发的。本文就主要针对这种方式的整合。新增SSO相关的properties#sso服务器登录地址,service参数表示登录成功后要跳转的地址ssoServiceUrl=http://www.authserver.com/auth/...转载 2018-03-26 14:03:49 · 1404 阅读 · 0 评论 -
己的单点登录(SSO)服务
摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从多个方面和角度给出了对单点登录(SSO)的全面分析,还并且讨论了如何...转载 2018-03-26 17:16:21 · 470 阅读 · 0 评论 -
java分布式都有哪些知识点
分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。我试着列一下相关知识吧。网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括:OSI模型的7层TCP/IP,DNS,NATHTTP,SPDY/HTTP2Telnet网络编程,是通过程序在多个主机之间通信。包括:Socket多线程非阻塞IO网络框架NettyMinaZeroMQ操作系统的网络部分RPC...转载 2018-04-02 16:29:09 · 753 阅读 · 0 评论 -
深入理解java:5. Java分布式架构
什么是分布式架构分布式系统(distributed system)是建立在网络之上的软件系统。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。 在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。简单来讲:在一个分布式系统中,...转载 2018-04-02 16:49:56 · 332 阅读 · 0 评论