- 博客(62)
- 资源 (5)
- 收藏
- 关注
原创 ThreadPoolExecutor配置使用详解附结果说明
线程池ThreadPoolExcutor的使用摘自阿里巴巴开发手册:【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下: 1)FixedThreadPool 和 SingleThreadPool: 允许的请...
2020-04-15 16:47:05 1097
原创 SpringBoot项目使用guava构建本地缓存
一、项目新建:新建Spring Starter Project会自动引入Spring框架所需的依赖,勾选Web、数据库等相关依赖,会将自动生成pom文件并下载所需jar包。注意:groupID:一般分两级,例如org.apache, ORG为所在区域类似的有com,apache为公司名artifactID:项目id,例如tomcatpackage name:为启动类所在的包...
2019-01-24 16:06:44 1475
原创 Spring集成rabbitMq配置文件解析
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springfra
2019-01-03 11:24:27 863
原创 事务相关问题:特性、读问题、隔离级别
事务的特性:事务有四大特性:* 原子性:强调事务的不可分割.* 一致性:事务的执行的前后,数据的完整性保持一致.* 隔离性:一个事务在执行的过程中,不应该受到其他事务的干扰.* 持久性:事务一旦结束,数据就持久到数据库中.如果不考虑事务的隔离性,引发一些安全性问题:两类问题:* 读问题:三类 * 脏读 :一个事务读到了另一个事务未...
2018-11-07 10:48:43 432
原创 浏览器输出中文乱码及表单存储中文乱码问题解决办法
//字节流 resp.setHeader("Content-Type", "text/html;charset=UTF-8"); resp.getOutputStream().write("王守义".getBytes("UTF-8")); //字符流 resp.setContentType("text/html;charset=UTF-8");//设置res...
2018-10-25 20:09:40 2573
原创 Servlet使用详解
本文主要介绍使用Servlet使用的具体流程及注意事项1、使用eclipse创建Dynamic Web Project,创建过程中勾选自动生成Web.xml文件2、导入需要使用到的jar包,要使用HttpServlet、HttpServletRequest、HttpServletResponse等类需要导入Servlet-api.jar包,将该jar拷贝到/WebContent/WEB-I...
2018-10-25 19:47:34 361
原创 Java中实现线程同步的几种常用方式
首先讲一下为什么要实现线程同步:java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用, 从而保证了该变量的唯一性和准确性。下面的例子展示了线程冲突导致的问题://新建Bank类,它包含了存钱、取钱、余额查询的相关方法public cla...
2018-10-17 21:34:13 1760
原创 HashMap/HashTable/ConcurrentHashMap的比较
之前找工作一直碰到这个题目,可以说是企业面试的必选题之一,网上有很多很好的博客,我就不自己写了,直接贴一下地址,以备后用https://www.cnblogs.com/zx-bob-123/p/8118074.htmlhttps://www.cnblogs.com/williamjie/p/9099141.html简单一点讲可以说如下几点:(1)HashMap是非线程安全的,Has...
2018-10-17 20:10:04 281
原创 Java几种常用线程池介绍
1、newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。这种类型的线程池特点是:工作线程的创建数量几乎没有限制(其实也有限制的,数目为Interger. MAX_VALUE), 这样可灵活的往线程池中添加线程。 如果长时间没有往线程池中提交任务,即如果工作线程空闲了指定的时间(默认为1分钟),则该工作线程...
2018-10-17 17:09:10 4241
原创 JAVA多线程实现的几种方式及简单示例
JAVA多线程的实现方式是JAVA基础的一个重点,看过好多次,但不经常用就容易忘记,今天做一个总结,算是把JAVA基础再夯实一下。Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。1、继承Th...
2018-10-10 21:43:27 3480
原创 ServeletContextListener的使用
Listener可以监听容器中某一执行动作,并根据其要求做出相应的响应。 常用的Web事件的监听接口如下:ServletContextListener:用于监听Web的启动及关闭ServletContextAttributeListener:用于监听ServletContext范围内属性的改变ServletRequestListener:用于监听用户请求ServletRequestAttrib...
2018-06-14 10:31:32 229
转载 海量数据处理问题
1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这10
2017-10-12 23:13:23 341
原创 JAVA JVM的分类及各类型的作用
jvm内存主要分为五个部分:方法区,java堆,java栈,程序计数器,本地方法栈。方法区(永久代,线程共享):存储被虚拟机加载的类信息,常量,静态常量,静态方法,运行时常量池等。java堆(线程共享):存放所有new出来的东西。java栈(线程私有方法级):为虚拟机执使用到的方法服务。程序计数器(线程私有):保证线程切换后能恢复到原来的位置。本地方法栈(线
2017-09-26 21:41:14 578
转载 数据库表查询的内连接、外连接、交叉连接实现方式
连接查询方式有:内连接、外连接(左连接、右连接、全连接)、交叉连接左连接和右连接的区别:左连接以左表为基准进行查询,左表数据会全部显示出来,右表如果和左表匹配的数据则显示相应字段的数据,如果不匹配,则显示为NULL;右连接刚好相反。全连接就是先以左表进行左外连接,然后以右表进行右外连接。说明:所谓的基准,就是以某张表的限制条件查询条件为准!具体如下:
2017-09-21 10:55:04 2413
原创 Hibernate对象生命周期
hibernate对象生命周期对象三种状态 hibernate对象三种状态:1、瞬时态transient new了一个对象,此时对象就是瞬时态 瞬时态对象和数据库记录没有对关系,和session没有关系。 2、持久态persistent 瞬时态对象执行save变化持久层 持久态对象和数据库记录存在对应关系,和session
2017-09-20 14:23:30 508
原创 一条cpu指令执行过程
计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。一般计算机
2017-09-12 23:07:58 9710
原创 编译系统组成及程序执行过程
一个高级的C语言程序,要能在机器上执行必须要转换为能够被机器读懂的低级机器语言指令。然后这些指令按照一种成为可执行目标程序的格式打包好,并以二进制磁盘文件形式存放起来,目标程序也成为可执行目标文件。把一个源程序文件翻译成一个可执行目标文件需要经过一个翻译过程,这个翻译过程分为四个阶段,分别是预处理器、编译器、汇编器、链接器。1预处理器(cpp),将程序投#include的内容读取插入到程序
2017-09-12 22:29:57 1051
原创 服务配置中心及负载均衡算法
1首先可以使用单一的硬件负载均衡设备或LVS Nginx等软件来进行路由和负载均衡调度。2但随着业务量的进一步增大,单点故障问题越来越严重,此时需要一个能够动态注册和获取服务信息的地方,来统一管理服务名称机器对应的服务器列表信息成为服务配置中心。(单点故障问题,一台服务器宕机可能任然被负载均衡设备分配到任务)3服务配置中心的任务是管理服务(服务名称及对应的服务器),服务器启动时自动上传其服
2017-09-06 22:16:57 566
原创 分布式系统组成:分布式缓存、存储、消息队列
分布式缓存:key-value存储加快了存取的速度。消息队列:将消息存储在队列中,不必等待回应,采用异步处理的方式,降低系统集成耦合度,提升了分布式系统的效率。垂直化搜索引擎:解决了分库分表或使用NoSQL导致无法多表关联的问题,又解决了like查询效率低下的问题。memcache:memcache维护一张巨大的HashTable用来存储缓存,数据读取速度为O(
2017-09-06 22:15:34 8693
原创 Redis数据库存储类型
Redis 数据类型由 youj 创建,最后一次修改 2015-09-24Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的
2017-08-26 22:46:02 467
原创 高并发处理中缓存、降级、限流技术
缓存技术 浏览器缓存是指当我们使用浏览器访问一些网站页面或者http服务时,根据服务端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者仅需要去服务端验证内容是否过期即可。这样的好处可以减少浏览器和服务端之间来回传输的数据量,节省带宽提升性能。访问流程如下:1、浏览器发起请求,首先到nginx,nginx根据url在nginx本地查找是否有文档缓存
2017-08-22 16:43:30 8828 1
原创 高并发处理中的隔离技术
1隔离技术隔离是指将系统或资源分割开,系统隔离是为了在系统发生故障时能限定传播范围和影响范围,即发生故障后不会出现滚雪球效应,从而保证只有出问题的服务不可用,其他服务还是可用的,主要有以下几种隔离线程隔离:进程隔离:读写隔离:动静隔离:将动态资源与静态资源分离爬虫隔离:爬虫流量大约是普通流量的五倍,因此通过隔离爬虫和正常流量减轻服
2017-08-22 16:22:15 362
原创 依赖注入的几种配置方法
"byIndex" class="cn.javass.spring.chapter3.HelloImpl3"> "0" value="Hello World!"/> "1" value="1"/> "byType" class="cn.javass.spring.chapter3.HelloImpl3"> "java.lang.String"
2017-08-22 16:11:06 610
原创 Spring框架中几个常用概念的理解
控制反转:即Inversion of Control,缩写为IoC,控制反转还有一个名字叫做依赖注入(Dependency Injection),就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。DI—Dependency Injection,即“依赖注入”:是组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并
2017-08-22 15:46:54 1032
原创 Shiro密码加密验证服务
HashedCredentialsMatcher实现密码验证服务Shiro提供了CredentialsMatcher的散列实现HashedCredentialsMatcher,和之前的PasswordMatcher不同的是,它只用于密码验证,且可以提供自己的盐,而不是随机生成盐,且生成密码散列值的算法需要自己写,因为能提供自己的盐。 1、生成密码散列值此处我们使用MD5算法,“密码
2017-08-22 10:59:02 645
原创 基于Token的身份验证
使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:客户端使用用户名跟密码请求登录服务端收到请求,去验证用户名与密码验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里客户端每次向服务端请求资源的时候
2017-08-21 10:12:52 227
原创 Maven项目转换为javaWEB项目
1右击项目选择项目属性properties2点击project facets,在右侧选中Dynamic Web Modules 打勾,并选择相应的版本,点击Apply3确定后即可将 项目转为web项目
2017-08-21 09:59:08 2631
原创 Linux系统日期时间设定方法及与Internet时间同步的设置
调整linux系统时间和时区与Internet时间同步一、修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# vi /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=falseARC=false二、配置新的时间日期设定:# da
2017-08-15 11:46:09 468
转载 SVN更新或提交时出现冲突该如何解决
解决版本冲突的命令。在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了。不管你个人喜欢git还是svn还是其他,但
2017-08-11 17:55:17 77013 4
原创 SpringMVC/SpringBoot使用easypoi实现Excel文件导入导出功能实现
/** * @author Meixi http://blog.csdn.net/liujianwd */ 首先讲导出功能第一步:添加esaypoi依赖,在pom.xml中添加 org.jeecg easypoi-base 2.3.1 org.jeecg easypoi-web 2.3.1
2017-08-11 15:15:30 16525 2
原创 URL中传入Data参数的实现方法
如下面这个接口,接口的 参数是一个Date对象@RequestMapping(/checkTime)public void checkTime( Date date){};但在url中我们无法直接传入Date对象,此时可以在接口参数前加@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")注解,此时接口变为public void checkT
2017-08-09 15:42:10 4712
原创 SVN各种符号含义及与资源库同步后的各项操作
黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人的修改。要解决冲突,如果你确认你的修改是无效的,则用TSVN还原你的修改就行了;如果认为你的修改是正确的,别人的提交是无效的,那么用TSVN先标记为“解决冲突”,然后就可以提交了;如果你认
2017-08-09 11:52:17 2942
原创 导入SVN项目后jar包不可读问题:***.jar is not a file or a zip
解决方案:1 删除对应jar包所在的目录及目录下的全部jar包2按Alt+F5重建一下Maven项目,将自动下载依赖的jar包若通过上面两步还不能解决问题,则需要重启eclipse工具
2017-08-09 11:46:49 1735
原创 Maven项目jar包缺失问题解决办法
有时候因为一些原因导致maven项目依赖的jar包丢失或不可用,可以通过Alt+F5,重新build一下Maven项目,会自动下载需要的jar包
2017-08-09 11:40:43 12507
原创 将SpringBoot Maven项目发布到远程tomcat服务器步骤及相关问题解决
今天在更新更新tomcat服务器上的项目代码时遇到了一个非常令人郁闷的问题,就是跟新war包后,重新启动tomcat,tomcat没有像第一次那样自动解压war包,后来发现是自己配置出现问题,在pom.xml中需要设置jRE版本时不能太高,太高会导致tomcat无法解析,这里总结了一下在远程tomcat服务器发布项目的详细步骤:1 导出项目war包。如果不是maven项目的话可以通过右击项目名
2017-08-08 13:51:01 1430
原创 SpringBoot向数据库中插入英文没问题,中文报错乱码问题
今天调试接口的时候发现向数据库中添加中文字段时会抛出异常,检查了一下发现是数据库创建时编码设置出现了问题,当向数据库插入中文出现乱码、问号或者报错时检查步骤应有如下几步:1首先检查一下看看插入英文时是否出现异常,确保不是因为程序出问题导致的错误。2检查项目的的编码方式看是否设置为UTF-8,默认使用的latern1编码方式不支持中文。3在配置数据库链接的文件applicatio
2017-08-07 14:21:30 1465
原创 SVN提交时出现文件remains in conflict错误
在工程上进行提交(Commit)操作时,报以下错误:svn: Aborting commit: 'E:\myeclipse\workplaces\……“ remains in conflict原因分析:之前我将VoiceRequestAction.java文件删除,此文件在svn上就不存在了,所以在进行提交操作时会冲突。此问题一般都是由于删除了某些文件引起的。解决方法:
2017-08-04 15:17:13 10760
原创 SpringBoot Web项目的参数绑定:URL传参及默认参数设置
一、@RequestParam这个注解用来绑定单个请求数据,既可以是url中的参数,也可以是表单提交的参数和上传的文件它有三个属性,value用于设置参数名,defaultValue用于对参数设置默认值,required为true时,如果参数为空,会报错好,下面展示具体例子:首先是vm:?12h1>param1:${param1}
2017-08-04 09:08:24 38796
卫星通信信道matlab仿真代码
2023-07-21
LTE技术介绍及仿真代码资料包
2023-07-21
SPMA技术最全资料包,含论文及matlab代码.zip
2023-07-21
最全D2D项目资源包,包含中英论文,链路仿真及系统仿真代码
2023-07-21
CSMA协议matlab仿真程序
2023-07-21
Aloha协议matblb仿真文件
2023-07-21
Spring Cloud微服务后台管理系统
2019-10-27
基于java NIO的简单聊天软件示例
2019-10-27
代码大全2高清pdf扫描件
2018-09-05
JAVA编程思想第四版附源码
2018-09-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人