自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 全网讲解最透彻:高性能网络应用框架Netty,仅此一篇

BIO 这种线程模型适用于 socket 连接不是很多的场景;但是现在的互联网场景,往往需要服务器能够支撑十万甚至百万连接,而创建十万甚至上百万个线程显然并不现实,所以BIO 线程模型无法解决百万连接的问题。如果仔细观察,你会发现互联网场景中,虽然连接多,但是每个连接上的请求并不频繁,所以线程大部分时间都在等待 I/O 就绪。也就是说线程大部分时间都阻塞在那里,这完全是浪费,如果我们能够解决这个问题,那就不需要这么多线程了。顺着这个思路,我们可以将线程模型优化为下图这个样子,可以用一个线程来处理多个连接,

2022-05-10 15:10:48 223

原创 你是否还在重复造轮子?分享这3个常用的开源工具库,提高生产效率

获取硬件信息对象HardwareAbstractionLayer ://系统信息SystemInfo si = new SystemInfo();//操作系统信息OperatingSystem os = si.getOperatingSystem();//硬件信息HardwareAbstractionLayer hal = si.getHardware();有了代表硬件信息的对象HardwareAbstractionLayer 之后,我们就可以获取硬件相关的信息了!下面简单演示一下获取内存和

2022-05-10 15:08:29 447

原创 从Mybatis源码到Spring动态数据源底层原理分析系列一、Mybatis初始化源码浅析

private Environment environment;private Map<String, MappedStatement> mappedStatements;}class Environment {private TransactionFactory transactionFactory;private DataSource dataSource;}复制代码非常清晰的映射关系, 一个环境里面包含了数据源以及事务工厂, 如果不是很理解事务工厂的用处, 可以先不用着急,

2022-05-10 15:04:57 251

原创 今天面了个腾讯拿25K出来的,让我见识到了开发基础的天花板

果然人有能力就是不一样,在哪 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 里都发光!!!在和他彻夜聊过后,整理出来一份他开发生涯整理的一些知识及技术分享,希望能对你们有一点帮助!内容有以下17个板块:Java基础、Java集合、异常&反射、IO&NIO、多线程、JVM、Linux、MySql、Spring、Spring Cloud、Mybatis、Nginx、Redis、Dubbo、Kafka、、S

2022-05-10 15:03:23 915

原创 五分钟带你玩转prometheus(六)监控nginx

nginx:链接:https://pan.baidu.com/s/1OBI1NmiMKhtLG4lYxKJyWg提取码:2shunginx-module-vts-master:链接:https://pan.baidu.com/s/1gOdYjNwHk9eEfIKcVdrE4A提取码:m0z9nginx-vts-exporter链接:https://pan.baidu.com/s/1Q5E1E6Z6FSn8fTP43xBIUA提取码:bez4nginx-vts-stats_rev2 (1)(

2022-05-10 14:59:56 1466

原创 五分钟学Java:什么是 NullPointerException

第二行代码中,new 关键字创建了一个 Integer 类型的对象,并将变量 num 指向该对象。当我们声明了一个变量,却没有将该变量指向任何创建的对象,然后就使用它的时候,NullPointerException 就发生了。大多数情况下,编译器会发现这个问题,并且提醒我们“xxxx may not have been initialized”。假如有这样一段代码:public void doSomething(SomeObject obj) {//do something to obj}在这种

2022-05-10 14:58:14 186

原创 习题9-5 通讯录排序 (20分)

[回复 :“编程交流群”” 进C/C++/Java编程题交流、问题解答群,和大佬一起进步](()[](()习题9-5 通讯录排序输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数.

2022-05-10 14:54:11 826

原创 为什么一定要学习设计模式

//单位主键if(jsonObj.getString(“organization_id”)!= null && (!jsonObj.getString (“organization_id”).equals(“”)))curForm.setOrganization_id(jsonObj.getLong(“organization_id”));//考试主键if(jsonObj.getString(“id”)!= null && (!jsonObj.getString(“i

2022-05-10 14:50:45 208

原创 一篇文章搞懂Spring AOP的历程

前面我们说过在AOP设计理念中,我们用Aspect来声明切面,每个Aspect可以包含多个Pointcut和Advice。「在Spring AOP一代中,Aspect对应的实现为Advisor」。即Advisor是Pointcut和Advice的容器,但是一个Advisor只能包含一个Pointcut和Advice因为Advice的实现方式有两类,因此对应的Advisor也可以分为两类「在Spring中将Advice织入到Jointpoint的过程是通过动态代理来实现的」。当然织入的方式有很多种,不

2022-05-10 14:46:12 258

原创 《零基础》MySQL 排序(十八)

在命令提示符中使用 ORDER BY 子句以下将在 SQL SELECT 语句中使用 ORDER BY 子句来读取MySQL 数据表 runoob_tbl 中的数据:实例尝试以下实例,结果将按升序及降序排列。SQL 排序mysql> use RUNOOB; Database changed mysql> SELECT * from runoob_tbl ORDER BY submission_date ASC; ±----------±--------------±--------

2022-05-09 16:19:02 380

原创 “搏一搏,单车变摩托

自行车自行车,不会自行怎么配叫自行车?这个项目得以诞生的很大一部分原因或要归功于天气。某一天,天空不作美,飘着雨,骑着车的稚晖君在转弯的时候因为一个“漂移”,一不小心摔了一跤。在养伤的过程中,稚晖君自我调侃道,“作为一个掌握了技术密码,并且永远头铁的野生钢铁侠,我表示这事就不能这么过去了。”同时,受 2019 年清华大学依托精密仪器系的类脑计算研究中心施路平教授团队发布的类脑计算芯片“天机芯”让无人自行车落地的启发,在天空放晴之后,素有“科技教徒”、“野生钢铁侠”之称的稚晖君决定要拯救一下这个糟.

2022-05-09 16:17:04 199

原创 ZooKeeper集群Leader选举理论解读(初次选举和故障恢复)

ZooKeeper 参考 Paxos算法,专门设计了一种支持崩溃恢复的原子广播协议 Zab(Zookeeper Atomic Broadcast),Leader选举是其核心思想,也是保证ZooKeeper数据一致性的关键所在。[](()二、基本概念[](()1、服务器角色一个正常运行的zk集群中,一定存在两种服务器角色 Leader 和 Follower,Leader负责事务请求处理协调和数据同步以保证数据顺序最终一致性;Follower具有投票,只读请求可以自己处理,但是事务请求需要转发给Lea

2022-05-09 16:15:06 389

原创 Tomcat对Servlet规范的Filter及Listener实现

StandardWrapperValve的invoke就三步:创建Servlet实例给当前请求创建一个Filter链调用Filter链[](()为何要给每个请求创建Filter链每个请求的请求路径不同,而Filter都有相应路径映射,因此不是所有Filter都需要处理当前请求,要根据请求路径选择特定的一些Filter。[](()为何没调用Servlet#serviceFilter链的最后一个Filter会负责调用Servlet。[](()Filter管理==========

2022-05-09 16:10:54 199

原创 thingsboard-gateway从thingsboard获取拓展配置源码分析

isRemoteConfiguration = configuration.getRemoteConfiguration();if (isRemoteConfiguration) {String label = configuration.getLabel();log.info(“[{}] Initializing gateway”, configuration.getLabel());TenantServiceRegistry tenantServiceRegistry = new TenantS

2022-05-09 16:08:27 322

原创 SSM框架整合+简单案例实现

[](()4.web.xml<?xml version="1.0" encoding="UTF-8"?>NewSSMProjectindex.jspcontextConfigLocationclasspath:applicationContext.xmlorg.springframework.web.context.ContextLoaderListenerspringDispatcherServletorg.springframework.web.serv

2022-05-09 16:05:59 124

原创 SQL语言四大类DQL、DML、DDL

数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>SELECT * FROM lmapp.lm_addr where uid like ‘U1351106%’;数据操纵语言DML数据操纵语言DML主要有三种形式:1)插入:INSERTinsert into tmp (medid,searchid) values (123

2022-05-09 16:04:15 277

原创 Spring动态代理

②原始类2.配置原始类的相关信息3.定义额外功能4.配置额外功能类的相关信息5.定义切点6.组装切面7.测试二:切入点表达式的含义分类:(3种) 方法切入点、类切入点、包切入点1.方法切入点 – 维度:只与方法有关,与类和包无关例:①为注册regist()方法添加额外功能②为带有一个参数为String类型的regist()方法添加额外功能③为带有两个参数为String类型的regist()方法添加额外功能④为第一个参数为String类型,后面参数不管的 《一.

2022-05-09 16:01:47 57

原创 Spring中@within与@target的一些区别

before, myAnnotation.value : sonson.hello()before, myAnnotation.value : sonfather.hello2()父类有注解,子类无注解:before, myAnnotation.value : fatherfather.hello()before, myAnnotation.value : fatherfather.hello2()son.hello()father.hello2()父类有注解,子类有注解before

2022-05-09 16:00:08 652

原创 SpringMVC拦截器的配置和使用

dispatcherServletorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:spring-mvc.xml1dispatcherServlet/spring-core.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns=“http://www.springframework.org/sc..

2022-05-09 15:55:25 448

原创 打卡每日Java面试10题

ALTER TABLE table_name ADD UNIQUE (column)INDEX(普通索引)ALTER TABLE table_name ADD INDEX index_name ( column )FULLTEXT(全文索引)ALTER TABLE table_name ADD FULLTEXT ( column )组合索引(包含多列的索引,与单行索引相对)ALTER TABLE table_name ADD INDEX index_name ( column1, column2

2022-05-06 17:18:41 679

原创 手动编译 Flink 1

[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 11:58 min[INFO] Finished at: 2019-07-24T16:37:45+08:00

2022-05-06 17:16:21 1384

原创 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了

scm:git:git@github.com:zq2599/opencv-client.gitscm:git:git@github.com:zq2599/opencv-client.githttps://github.com/zq2599/opencv-client/tree/mainzq2599zq2599@gmail.comhttps://github.com/zq2599+8ossrhhttps://s01.oss.sonatype.org/content/re...

2022-05-06 17:12:47 355

原创 我肝了一周,Java从基础到项目教程,Java全栈学习路线

4. FileOutputStream和BufferedOutputStream源码分析5. 字节流读数据的方式6. FileInputStream和BufferedInputStream源码分析7. 字节流完成视频文件的复制8. 编码表9. 字符流写数据的方法10. 字符串读数据的方法11. 字符缓冲流的使用12. 字符缓冲流的特有方法13. 标准输入输出流14. 打印流的使用15. 对象序列化流16. serialVersionUID&transient17. Prop

2022-05-06 17:11:32 145

原创 恶意用户识别?—

Build.PRODUCT.contains(“Andy”) ||Build.PRODUCT.contains(“Droid4X”) ||Build.PRODUCT.contains(“nox”) ||Build.PRODUCT.contains(“vbox86p”)) {return true;}if (Build.MANUFACTURER.equals(“Genymotion”) ||Build.MANUFACTURER.contains(“Andy”) ||Build.MANUFACT

2022-05-06 17:05:53 921

原创 并发容器之ConcurrentLinkedQueue详解与源码分析

如图,head和tail指向同一个节点Node0,该节点item域为null,next域为null。[](()操作Node的几个CAS操作在队列进行出队入队的时候免不了对节点需要进行操作,在多线程就很容易出现线程安全的问题。可以看出在处理器指令集能够支持CMPXCHG指令后,在java源码中涉及到并发处理都会使用CAS操作(关于CAS操作可以看这篇文章,那么在ConcurrentLinkedQueue对Node的CAS操作有这样几个://更改Node中的数据域itemboolean casItem

2022-05-06 17:02:13 322

原创 并发+JVM+Redis

MySQL存储引擎共享锁及排它锁MySQL的分区MySQL事务及隔离性级别执行计划Btree与B+tree索引Sql慢查询Sql优化面试题:(部分)========1. 索引的工作原理及其种类;2. 与Oracle相比,MySQL有什么优势?3. 为什么B+树相对于B树在查询上会更加优秀吗?4. 一张表,里面有ID自增主键,当insert 了17条记录之后,删除了第15,16,17 条记录,再把Mysql重启,再insert一条记录,这.

2022-05-06 16:57:04 1789

原创 对标阿里P9Java架构师面试题,已助我拿下字节、蚂蚁

[](()多线程与高并发篇(108道)=================================================================================多线程与高并发篇面试题中的知识点:多线程与高并发基础概念、JUC同步工具、同步容器、线程池、线程顺序执行控制、纤程、JMH、引用类型、Disruptor[](()Mysql篇(83道)===========================================================

2022-05-06 16:53:31 129

原创 左旋转字符串(简单难度)

题目链接:[点我进入leetcode](()[](()思路与代码====================================================================[](()思路1(字符串切片)应用字符串切片函数,可方便实现左旋转字符串。获取字符串 s[n:]s[n:] 切片和 s[:n]s[:n] 切片,使用 “++” 运算符拼接并返回即可。复杂度分析:时间复杂度 O(N): 其中 N为字符串 s的长度,空间复杂度 O(N): 两个字符串切片的总长

2022-05-06 16:52:58 158

原创 (全网最详细最有深度)超过1W字深度剖析JVM常量池

字符串常量池存储在堆内存空间中,创建形式如下图所示。当使用String a=“Hello”这种方式创建字符串对象时,JVM首先会先检查该字符串对象是否存在与字符串常量池中,如果存在,则直接返回常量池中该字符串的引用。否则,会在常量池中创建一个新的字符串,并返回常量池中该字符串的引用。(这种方式可以减少同一个字符串被重复创建,节约内存,这也是享元模式的体现)。如下图所示,如果再通过String c=“Hello”创建一个字符串,发现常量池已经存在了Hello这个字符串,则直接把该字符串的引用返回即可。

2022-05-04 19:38:47 171

原创 麻了,都是科班出身的,学弟月薪却是我的3倍

1.Java 基本功Java 入门(基础概念与常识)Java 语法基本数据类型方法(函数)2. Java 面向对象类和对象面向对象三大特征修饰符接口和抽象类其它重要知识点3. Java 核心技术集合异常多线程文件与 I\O 流![](https://img-blog.csdnimg.cn/e8d1295386ed41ab95c4320527442c38. 《一线大厂Java面试题解析+后端开发学习笔记+最新架

2022-05-04 19:37:06 274

原创 面试官:你说你会RabbitMQ,那聊聊它的交换机

channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);log.info(“消息已确认”);}}这两段代码都很好理解,不再赘述。其中发送消息的代码有三个参数,第一个参数是Exchange的名称,第二个参数是routingKey的名称,这个参数在扇形交换机里面用不到,在其他两个交换机类型里面会用到。代码的准备到此结束,我们可以运行发送方法之后run一下了~项目启动后,我们可以先来观察一下队列与交换机的绑定关系

2022-05-04 19:35:31 658

原创 leetcode550

±----------±----------±-----------±-------------+| player_id | device_id | event_date | games_played |±----------±----------±-----------±-------------+| 1         | 2         | 2016-03-01 | 5      

2022-04-24 22:09:18 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除