
Java
文章平均质量分 90
秃头哥编程
这个作者很懒,什么都没留下…
展开
-
一些JDK自带的性能分析利器
有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位。这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手。对于此类问题,一般我们都有固定的分析流程。借助于JDK自带的一些分析工具,比如jstack、jmap、jstat一类的命令行工具,除此之外,还有jconsole、mat、jvisualvm这些图形界面分析工具。这篇文章基于JDK8,操作系统是macOS 12.0.11、一些命令行分析工具这些命令行分析工具都在jdk/bin目录下解压jdk/lib/tool.jar可以得原创 2022-03-20 12:21:27 · 1908 阅读 · 0 评论 -
利用Redis实现防止接口重复提交功能
在划水摸鱼之际,突然听到有的用户反映增加了多条一样的数据,这用户立马就不干了,让我们要马上修复,不然就要投诉我们。这下鱼也摸不了了,只能去看看发生了什么事情。据用户反映,当时网络有点卡,所以多点了几次提交,最后发现出现了十几条一样的数据。只能说现在的人都太心急了,连这几秒的时间都等不了,惯的。心里吐槽归吐槽,这问题还是要解决的,不然老板可不惯我。其实想想就知道为啥会这样,在网络延迟的时候,用户多次点击,最后这几次请求都发送到了服务器访问相关的接口,最后执行插入。既然知道了原因,该如何解决。当时我原创 2021-12-14 21:59:55 · 7329 阅读 · 10 评论 -
ReentrantLock源码学习
学习ReentrantLock之前,先了解一下可重入锁的概念。何为可重入锁,顾名思义,就是可重入的。真是听君一席话,胜听一席话啊。正经点,可重入锁就是能够支持同一个线程对资源的重复加锁。注意两个关键字:同一线程和重复。像synchronized关键字也实现了可重入。用synchronized修饰的方法,在进行递归调用时,执行线程在获取了锁之后仍然能够连续多次获得该锁,并不会出现阻塞的情况。再比如说,这篇文章要学习的ReentrantLock,也实现了可重入锁。并且ReentrantLock还支持公平原创 2021-11-26 17:03:24 · 635 阅读 · 0 评论 -
AQS源码学习
1、AQS介绍AQS全称AbstractQueuedSynchronizer,是一个同步器,用来构建锁或者其他同步组件的基础框架。内部主要使用一个volatile修饰的state变量和一个FIFO双向队列来实现的。 /** * Head of the wait queue, lazily initialized. Except for * initialization, it is modified only via method setHead. Note: * If原创 2021-11-22 22:32:43 · 703 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(4)
16.wait()和sleep()的区别?问题:在线程里 wait() 和 sleep() 的区别? 我的理解是执行 wait() 语句后,该线程仍是运行态,并且会占用CPU,但是执行 sleep()后,该线程则不会占用CPU,对吗? 为什么需要 sleep() 和 wait() 两条语句:他们底层是如何实现的?回答:线程 在wait 后,可以被另一个拥有相同 synchron...原创 2018-04-20 08:34:23 · 382 阅读 · 0 评论 -
Java之注解(Annotation)浅析
小弟还在新手阶段,所以只能起个“浅析”的名字,不求能带给大家多少进步,最大的作用就是自己总结一下,方便以后回顾,如果有人能从这篇文章中得到一点启示,那再好不过了。先推荐一篇关于注解的文章,讲的很详细https://blog.youkuaiyun.com/briblue/article/details/738240581.注解的概念讲什么之前不都得先讲概念吗,总得知道它是个什么东西。依据文档...原创 2018-04-26 20:15:18 · 469 阅读 · 0 评论 -
哥们,你真以为你会做这道JVM面试题?
前言有关Java虚拟机类加载机制相关的文章一搜一大把,我这里也不必再赘述一遍了。我这里捞出一道code题要各位大佬来把玩把玩,如果你一眼就看出了端倪,那么恭喜你,你可以下山了:public class StaticTest{ public static void main(String[] args) { staticFunction(); } s...转载 2019-06-22 18:18:07 · 537 阅读 · 0 评论 -
面试季:2019Java面试题汇总---基础版(附答案)
基于我个人对面试的认知和招聘经验,在此我总结一下Java开发者的基础知识掌握要求,及应聘者面试的需要准备的内容。首先,Java基础是每个面试官都会问到的,可能只是针对工作经验的多少,对问题追踪深度有所差异。基本对初中级开发者来说,基础理论和应用不可缺少。对中高级,面试官会基于基础理论问一些底层的原理甚至对源码的理解。一、JVM及工作原理JVM — Java Virtual Machine,即...转载 2019-07-13 11:24:04 · 992 阅读 · 0 评论 -
面试季:2019Java面试题汇总---升级版(附答案)
原文链接:https://mp.weixin.qq.com/s/g7vgk-5vTOG94WwpS-FJ_g前几天写了Java面试题汇总—基础版,总结了面试中常见的问题及答案,那我今天基于昨天的话题做一次升级,也就是说,求职者除了要学习了解哪些常见的基础面试题之外,还得准备些什么呢?对有工作经验的求职者来说,项目经历也是一个重点。这个我想大家应该还是比较清楚,你要知道,一般招聘有经验的人,不...转载 2019-07-13 11:43:02 · 2546 阅读 · 0 评论 -
JSP使用cookie实现记住账号密码的功能
所谓自动登录,就是下次打开的时候不用再次输入账号密码,一定程度上方便了用户,但也有它的缺点,就是可能泄露用户信息。HTTP的无状态性HTTP的无状态性,是指当客户端发请求给服务器的时候,服务器会响应客户端的请求,但当客户端再次发请求给服务器时,服务器并不知道这就是刚刚那个客户端。简单的说,就是服务器没有记忆,不会记住客户端。那这样我们要让服务器记住一些事情怎么办呢?比如要记住客户端输入...原创 2018-04-14 10:42:21 · 2269 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(3)
继续昨天的话题,越看到后面越吃力啊,感觉都理解一点,但却只是停留在表面,唉,虽然每篇文章只更新五个问题,但却要花我几个小时。坚持吧,坚持把每个问题都深入一点,自己也会收获更多。11.HashMap和Hashtable的区别?哪一个对于多线程应用程序更好?Hashtable是同步的,加了synchronized锁,而HashMap不是。没有加synchronized锁的对象,性能通...原创 2018-04-18 21:32:59 · 371 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(2)
上了一天的课,等下18:30还得上课,趁这个时间先更新一波。6.如何从一个多层嵌套循环中直接跳出?for (Type type : types) { for (Type t : types2) { if (some condition) { // Do something and break... ...原创 2018-04-17 21:24:17 · 390 阅读 · 0 评论 -
Java IO整理总结之字符流
原文链接http://www.codeliu.com/java/266.html 上一篇文章中讲了Java IO的字节流,这次同样的,先把整张图搬上来 字符流的类相对字节流来说,没有这么多,但同样重要。** 字符流** 一.Reader 1.Reader 构造方法Reader() 创建一个新的字符流 reader,其重要部分将同步其自身的 reader。...原创 2018-03-15 15:44:59 · 389 阅读 · 0 评论 -
Java IO之编码介绍
原文链接:http://www.codeliu.com/java/259.html在Java中如何进行文件的读写十分重要,Java IO流是必备的知识点。本文先不讲Java读写的API,先讲一讲关于编码的那些事。废话不多说,代码是最好的表达方式public class EncodeDemo { public static void main(String[] args) ...原创 2018-03-14 11:08:39 · 471 阅读 · 0 评论 -
Java之XML文件读取
XML简介可扩展标记语言,简称XML(Extensible Markup Language),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用...原创 2018-03-26 20:13:41 · 535 阅读 · 0 评论 -
JSP超链接传递参数的一个小问题!!!
只是一个小问题,但却是致命的!被坑了好多次了,记录一下,给自己提个醒。JSP的URL传参有好多种方式,但目前只发现这一种方式有问题,就是这种方式<a href = "xxx.jsp?id=xx"></a>是什么问题呢,就是id后面的=左右两边都不能有空格,不然参数传递不了,获取的是null!!!!被坑了好多次了,根据阿里巴巴的代码规范手册,=左右两边要有...原创 2018-04-14 12:53:18 · 977 阅读 · 0 评论 -
Java之网络编程初步探索
最近一直在啃Java,学下来一天,代码也敲了不少,但晚上回寝室的时候总感觉头晕,仔细想想,脑子一团浆糊,还是得整理一下,不然真的学过了就忘,虽然本人十分懒,但还是得强迫一下自己才能进步。 整个文章分为以下几个部分: 1.一些基本协议的介绍 2.InetAddress类介绍 3.URL网络编程 4.TCP网络编程 5.总结一些基本协议的介绍1.TCP协议TCP(Trans...原创 2018-04-11 09:32:50 · 331 阅读 · 0 评论 -
Java之垃圾收集器
今天看了Java的垃圾收集器,感觉挺好的,平时光编程,只听过Java有自动回收的机制,不过从来没有验证研究过,今天刚好记录一下学习情况,以便以后查看复习。还没看《深入理解Java虚拟机》,所以垃圾收集器的一些算法本文就不做深入探讨,等我过几天看了此书后再来更新了。本文就谈谈一些基本的东西。1. Java中如何定义一个“垃圾” 2. 什么是“垃圾”收集器 3. 如何收集“垃圾” ...原创 2018-04-11 09:43:03 · 370 阅读 · 0 评论 -
Java之JDBC简单总结
本文主要分以下几个部分:1. JDBC简介 2. JDBC中常用的类和接口 3. 如何实现数据库的连接 4. 元数据 5. 批处理JDBC简介JDBC(Java DataBase Connectivity)Java数据库连接,由Java编写的类和接口组成,同时也为开发人员提供了一组用于访问数据库的API,并支持SQL语句。利用JDBC可以将Java连接到不同的数据库比如...原创 2018-04-11 09:51:25 · 434 阅读 · 0 评论 -
Java编程的一些小技巧-----基础语法篇(1)
今天在github上面看到了一个很好的项目,是在Stack Overflow上面点赞数top100的关于Java的回答,看了一些,感觉十分实用,对于新手来说,能加深对Java的认识,同时也能让代码更简洁。所以想写下这系列的博文,每个回答我都会亲自用代码检验一下,下面一起来看看这些小技巧吧,绝不会让你失望。1.Java +=操作符实质看了这个是不是觉得这有啥难的,不就是一个加法吗?但还真不是...原创 2018-04-16 18:52:05 · 448 阅读 · 0 评论 -
Java IO整理总结之字节流
原文链接http://www.codeliu.com/java/261.html 写文章之前先上一张图吧,应该是迄今为止最全的IO流图,图太大了,可能看着有点费劲,里面有很多类我从来没用过,以后可能也不会用上。本人有些许强迫症,为了知识的全面性,就全部画上去了。 摘要:Java流分为字节流和字符流,字符流处理的是2个字节的单元比如字符串、字符数组;而字节流处理的是一个字节的单元比如字节...原创 2018-03-15 12:49:51 · 877 阅读 · 1 评论