
Java
文章平均质量分 64
danny_shu
只有全力以赴,才能看起来毫不费力
展开
-
redis和MySQL如何保证数据的一致性
同一份数据同时保存在redis和MySQL,那么数据发生变化的时候就需要同时更新这两个存储,但是更新会有前后且不具有原子性,就会出现数据一致性问题。先删除缓存,再更新数据库:也会存在极端情况,删除redis和更新数据库之间有线程访问,也会存在数据不一致的问题。redis是用来实现应用与数据库之间读操作的缓存层,目的是减少数据库的IO,还可以提升数据的IO性能。注:方法一和二都保证了数据的最终一致性,但是不保证短时间内数据一致。先更新数据库,再更新缓存:如果缓存更新失败,那么数据就会不一致。转载 2023-02-01 09:23:22 · 1177 阅读 · 0 评论 -
@Resource 和 @Autowired 的区别
很简单的一个例子,有两个苹果,一个叫哈哈,一个叫呵呵,你指着两个苹果,意思是去拿个苹果,让@Resource去拿,如果不说明,他懵了,但是你说明拿叫哈哈的那个,他就知道了,给你拿来了,让@Autowired去拿,如果不说明,他也懵了,但是他又是个聋子,听不到你说的,结果就拿不到,但是如果写了个字条(@Qualifier)写明拿呵呵,他也就知道了。注:在代码中发现构造方法中注入了很多依赖,显得很臃肿,对于这个问题,说明类中有太多的责任,违反了类的单一性职责原则,这时候需要考虑使用单一职责原则进行代码重构。转载 2022-10-08 19:20:43 · 139 阅读 · 0 评论 -
Java RC4 加密解密
java 代码如下:import java.io.UnsupportedEncodingException;public class RC4 { public static String decry_RC4(byte[] data, String key) { if (data == null || key == null) { retu转载 2018-01-18 16:29:30 · 1259 阅读 · 0 评论 -
微信支付开发,设置支付授权目录
开发微信支付的过程中,可能所有的流程都搞明白了,可能在配置公众号的支付授权目录时会遇到问题,会不大好理解。如果支付授权目录没有设置正确,在请求JSAPI时,会提示“3当前页面的url未注册”的错误。怎么设置呢,首先要看你支付的当前页面URL,比如是: http://www.xxx.com/wxpay/js_api_call.php你就必须填写: http://www.xxx原创 2018-01-17 22:07:08 · 13666 阅读 · 1 评论 -
JAVA随机数之多种方法从给定范围内随机N个不重复数
一、JAVA中生成随机数的方式 1、在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j2me中没有; Java代码 int randomNumber = (int) Math.round(Math.random()*(max-min)+min); int ra转载 2018-01-08 17:14:24 · 9993 阅读 · 1 评论 -
Java面试题全集
原本链接:http://blog.youkuaiyun.com/jackfrued/article/details/44921941 2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《Java面试大全》进行了全面的修订并重新发布在我的优快云博转载 2018-01-30 17:08:13 · 407 阅读 · 0 评论 -
Syntax error, insert "}" to complete Block
eclipse中出现错误 Syntax error, insert “}” to complete Block我找了好久确定{}都有匹配成功。结果原因如下划红线的地方多出来类似于空格的占位符,也许这样看不清楚。我们来显示空格、制表符和回车键。Window->Preferences->General->Editors->Text Editors->Show whitespace char转载 2018-01-05 12:57:17 · 8087 阅读 · 0 评论 -
由浅入深学习springboot中使用redis
讨论QQ群:313032825目录redis连接工厂类 template(模版)key和value序列化springboot缓存某个方法申明缓存管理器添加缓存删除缓存自定义key 条件化缓存 总结demo:springboot配置升级简单化 本文代码github地址 正文很多时候,我们会在springboot中配置redis,但是就那么几个配置就配好了,没办法知道为什么,这里就详细的讲解一下这转载 2018-01-12 10:21:56 · 755 阅读 · 0 评论 -
模板方法模式 java
1. 模板方法模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 –> 吃东西 –> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同,如图1所示:图1 请客吃饭示意图 在软件开发中,有时也会遇到类似的情况,某个方法的实转载 2018-01-02 21:49:24 · 3589 阅读 · 0 评论 -
Java文件下载的几种方式
Java文件下载的几种方式 public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名转载 2017-12-18 13:32:22 · 2324 阅读 · 0 评论 -
java模式—装饰者模式
原文:https://www.cnblogs.com/chenxing818/p/4705919.html装饰者模式1、意图: 动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客 户端透明的方式扩展对象的功能。2、适用环境 (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 (2)处理那些可以撤消的职责。 (转载 2017-12-26 16:20:48 · 217 阅读 · 0 评论 -
java 设计模式六大原则(1):单一职责原则
转载地址:http://blog.youkuaiyun.com/dragon_fire/article/details/8636071定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T转载 2017-12-26 13:05:03 · 372 阅读 · 0 评论 -
Java微信开发(通过java程序获取用户个人信息)
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。 开发者可通过OpenID来获取用户基本信息。请使用https协议。 我们可以看看官方的文档:获取用户的基本信息。转载 2017-11-27 13:36:31 · 2395 阅读 · 2 评论 -
java根据URL获取json对象
?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package test; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.i转载 2017-11-27 12:16:04 · 1152 阅读 · 0 评论 -
java代码请求URL
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class TestWx1 {原创 2017-11-27 12:04:59 · 1978 阅读 · 1 评论 -
用 Java 实现的 Rc4 加密算法
转载自:http://blog.youkuaiyun.com/a9529lty/article/details/4813393有一个项目,需要解析一个用户提供的rc4加密后的文件,特意搜索整理了一个java 版本的RC4加解密算法。public static String HloveyRC4(String aInput,String aKey) { int[] iS转载 2018-01-18 14:37:53 · 2306 阅读 · 0 评论 -
Tomcat启动时卡在“INFO: Deploying web application directory ......”的解决方法
原文链接:http://blog.youkuaiyun.com/njchenyi/article/details/46641141 第一次遇到Tomcat在Linux服务器启动卡住的情况,情况很简单,tomcat启动以后卡在INFO: Deploying web application directory ……这句话,具体会卡多久就没测试了。google、baidu都没找到解决方法。幸亏UCloud的技...转载 2018-02-09 15:42:20 · 568 阅读 · 0 评论 -
再有人问你Java内存模型是什么,就把这篇文章发给他
原文链接:https://blog.youkuaiyun.com/hollis_chuang/article/details/80880118 前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂...转载 2018-07-04 13:54:47 · 519 阅读 · 1 评论 -
ArrayList和LinkedList的区别
原文链接:https://www.cnblogs.com/shanheyongmu/p/6439202.htmlList概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: &nb转载 2018-06-28 14:13:39 · 329 阅读 · 0 评论 -
tomcat 日志log4j,slf4j,logback冲突
问题描述: 启动tomcat,发现tomcat无法启动,catalina.out有如下错误日志:INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Closing Sp...转载 2018-06-20 09:17:26 · 1837 阅读 · 0 评论 -
一周一源码之HashMap源码解析
原文链接:https://blog.youkuaiyun.com/u011291072/article/details/80726185 简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。其继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口...转载 2018-06-19 12:54:01 · 277 阅读 · 0 评论 -
Java编写文件拷贝
public class TestDemo { public static void main(String[]args) throws Exception { File inFile = new File("d:"+File.separator+"demo"+File.separator+"hello.jpg") ; if原创 2016-09-23 18:32:39 · 269 阅读 · 1 评论 -
JAVA中使用HTTPclient访问url取得数据
使用GET方法获取数据:/** * 根据URL试用get方法取得返回的数据 * @param url * URL地址,参数直接挂在URL后面即可 * @return */ public static String getGetDateByUrl(String url){ String data = null; //构造HttpCl...转载 2018-04-12 17:35:29 · 5956 阅读 · 0 评论 -
JAVA MAIL 发送邮件(SSL加密方式,TSL加密方式)
一、一般配置发送邮件需要用到 mail包 maven 依赖如下:1 <!-- https://mvnrepository.com/artifact/javax.mail/mail -->2 <dependency>3 <groupId>javax.mail</groupId>4 ...转载 2018-03-28 17:07:26 · 2425 阅读 · 0 评论 -
公司内部邮箱服务器发送邮件 java版
背景:由于需要给合作方以压缩包的形式每天返回数据,基于我们自己写的分布式程序,而月末通过返回的数据,来与合作方进行对账,所以每天数据返回的成败就至关重要了,但又懒得每天去查看日志,刚好借助一下公司内部的邮件服务器。go、go、gopackage test.util;import org.apache.log...转载 2018-03-28 16:43:56 · 5392 阅读 · 0 评论 -
java序列化与反序列化
转自:http://www.blogjava.net/dennydeng/articles/93464.html 1 package com.test.mainterface; 2原创 2018-03-23 15:38:24 · 259 阅读 · 0 评论 -
你离顶尖Java程序员,只差这11本书的距离
个人认为看书有两点好处:能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处。很多程序...转载 2018-02-25 20:05:12 · 342 阅读 · 0 评论 -
Unable to parse request org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processi
最近做一个web项目中有上传文件的功能,已经写出并在本地和部署到服务器上测试了好几个文件上传都没问题(我用的是tomcat)。部署上服务器,上传图片时有的图片大就回在tomcat日志报如下错误:Unable to parse requestorg.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Process...转载 2018-02-13 17:08:10 · 2683 阅读 · 0 评论 -
Java设计模式——代理模式实现及原理
简介Java编程的目标是实现现实不能完成的,优化现实能够完成的,是一种虚拟技术。生活中的方方面面都可以虚拟到代码中。代理模式所讲的就是现实生活中的这么一个概念:中介。代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式包含如下角色:ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。RealSubject:真实主题角色,是实现抽象主转载 2017-12-26 17:33:00 · 1054 阅读 · 0 评论 -
JAVA IO基础概念相关总结
java.io包是负责整个IO编程的开发包,在这个开发包中包含有核心的5个类和1个接口 IO学习的关键:同一个方法根据不同的子类可能有不同的实现一、File类 在整个java.io包里面File是唯一一个与文件本身有关的处理类。例如:文件的创建、重命名等操作都属于文件本身的操作,如果要想使用File类进行操作,那么必须设置一个操作的路径,所以如果要想设置File类的操作文件路径,...原创 2018-02-12 15:42:43 · 476 阅读 · 0 评论 -
JVM(java 虚拟机)内存设置
一、设置JVM内存设置1. 设置JVM内存的参数有四个:-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-Xmn Java Heap Young区大小,不熟悉最好保留默认值;-Xss转载 2017-12-20 11:11:14 · 155 阅读 · 0 评论 -
forward和redirect的区别
1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.2.从数据共享来说forward:转发页面和转发到的页面可以共享req转载 2017-12-01 23:42:37 · 205 阅读 · 0 评论 -
使用 Java 操作 Kafka
1、 请一定要修改 hosts 文件,不能用 ip 地址,必须域名: · 文件路径:C:\Windows\System32\drivers\etc\hosts;2、 建立一个新的 Java 项目,将 Kafka 的开发包配置到项目的 CLASSPATH 之中:3、 建立一个新的生产者用于消息的发送;package cn.test.demo;import java.util.Properties;原创 2017-08-31 10:24:48 · 899 阅读 · 0 评论 -
java web验证码功能实现
<servlet> <!-- 验证码功能 --> <servlet-name>KaptchaServlet</servlet-name> <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class> <init-param> <!--原创 2017-08-31 10:17:05 · 436 阅读 · 0 评论 -
java接口和抽象类
1、抽象类最大的特征就是在普通类的基础上追加了抽象方法,而事实上抽象类定义里面也存在有若干的问题 。将抽象方法和普通方法写在一起有些乱 。抽象类本身会存在单继承的局限2、抽象类和接口最大的区别在于:抽象子类只允许继承一个抽象类,而接口的子类可以同时实现多个接口,避免了单继承的局限。接口本质上来讲属于一个特殊的类,接口的组成只有2种结构:全局常量、抽象方法,而接口的定义要使用原创 2017-09-07 16:46:42 · 195 阅读 · 0 评论 -
static中不能使用this
Static方法是类方法,先于任何的实例(对象)存在。即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。而this指代的是当前的对象 在方法中定义使用的this关键字,它的值是当前对象的引用.也就是说你只能用它来调用属于当前对象的方法或者使用this处理方法中成员变量和局部变量重名的情况. 而且,更为重要的是this和super都无法出现在static 修饰的方法中,st原创 2017-09-14 13:44:43 · 3641 阅读 · 0 评论 -
URL中加号变空格
客户端向服务器端传参数,所有的+号变成了空格解决方法如下:方法一、修改客户端将客户端带“+”的参数中的“+”全部替换为“2B%”,这样参数传到服务器端时就能得到“+”了。$('.download').click(function(e) { e.preventDefault() var href = $(this).attr('href').repla原创 2017-09-14 10:53:18 · 2204 阅读 · 0 评论 -
java并发的处理方式
赠书 | 异步2周年,技术图书免费选 程序员8月书讯 项目管理+代码托管+文档协作,开发更流畅 window.quickReplyflag = true; var isBole = false; var fasrc="http://my.youkuaiyun.com/my/favorite/miniadd?t转载 2017-08-28 13:48:53 · 306 阅读 · 0 评论 -
java使用cookie实现下次自动登录
Cookie通过设置后,生命周期可以与Session一样,或者比它长久。通常来说,根据我的习惯,对于一些通用的业务能够,我希望把它们封装到一个工具类里面,使用方法就是直接调用它的静态方法。CookieTool.java 源代码:/** * 设置cookie(接口方法) * @param response * @param name cookie名字 * @param value cooki转载 2017-09-05 09:48:11 · 1317 阅读 · 1 评论 -
java对象拷贝
package cn.test.demo;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;public class TestDemo { public sta原创 2017-08-25 17:23:07 · 178 阅读 · 0 评论