![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
狼与自由
这个作者很懒,什么都没留下…
展开
-
JAVA 死锁
java 死锁原创 2023-03-14 12:21:53 · 207 阅读 · 0 评论 -
大话DDD
TDD,DDD 都是弟弟原创 2023-01-06 15:47:45 · 535 阅读 · 0 评论 -
BIO和NIO
BIO代码import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class SocketSever { public static void main(String[] args) throws IOException { // ServerSocket serverSocket = new ServerSocket(9000);原创 2022-05-16 22:13:01 · 117 阅读 · 0 评论 -
RockedMq 角色
RockedMqnameservice负责管理各种信息,就像记事本producer消息发送者,与nameservice其中的一个节点建立长连接,定时获取topic信息,并且和相关topic master 建立长连接consumer消息接收者,与nameservice其中的一个节点建立长连接,定时获取topic信息,并且和相关topic master 和 slave 都建立长连接...原创 2021-05-15 11:13:16 · 88 阅读 · 0 评论 -
web应用的第一次请求优化策略
工作中接到这么一个需求:一个接口的请求响应时间不稳定,一般6-7秒,甚至有时候需要14秒的访问时间然后我去看了下该接口实际代码大概逻辑是这样的:1.A 用http 请求B2.B查询数据库3.数据库返回查询结果4.B将结果返回给A5.A查询数据库6.数据库返回结果第一次web请求的时候服务器A与B之间需要建立socket 连接服务器B与数据库D之间也要建立socket 连接服务器A与数据库C之间也要建立连接A服务器中的连接池由于没有JDBC线程所以需要创建B服务器中的连接池由于原创 2021-05-15 10:27:11 · 183 阅读 · 0 评论 -
StackOverflowError 出现原因与解决方案
StackOverflowError 是嵌套循环太多次导致超出了栈帧深度public class StackOverFlow { private static int count = 20000; private static int base = 1; public static void main(String[] args) { cycle(); System.out.println(count); } public sta原创 2021-03-18 22:04:08 · 2130 阅读 · 0 评论 -
线程状态图
线程状态图原创 2020-12-14 22:43:16 · 113 阅读 · 1 评论 -
java中的锁和升级过程
java中的锁大概有3中,重量级锁,轻量级锁和偏向锁现在来说一下他们的区别:什么是重量级锁?要搞清楚重量级锁,首先你要知道java 的内存模型。 jdk1.8 后 java使用的是HotSopt 内存模型。当你在启动一个线程的时候操作系统对应的会启动一个线程。 而当你在线程上加锁的时候,把这个加锁任务交个操作系统去做,这就是重量级锁。什么是轻量级锁?轻量级锁其实不是锁,用的是CAS -> compare and swap (比较并更新)当多个线程同时拿到 A=1,并且都要对做 A+1 操原创 2020-12-02 23:02:19 · 491 阅读 · 0 评论 -
cpu 图
原创 2020-12-02 22:33:43 · 146 阅读 · 0 评论 -
spring实现过程
先上图,稍后再解释原创 2020-11-23 21:48:51 · 179 阅读 · 0 评论 -
ThreadLocal弱引用及内存泄漏
先看下ThreadLocalMap的设计 private void set(ThreadLocal<?> key, Object value) { Entry[] tab = table; int len = tab.length; int i = key.threadLocalHashCode &...原创 2020-05-05 17:36:46 · 553 阅读 · 0 评论 -
ThreadLocal代码解析
ThreadLocal 是什么?先看下代码: static ThreadLocal<Person> tl = new ThreadLocal<>(); public static void main(String args[]){ new Thread(()->{ try { Time...原创 2020-05-05 16:56:56 · 665 阅读 · 0 评论 -
JAVA引用篇
java有几种引用?强软弱虚1.强引用String o = new String("123");只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。2.软引用// 假设内存最多20M,先创建一个10M的软引用 SoftReference<byte[]> m = new SoftRefere...原创 2020-05-05 16:03:02 · 121 阅读 · 0 评论 -
TreeTableModelAdapter
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are p...原创 2020-03-07 12:02:12 · 169 阅读 · 0 评论 -
TreeTableModel
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 12:01:41 · 311 阅读 · 0 评论 -
TreeTableExample0
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 12:01:06 · 99 阅读 · 0 评论 -
MergeSort
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 12:00:34 · 104 阅读 · 0 评论 -
JTreeTable
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are p...原创 2020-03-07 11:59:52 · 514 阅读 · 0 评论 -
FileSystemModel
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 11:58:54 · 553 阅读 · 0 评论 -
AbstractTreeTableModel
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 11:58:18 · 231 阅读 · 0 评论 -
AbstractCellEditor
package com.company;/* * %W% %E% * * Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are ...原创 2020-03-07 11:57:41 · 290 阅读 · 0 评论 -
Apollo安装与应用
安装教程:https://github.com/ctripcorp/apollo/wiki/Quick-Start有下载版和docker版下载后目录结构:下载后,执行sql(mysql数据库)修改demo.sh 里面的sql配置用gitbash 启动服务端./demo.sh start启动服务端后可以用 localhost:8070 访问客户端./demo.sh cli...原创 2019-11-20 11:39:09 · 703 阅读 · 0 评论 -
Eclipse导入项目后出现空心J 的解决方案
Eclipse导入项目后出现空心J 的解决方案原创 2019-07-27 16:10:02 · 4817 阅读 · 0 评论 -
百度收录的页面出现乱码的问题
最近SEO 的同事找到我们开发人员说,一些百度快照 收录的网址 点进去后出现乱码,要我们立刻修复这些问题。我照她的方式打开链接 如下图:我日,这不就是 返回的 json 格式吗。但是为什么返回的json 格式会被百度快照收录呢?我找到如下代码: dataMap sh原创 2015-11-19 09:42:52 · 1653 阅读 · 0 评论 -
java 微信搭建实例
java web 项目 使用微信 实例:1.准备条件一个微信开发者账号,如果你没有,请注册一个(如何注册,请百度)注册后 申请开发者 ,找到开发者中心。记录下面的AppID和 AppSecret如下图:2.创建一个web项目并添加struts应用3.加入config.properties 配置 AppID 等4.创建一个初始化方法init 实原创 2015-11-23 15:39:25 · 4313 阅读 · 0 评论 -
webSocket 简单实例
什么是webSocket?webSocket 是解决服务器端和客户端通信实时的技术。ajax也可以通信,但是他做不到实时。在webSocket之前我们想要实时效果,都是要通过轮询的方式,显然这样很浪费资源。webSocket 的强大在于,比起ajax 需要从客户端发起请求,webSocket的 服务端与客户端可以相互实时推送消息。如何使用webSocket?首先你得有一个支原创 2015-11-18 11:50:30 · 6316 阅读 · 2 评论 -
java精度问题
/**** 一般情况下 精度是保留2位小数,并且四舍五入。 但是,如果涉及金钱的话,也有一些其他要求,比如只要整数位,保留2位小数且不要四舍五入。**/ double s = 152.80d; System.out.println(Math.floor(s)); //返 回 152.0 DecimalFormat formater = new DecimalForma原创 2015-11-17 11:00:35 · 410 阅读 · 0 评论 -
git 如何导入项目
刚来一台新电脑需要导入项目1.安装git 地址:https://gitforwindows.org/2.安装git后,初始化到项目所在根目录 执行git init3.拉取远端代码git clone $URL基本操作git log – 查看历史记录git status --查看哪些文件有修改git add style/styless – 将新增...原创 2019-07-27 16:23:36 · 8413 阅读 · 1 评论 -
mysql 行锁为什么不能阻止幻读?
首先要知道什么是幻读。幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次没有看到的行。比如下图的3个session 中T1,T3,T5 查询的结果都不一样。T3 属于不可重复读。T5 就是幻读 因为T4刚插入了 一条数据我们把数据库调成REPEATABLE READ重复读在执行一次会出现如下由于 session A 把所有的行都加了写锁,所以 sessionB...原创 2019-08-05 15:16:24 · 453 阅读 · 0 评论 -
RabbitMq 安装
1.要安装RabbitMq 需要先安装 Erlang,以下是最新地址:https://www.erlang.org/downloads请下载最新版,避免出现版本过低导致RabbitMq 安装不上的情况下载后默认安装即可2....原创 2019-07-28 10:27:29 · 73 阅读 · 0 评论 -
java前后端分离跨域解决方案
1.由于浏览器的同源策略,前后端分离的时候会出现跨域的问题。java 的解决方案是:手写一个corsFilter 实现 Filter . 然后在 doFilter 方法中定义:--------------------------------------- 代码开始-----------------------------------------------------------------...原创 2019-07-28 10:29:10 · 9301 阅读 · 0 评论 -
docker 实践篇-redis
docker是什么我就不介绍了。这篇文章只会帮你搭建一个docker并且教你如何使用由于windows下的docker 由于版本的原因情况比较复杂,所以只演示CentOS 64位1.安装docker$sudo yum install docker2.安装完后查看版本docker version3.启动docker-CE$ sudo systemctl enable docker$...原创 2019-08-10 10:37:26 · 106 阅读 · 0 评论 -
面试必问 数组与链表的区别
最近面试老是遇到数组和链表。1.链表是什么?链表是一种一个元素通过指针指向另外一个元素来做元素之间的连接。一般分为A单向链表:单向链表包含两个域,一个是信息域,一个是tail指针域。也就是单向链表的节点被分成两部分,一部分是保存或显示关于节点的信息,第二部分存储下一个节点的地址,而最后一个节点则指向一个空值。B:双向链表比单项链表多一个指针域,有head指针域指向前一个节点,tail...原创 2019-08-24 17:13:47 · 375 阅读 · 0 评论 -
IM如何保证消息不乱序
对于聊天、直播互动等业务来说,消息的时序代表的是发送方的意见表述和接收方的语义逻辑理解,如果时序一致性不能保证,科能就i造成聊天语义不连贯,容易出现曲解和误会。对于点对点的聊天场景,时序一致性需要保证接收方的接收顺序和发送方的发出顺序一致;而对于群组聊天,时序一致性保证的是群里所有接收人看到的消息展现顺序都一样。从理论上来说,保持消息的时序一致性不难,理论上,我们想象的消息收发场景中,只有单一...原创 2019-10-05 10:06:25 · 2529 阅读 · 0 评论 -
Redis 计数器和限速器
INCR key将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在 64 位(bit)有符号数字表示之内。这是一个针对字符串的操作,因为 Redis 没有专用的整数类型,所以 key 内储存的字符串被解释为十进制 64 位有符号整...原创 2019-10-05 10:19:46 · 575 阅读 · 1 评论 -
java 验证码实现
功能:验证码,多种背景图,多种字体,相互变换。实现原理:你懂的。技术:ajax html struts 步骤:1.jsp 页面 包括 srcipt 和 html var ccUrl = '/invest/verifyCode.action'; $(function () { //点击图片更换验证码 $("#changeImag原创 2015-11-10 15:04:14 · 459 阅读 · 0 评论