
Java
文章平均质量分 60
jack_too
你所有的见解都应建立在自己的学识与阅历之上!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一个例子让你了解JAVA反射
通俗地说,反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,希望读者能理解,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们.package cn.lee.demo; import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.I...转载 2020-04-04 22:47:45 · 413 阅读 · 0 评论 -
Spring常见面试题总结(超详细回答)
1、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。主要由以下几个模块组成:Spring Core:核心类库,提供IOC服务;Spring Context:提供框架式的Bea...转载 2020-04-03 17:14:58 · 481 阅读 · 0 评论 -
java.lang.NoClassDefFoundError
最近在写代码时,改变了一个类,使用idea全局替换,导致部分类名在替换时,改成的是小写,集中在全局修改的类中进行排查一下即可。原创 2020-03-08 21:17:26 · 185 阅读 · 0 评论 -
ajax 返回response 获取 headers中的token
//浏览器默认是不让获得header中其他值,先指定一个头部,再存入数据response.setHeader("Access-Control-Expose-Headers", "TOKEN_NAME");response.setHeader("TOKEN_NAME", "123456");前端ajax<script type="text/javascript"> v...原创 2019-12-31 20:41:15 · 6383 阅读 · 1 评论 -
java封装 继承 多态 的概念和作用
一:概念封装: 在java中,我们对类的封装,对方法的封装,在其他类中只需要调用这个类或者方法就行。 通俗点理解,我们在启动汽车的时候。汽车对里面的零件构造进行了封装,只要提供给我们一个钥匙口,我们只需要用钥匙启动就行。继承: 在java中,我们是在父子类之间定义继承关系的。只要子类继承父类,就可以调用父类中的方法(注:父类私有的方法子类无法调用)。 通俗点理解,我们家庭中,也是这种...原创 2019-12-01 14:46:43 · 3560 阅读 · 1 评论 -
Shiro框架详解
(注:初始登录账号:admin 密码:123456)简介:本篇博客讲解了关于Shiro的四个部分 一:Shiro的基本介绍 二:Shiro的项目搭建 三:Shiro代码下载参考(项目+sql文件) 四:关于Shrio的问题分析一:Shiro的基本介绍1:什么是Shiro、有什么用、什么时候使用? shiro是一个...原创 2019-11-26 21:02:38 · 323 阅读 · 0 评论 -
统一异常处理
前言:如果项目中异常处理都是通过try catch完成的。就会导致代码拥有大量的try catch语句。简洁性,可视性,复用性都很差。一:ExceptionHandler的运行机制https://blog.youkuaiyun.com/tolode/article/details/103263528二:枚举的使用https://www.cnblogs.com/jingmoxukong/p/60983...原创 2019-11-26 20:47:34 · 179 阅读 · 0 评论 -
@ExceptionHandler详解
1:@ExceptionHandler介绍@ExceptionHandler注解我们一般是用来自定义异常的。可以认为它是一个异常拦截器(处理器)。异常间的层次关系2: @ExceptionHandler的使用一:极简测试,一共4个类: 1、一个SpringBoot启动类 2、一个控制层 3、一个异常处理类 4、一个service类启动类:Exceptionhand...原创 2019-11-26 19:58:51 · 46769 阅读 · 8 评论 -
电商订单未支付-回仓(RabbitMQ实现)
1:可以使用java中自带的api–Timer , 但是操作比较繁琐 。2:电商项目中引入第三方插件:石英钟quartZ3:定时任务逻辑: 设置24小时支付超时如何判断一个订单是否超时?订单中有status(订单状态 1未付款 2已付款 3未发货4已发货5交易成功 6交易失败)字段和createTime(订单生成时间)字段 , 检索订单表中创建时间距离现在大于24 , 并且status为1...原创 2019-10-12 23:15:49 · 1013 阅读 · 0 评论 -
订单一定时间未支付-回仓(Timer实现)
背景:做商品支付的开发过程中,一个必须考虑到的环节:用户在点击下单购买,同时也点击了支付,这时候由于各种原因,用户长时间未支付,对于库存有限的商品来说,一般会将当前订单的商品库存锁定一段时间,这段时间一过,还未支付,库存自动回库,同时修改支付状态,可以参照下12306的买票过程,对于这样一种需求,我们有什么开发成本低的方案呢?方案:如果你的后端是java开发的,那搞个schedule定时任务...原创 2019-10-12 22:03:35 · 1917 阅读 · 0 评论 -
RubbitMQ(死信队列)极简测试
基本环境:jdk版本:1.8rubbitmq版本:3.7.16springboot项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in...原创 2019-11-21 22:55:25 · 530 阅读 · 1 评论 -
更新数据是先更新缓存(redis),还是先更新数据库(mysql)
提问:老师,上次面试我的回答是先更新数据库,在更新缓存。但是面试官给我的回答是,先更新缓存,再更新数据库。后来我也上网查了下,先更新缓存,再异步将缓存中的数据同步到数据库。但是我并没有查到相关的代码逻辑。总结两种方式入戏1:先更新数据库 - 删缓存 - 再次访问 - 查询数据库 - 存入缓存2:更新redis(新key覆盖旧key) - 查询 - redis异步...原创 2019-11-15 21:31:51 · 11309 阅读 · 5 评论 -
Get和Post请求区别和使用场景
GET和POST是什么?答:HTTP协议中的两种发送请求的方法。HTTP是什么?答:HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。Get请求和Post请求区别:(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)(2)post发送的数据更大(get有url长度限制)(3)post能发送更多的数据类型(get只能发送AS...转载 2019-11-13 22:03:48 · 1083 阅读 · 0 评论 -
Cannot load driver class: com.mysql.jdbc.Driver
Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.jdbc.Driver发现这个错误:第一步:看jar包是否存在<dependency><groupId>mysql</groupId><artifactId>mysql-connec...原创 2019-11-09 15:23:10 · 338 阅读 · 0 评论 -
try catch finally 通俗易懂
try:对可能出异常的代码进行包裹catch:当try包裹的代码出现问题时,捕获到对应异常。(如果进行捕获了,则下面的程序继续执行正常否则,还是异常)finally:不管是否出现异常,以及是否捕获,最终一定会执行try catch finally组合有以下三种try catchtry catch finallytry finally以下结合几个案例来分析try catch fin...原创 2019-10-24 12:22:20 · 556 阅读 · 0 评论 -
分布式系统如何保证数据的一致性
由于互联网目前越来越强调分布式架构,如果是交易类系统,面临的将会是分布式事务上的挑战。当然目前有很多开源的分布式事务产品,例如java JTA,但是这种解决方案的成本是非常高的,而且实现起来非常复杂,效率也比较低下。对于极端的情况:例如发布,故障的时候都是没有办法保证强一致性的。首先,在目前的互联网应用中,我们通过一个比较常见的例子,让大家更深入的了解一下分布式系统设计中关于数据一致性的问题。拿...转载 2019-10-12 22:10:02 · 1419 阅读 · 0 评论 -
Java后端压缩-浏览器解压缩
前言:The next version of the Project will provide support for gzip in order to faster speed of data transmission on the network。在我们的项目中,添加对gzip的支持,是为了加快数据在网络中的传输速度。If you need to transfer data usi...原创 2019-01-05 16:45:16 · 1283 阅读 · 0 评论 -
Tomcat热部署(Myeclipse)
简介:Tomcat热部署主要用于程序员开发中,每次在后端做了修改,都要频繁开启tomcat服务器 耗时,麻烦。而做出的改进。笔者开发工具:myeclipse2014+tomcat7+jdk7 1:在tomcat中做出的修改在apache-tomcat-7.0.55\conf\tomcat-users.xml中进行修改</tomcat-users...原创 2019-01-19 09:12:11 · 591 阅读 · 0 评论 -
Java8-Stream
简介举例说明filter(筛选)map(转换)distinct(去重)sorted(排序)limit(限制返回个数)skip(删除元素)reduce(聚合)min(求最小值)anyMatch/allMatch/noneMatch(匹配)总结简介java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常...转载 2019-10-01 20:38:13 · 106 阅读 · 0 评论 -
RPC和REST的区别
一:RPCRPC 即远程过程调用, 很简单的概念, 像调用本地服务(方法)一样调用服务器的服务(方法).通常的实现有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是传输数据的格式.(如果你已经习惯于XML繁重的尖括号,你不妨可以尝试下更加轻型,高效,传输效率高的 JSON.)一个简单的通信过程通常为:Request<?xml version="1.0"...转载 2019-10-05 22:42:08 · 150 阅读 · 0 评论 -
RPC简介及框架选择
简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化方式Protobuf等HTTP协议http协议是基于tcp协议的,tcp协议是流式协议,包头部分可以通过多出的\r\n来分界,包体部分如何分界呢?这是协议本身要解决的问题。目前一般有两种方式,第一种方式就是在包头中有个content-Length字段,这个字段的值的大小标识了POS...转载 2019-10-05 22:46:10 · 127 阅读 · 0 评论 -
数据加密技术篇
这几年接触了一些加密技术,在这里做个总结,主要是加密算法(对称加密和非对称加密)和摘要算法。这里主要是结合Java代码讲解常见的 对称加密(DES)、非对称加密(RSA)、摘要算法(MD5)对称加密:DES,3DES,TDEA,Blowfish,RC5,IDEA等。非对称加密:RSA、Elgamal、背包算法、Rabin、D-H、ECC等摘要算法:MD5算法和SHA-1算法等对称加密...原创 2019-10-08 23:23:57 · 316 阅读 · 0 评论 -
常见Bugger篇章一
第一次写博客,一时没想到写什么好,写了几个常见的Bugger,希望对大家有所帮助,以下列举部分仅个人结论,仅供参考。希望大家一起探讨。400:cookie缓存作怪,清空即可答:百度了一下,发现http Status 400这个错误大多是因为,jsp的form表单提交的字段类型和后台接收字段类型不匹配造成的(例如,form中为String,后台接收为Integer)...原创 2018-05-08 22:32:21 · 479 阅读 · 0 评论 -
Java AJAX加载图片
业务需求:打开网站主页,ajax直接加载相应图片导入js:jquery-1.8.3.js后台controller代码:这里定义controller主要是为了定义ajax中的urlpackage com.mvc.control;import javax.servlet.http.HttpServletResponse;import org.springframework.ste...原创 2018-05-09 10:43:45 · 734 阅读 · 0 评论 -
JAVA后端响应浏览器的三种方式(ajax)
一:通过PrintWriter.write();(一般响应)@RequestMapping("home")public void HomeData(HttpServletResponse response,@RequestParam(value="formDate", required=false) String formDate) throws IOException{...原创 2019-01-05 16:30:34 · 2879 阅读 · 0 评论