所有文章
-
【原】ArrayList初始大小、上限、扩容机制图文详解
JAVA开发在使用arraylist的时候,从来没有手动给它指定过大小,每次使用都是直接newarraylist(),但是那么它的默认大小是多少呢?超出这个默认大小之后,它又是如何扩容的呢?扩容的前提条件是什么呢?上限又是多少呢?想弄清楚这个问题,最简单有效的方式就是看源码,今天就来给大家看一下它的扩容机制。本文中以jdk1.8.0_121为例,以截取代码片段的方式来逐一给大家分析:默认容量有一个DEFAULT_CAPACITY变量,大小为10/***Defaultinitialcapacity.*/privatestaticfinalintDEFAULT_C...
不忘初心 2019-03-17 围观(2056) 评论(0) 点赞(23) 【JAVA开发】
阅读更多 -
【原】Arrays.copyOf和System.arraycopy的关系和区别
JAVA开发实现一个复制数组的功能,java为我们提供了两种API,Arrays.copyOf和System.arraycopy,那么这二者有什么区别呢?又有着什么样的联系呢?老规矩,我们直接看源码:/***Copiesthespecifiedarray,truncatingorpaddingwithnulls(ifnecessary)*sothecopyhasthespecifiedlength.Forallindicesthatare*validinboththeoriginalarrayandthecopy,thetwoarrayswill*contai...
不忘初心 2019-03-17 围观(288) 评论(0) 点赞(11) 【JAVA开发】
阅读更多 -
【原】Srping事务的七种传播特性
JAVA开发上一篇文章中见过了事务的特性以及隔离级别,今天来说一下事务的传播性,事务是一个好东西,但是并不是每一个方法都应该加上事务,在事务的隔离级别中提到过一点:越是严格,耗费的性能越大,那么如果每个方法都加了事务,而不论是否会涉及到数据的修改,那么这就属于事务的滥用了,没起到应有的作用不说,反而还会一点点的拖慢你的系统。为了应对这一问题,“事务的传播性”这一概念又横空出世了,打个最简单的比方:现在的项目中,大多都分层,controller层+service层+dao层,而业务一般都堆积在service层,要么是service调service,要么是serv...
不忘初心 2019-03-15 围观(1133) 评论(0) 点赞(11) 【JAVA开发】
阅读更多 -
【原】事务的特性和隔离级别
数据库“事务”,一个经常能听到的概念,它到底是个什么东西呢?数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,事务的正确执行,使得数据从一种状态转换到另外一种状态。它具有四大特性:A(原子性):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节;张三给李四转账,必须是张三扣钱、李四加钱这两个环节一起完成,这两个动作必须是原子化的,要么都成功,要么都失败C(一致性):事务开始前和结束后,数据库的完整性约束没有被破坏;还是上面转账的例子,双方必须保持一致,不能说张三的钱被扣了,但是李四的钱没有加上,这样就会导致数据错乱...
不忘初心 2019-03-14 围观(570) 评论(0) 点赞(12) 【数据库】
阅读更多 -
【原】ERR_ABORTED 503 (Service Temporarily Unavailable)
服务器最近在nginx中加了访问频率限制,结果却导致页面加载不完整了,打开console一看,有很多静态资源类型被拦截了,http状态码直接是503,js被拦截导致分页插件加载不上,css被拦截导致页面样式错乱细想之下,最近没对服务器做过什么改动,只对nginx加了一些限制访问频率的配置,莫非是这个影响到了?查阅资料后发现,还真的是这个影响到了。。。注意:此配置虽然好用,但是大家一定要慎用,因为发送js请求和css请求也算是一个request,所以配置的时候一定要找到适中的数量,我在第一次做配置的时候,就吃了一个亏,我直接写了一个20/s,但是打开一个页...
不忘初心 2019-03-13 围观(3365) 评论(0) 点赞(11) 【服务器】
阅读更多 -
【原】Nginx限制IP访问频率,防止暴力攻击
服务器在我们访问一个网页的时候,总会有若干个http请求发出,比如:阅读量、点赞数,这些一般都是通过ajax动态变更的,如果接口没做校验处理,那么很容易就会被人利用来攻击网站。以往不太会用nginx的时候,用Java写过一个限制IP访问的处理器,可以根据IP来限制每个接口的访问频率,虽然写的很戳,但是也能勉强达到效果(但还是有bug):限制每一个IP对同一个接口的疯狂调用,这次我们来用nginx处理这个问题。主要用到了nginx的ngx_http_limit_conn_module和ngx_http_limit_req_module两个配置:ngx_ht...
不忘初心 2019-03-13 围观(3377) 评论(0) 点赞(11) 【服务器】
阅读更多 -
【原】MySQL不同版本创建用户语句差异
数据库MySQL在不同版本中,创建用户的语法是有区别的,在低版本中,创建用户和授权可以一起执行,但是在高版本中则不行,创建用户和授权需要分开。没有在每个版本中都一一作比对,现在就拿5.7和8.0做一下比较,给大家看一下语法上的细微差异。mysql5.7中的语法:grantselect,insert,update,delete,create,drop,alter,executeonfeiqq.*to'feiqq'@'%'identifiedby'123456';grantselect,insert,update,delete,create,drop,alt...
不忘初心 2019-03-13 围观(1005) 评论(0) 点赞(11) 【数据库】
阅读更多 -
【原】发送http请求,报错:Cannot write output after reading input.
JAVA开发最近对接一个第三方,有专门的系统来对接,我们直接对接内部的系统即可,但是调用接口时,发现一直报错:Cannot write output after reading input,大概意思是不能在读取了输入流之后去写输出流。起初还以为是对接第三方报错了,仔细检查一番,竟然是同事的代码写的有问题,开启了两次输出流。错误信息如下:2019-03-1211:51:03,717ERRORTongDunManager:[ApiInvoker]invokethrowexception,details:java.net.ProtocolException:Cann...
不忘初心 2019-03-12 围观(1904) 评论(0) 点赞(11) 【JAVA开发】
阅读更多 -
【原】Freemarker字符串转义处理,防止引号冲突
JAVA开发freemarker一直是我在模板引擎中的首选,网站在引入百度分享的时候,碰见了一个字符串转义的问题,具体表现为:后端传过来的字符串中是带有引号的,而我的变量接受的时候,由于是字符串类型,所以我也写了引号,此时,如果后端没有做转义,直接在js中解析出来就会有问题。 这个问题,并不是我第一次碰见,之前也碰见过一次,直接用一个js变量来接收后端返回的值,由于当时用的不是freemarker模板引擎,所以不是很熟悉语法,最后不得已用了一种比较蠢的方法来处理:将文本提前解析到一个pre标签中,再拿js去获取。 两次的问题都是同一个原因,特意来写一篇文章记录...
不忘初心 2019-03-10 围观(7203) 评论(0) 点赞(23) 【JAVA开发】
阅读更多 -
【原】UMeditor 1.2.3版本不能更换字体和修改字体大小
WEB前端UEditor是百度的一款富文本编辑器,功能比较丰富,所以导致它的体积也相对大很多,在有些门户网站中,并不需要这么多的功能,百度则针对性的抽出了一Mini款UMeditor(简称:UM),删除了很多功能,比如:代码块,只有简单的文字功能。 截止到我写这篇文章,官网最新已经更新到了1.2.3版本(貌似官方已经很长时间没有更新过了) 最近使用的时候碰到了一个问题:不能更换字体和修改字体大小,起初也以为是自己js哪里写错了,或者又是像上次UEditor和Bootstrap冲突导致图片缩放失败类似的问题。 一番查阅资料下来,发现这次竟然还真的是百度自身的...
不忘初心 2019-03-10 围观(1851) 评论(0) 点赞(23) 【WEB前端】
阅读更多 -
【原】MySQL按照传入参数的顺序返回结果
数据库在做一个自动推荐系统的时候,碰到了一个问题,我传入想做关联的tag,但是实际返回结果却不大对,一番追查下来,发现竟然是mysql返回结果集的时候,没有按照我传入参数的顺序,而是按照了ID从小到大的排列顺序,导致查询数据的时候,关联度最高的标签没有放在最前面。 查阅资料发现,mysql是允许指定这个返回参数顺序的,只不过要多加一个order by field (id, ....),现在用我的代码给大家演示一下这个问题。 mapper.xml映射文件:<select id="gets" resultMap="resultMap"> ...
不忘初心 2019-03-10 围观(1140) 评论(0) 点赞(11) 【数据库】
阅读更多 -
【原】交叉死锁典型案例分析图文教程
JAVA开发关于锁(Lock),大家并不陌生,不管是工作中,还是在学校中,都能接触得到,它的诞生是具有划时代意义的,但同时它也是一把双刃剑,用得好可以提升程序的安全性,用得不好,那对不起,反而还会有一些暗坑在等着你。耳熟能详的暗坑大概就是死锁,也是今天要说的主要知识点,死锁产生的核心原因就是线程之间互相等待,但是一直又等不到。死锁的表现方式有很多种:交叉锁:一根独木桥,两个人分别从两端走上来,如果谁都不让谁先过,最后导致的结果就是两个人都一直卡在桥上,这个现象在程序中就称之为“死锁”;内存不够:两个线程一起执行某个任务,分别获取了20M内存,但是执行任务最小需...
不忘初心 2019-03-08 围观(1015) 评论(0) 点赞(31) 【JAVA开发】
阅读更多 -
【原】UEditor和Bootstrap冲突导致图片缩放失败
WEB前端UEditor是百度的一款开源工具,称之为:所见即所得的富文本编辑器,有图片、文字、视频、代码块等等功能集成,可以满足大部分网站的需求。之前一直用这个,并没有碰到什么问题,但是最近的项目中,前端框架在选型的时候是bootstrap,然后再引入Ueditor的时候,就出现了一个问题:图片缩放不受控制,具体现象表现为,我想放大图片,将鼠标按住往右拖动,图片反而还向左缩小了,然后我鼠标继续向左的时候,图片变得更小了。没有截到动态图,用一些标注来给大家看一下问题所在:右下角红色框框是我拖动鼠标最终的位置,按理说此时图片应该也被放大到这个位置才对(红...
不忘初心 2019-03-08 围观(729) 评论(0) 点赞(11) 【WEB前端】
阅读更多 -
【原】mysql存储过程使用实例图文教程
JAVA开发之前有讲过使用mybatis调用存储过程,现在来说一下如何在sql中调用,单纯的通过sql执行,不借助任何执行数据库客户端工具。在navicat中执行很简单,直接点一下按钮:只要参数没有漏,基本上就可以调用存储过程了,而且这种方式,发生漏参数的概率很小,除非你故意不写。现在来看一下,如果不使用navicat,该如何调用存储过程呢?--in类型的入参set@v_id=7;set@v_type=1;set@v_qsrq='2019-02-0100:00:00';set@v_zzrq='2019-02-2823:59:59'...
不忘初心 2019-03-05 围观(939) 评论(0) 点赞(22) 【JAVA开发】
阅读更多 -
【原】nginx配置ssl证书之后访问不了80端口
服务器nginx在配置了https之后,竟然访问不了80端口了,也就是说可以通过https访问,不能通过http访问了。具体现象是访问错乱:如果你的nginx只映射了一个域名,现象就是:访问到了nginx的index.html;如果你的nginx映射了很多个域名,现象就是:访问到了另外的网站首页;我的nginx由于配置了多个域名,所以就出现了第二种现象,我访问积微成著的时候,就跳到了另外的一个网站[root@VM_41_196_centosnginx]#cdconf.d[root@VM_41_196_centosconf.d]#lltotal12-rw-...
不忘初心 2019-03-05 围观(209) 评论(0) 点赞(12) 【服务器】
阅读更多
标签云
猜你喜欢
- IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
- IntelliJ IDEA 2019.3利用补丁永久破解激活教程
- IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
- Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
- IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
- 分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
- ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
- 如何激活idea2022.1及以上版本中的插件(亲测可用)
- 【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
- IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
站点信息
- 网站程序:spring + freemarker
- 主题模板:《今夕何夕》
- 文章统计:篇文章
- 标签管理:标签云
- 微信公众号:扫描二维码,关注我们