java
文章平均质量分 88
JoeKerouac
前阿里程序员
展开
-
由JDK bug引发的线上OOM
最近生产环境的一个应用忽然发生了OOM,还好是业务低峰期,没有导致什么严重问题,下面记录下本次排查的过程;原创 2023-08-25 09:35:44 · 219 阅读 · 0 评论 -
MySQL驱动中关于时间的坑
什么,我的日期存到数据库怎么慢了14个小时?!!!原创 2022-02-26 17:02:27 · 682 阅读 · 0 评论 -
JDK17都出来了,你还在用JDK8?
JDK17的一些新特性本文旨在介绍一些JDK17的新特性,同时限于篇幅,本文仅列举其中一些差异,而不是全部差异;PS: JDK17是Java的一个LTS版本(长期支持版本),可以放心迁移过来;instanceofJDK8中的语法:Object o = something;if (o instanceof String) { String str = (String)o; // do something}在JDK17中我们可以这样写:Object原创 2022-01-08 11:13:40 · 1855 阅读 · 0 评论 -
一文读懂rabbitMQ和rocketMQ的消息可靠性机制
一文读懂rabbitMQ和rocketMQ的消息可靠性机制在我们大多数场景中,MQ消息都要保证可靠性,消息可靠性应该是我们最关心的一个细节,没有之一;而各个MQ实现的可靠性保证都不同,同时实现机制也不同,只有知道各个MQ实现是如何保证消息可靠性的,才能在使用的过程中不丢消息;rabbitMQ对于rabbitMQ,消息可靠性是从以下几点来保证的:消息持久化; 发布者确认;消费者确认;消息持久化对于rabbitMQ,默认情况下消息是不持久化的,这是为了性能考虑,原创 2021-11-10 15:43:40 · 2614 阅读 · 0 评论 -
通过局域网中间人攻击学网络第五篇
通过局域网中间人攻击学网络 续续 HTTPS篇2抓包环境本章开始分析握手包,分析过程中会涉及抓包,为了尽可能方便,后续都采用对百度的抓包,工具;wireshark,使用过滤条件(不过滤的话包太多不好找):tls.handshake.extensions_server_name == ss2.baidu.comRecord数据结构HTTPS中数据都是通过Record层进行包装的,Record的数据结构如下:public class Record <T>{ /*.原创 2020-12-30 16:21:42 · 426 阅读 · 0 评论 -
通过局域网中间人攻击学网络第四篇
通过局域网中间人攻击学网络第四篇HTTPS篇1Abstract最近因为个人原因停更有段时间,后边会慢慢恢复更新;前三篇基本把局域网中间人攻击的原理介绍了一下,根据前三篇我们可以做一个简易的工具来实现局域网攻击了,但是攻击过程中你可能会发现一个问题,当前大多数 网站都已经采用HTTPS链接了,这样会导致你抓到的数据都是加密过的,没办法查看、修改,那搞中间人攻击干啥呢?抓包抓了个寂寞吗?要解决这个问题,我们首先 要清楚HTTPS是什么;什么是HTTPS,HTTPS解决了什么问题?要了原创 2020-11-13 21:33:18 · 379 阅读 · 0 评论 -
通过局域网中间人攻击学网络
通过局域网中间人攻击学网络序言声明该文章为系列连载文章,由于作者目前工作较忙(懒),所以预期一周更新一篇; 作者目前主要从事Java开发,所以后续涉及部分C代码的,可能会比较菜,不符合各种规范,请见谅; 本系列文章仅供学习使用,请勿用作非法途径; 想要深入交流或者吐槽作者的,可以加作者微信,作者微信:qiao1213812243;学习本系列文章前我需要有什么样的基础简单的C...原创 2020-03-21 19:43:38 · 760 阅读 · 0 评论 -
java基础类型的装箱拆箱
java基础类型的装箱拆箱通过本文能了解哪些知识?为什么基本数据类型拆箱有可能会报空指针异常? 基本数据类型的装箱与拆箱操作是如何实现的?自动拆箱首先我们有如下代码:public class Test{ static { Integer integer = new Integer(1234); int i = integer; ...原创 2019-11-12 20:01:17 · 190 阅读 · 0 评论 -
异常警告之-ConcurrentModificationException
异常分析相信写过一些Java代码的人都遇到过这个异常,一般都是由以下代码引起的:import java.util.List;import java.util.ArrayList;public class Test{ public static void main(String[] args){ List<String> list = new Arra...原创 2019-11-12 19:53:38 · 401 阅读 · 0 评论 -
网络协议之HTTP-CORS
什么是CORSCORS是通常所说跨域请求的英文简称,全称Cross-Origin Resource Sharing。浏览器出于安全考虑会禁止使用跨域请求,而使用CORS技术可以突破 该限制。注意:浏览器限制仅限于脚本请求不能跨域,例如在js中用ajax请求,如果跨域会被拦截,但是对于标签是可以跨域的,例如使用img标签来跨域请求一个 图片资源,用script标签来跨域请求一个脚本资源。JS...原创 2019-11-12 19:45:42 · 393 阅读 · 1 评论 -
由一个死循环引出的一系列问题及思考
一次粗心引起的死循环场景一次系统升级中,需要修改一个需求,而这个需求需要修改一个for循环的次数,原循环如下:for(byte i = 0 ; i 30 ; i++){ //do something}而修改后如下:for(byte i = 0 ; i 300 ; i++){ //do something原创 2018-02-05 16:45:30 · 329 阅读 · 0 评论 -
如何打造一个百万用户的IM后台(1)
如何打造一个百万用户的IM后台(1)聊天应该是当代人使用频率最高的软件,相信很多java使用者在初学java中socket部分时也会自己写一个聊天软件服务器。那么,如何才能写一个能够提供百万并发能力的IM后台呢?1问题分析要想写一个百万并发的IM后台,首先得知道将要面临什么样的问题,首先是IO模型,传统的BIO模型是肯定不行的,那么就只能使用NI原创 2018-02-05 16:49:25 · 5369 阅读 · 0 评论 -
多线程概述
多线程概述由于CPU核心越来越多,现代编程中总少不了多线程,而多线程编程在java中是比较容易的,这也算是java的一大优势。多线程编程,总避不开一个话题,那就是线程安全。那么,如何保证线程安全呢?可能很多人第一时间想到的就是锁,是的,锁是一个很好的解决方案,那么有没有更好的方案呢?答案也是有的。那么,不用锁如何做到线程安全呢?首先我们需要了解,为什么会有线原创 2018-02-05 16:50:44 · 285 阅读 · 0 评论 -
高效搜索数据结构之红黑树简介
之前介绍java中的HashMap时有说到过红黑树,今天就来讲讲红黑树。首先学习红黑树之前要了解二叉树以二叉搜索树。二叉树是一种基本的数据结构,本身结构也很简单,结构如下图所示:图(1)上图所示就是一个简单的二叉树,每个节点都最多有两个子节点(可以为空),每个节点最多有一个父节点(根节点没有父节点),其中1就是根节点。而二叉搜索树就是原创 2018-02-05 16:54:51 · 272 阅读 · 0 评论