- 博客(89)
- 资源 (1)
- 收藏
- 关注
原创 大厂面试到入职全流程
先说说这篇文章写下的一个背景,本人双非渣本2年工作经验,但是有着一段大厂经历。在23年的7月中旬开始找工作,到了9月中旬差不多是落地了。中间面试了当前招聘比较多的一些厂子(飞猪、蚂蚁、小红书、美团、得物、拼多多…)。
2023-09-19 09:10:20
543
原创 线程同步的一些思考(二) 虚假唤醒的解决
虚假唤醒(Spurious Wakeup)是指一个线程在没有收到显式的唤醒信号的情况下,从等待状态中被唤醒。虽然虚假唤醒的发生机制可能因操作系统和具体实现而异,但一般是由于系统或实现的内部原因导致的。虚假唤醒的发生原理是多方面的,包括操作系统、编译器优化、硬件等。下面是一些可能导致虚假唤醒的原因:系统或实现内部的信号丢失:在某些情况下,操作系统或实现内部可能存在信号丢失的问题,导致线程在没有显式唤醒的情况下被唤醒。
2023-07-06 17:21:29
368
原创 DCL详解
在Java中,DCL通常指的是Double-Checked Locking(双重检查锁定)。DCL是一种用于多线程环境下懒加载单例对象的技术,它的基本思路是在对象还未被实例化时,先通过一次判空,避免了每次获取对象时都需要加锁的开销,从而提高了程序的性能。但是,在Java中实现DCL是比较容易出现问题的,因为Java的内存模型允许指令重排,可能会导致在多线程环境下DCL失效,从而创建出多个对象实例。
2023-06-12 09:56:29
1722
原创 深浅拷贝各种实现方式性能
结论:两种常见的序列化方式 竟然都比 BeanUtil.copyProperties 性能高,fastjson 性能较 beanCopy 高出约7倍,jackson 性能较 beanCopy 高出约3.5倍。BeanUtils 采用 spring 框架自带的,apache commons 性能更低。
2023-06-07 23:54:45
645
原创 Java网络爬虫
向指定的网址发送请求,获取HTML页面内容;解析HTML内容,提取所需信息;根据需求,可能还需要将提取到的链接加入队列,继续抓取。在上面的示例中,我们只实现了向指定网址发送请求并获取HTML页面内容的功能。为了实现一个更强大的网络爬虫,我们需要引入HTML解析库,如Jsoup。
2023-03-26 11:35:57
723
1
原创 杀死僵死进程
杀死僵死进程急用的小伙伴,可以直接使用以下命令杀死所有僵死进程ps -A -ostat,ppid,pid,cmd | grep -e ‘1’ | awk -F" " ‘{ print $2 }’ | xargs kill -HUP其它查看的命令如下1. 检查僵尸进程top命令当zombie前的数量不为0时,即系统内存在相应数量的僵尸进程。2. 查询父进程ps -A -ostat,ppid,pid,cmd |grep -e '^[Zz]'3. 通过父进程杀死僵尸进程kill -H
2022-04-06 20:49:28
3669
1
原创 Java的Type类和泛型的实战
package com.xiaoju.manhattan.themis.rpc.command;import cn.hutool.core.util.TypeUtil;import com.xiaoju.manhattan.financing.base.metric.util.ValidateUtil;import com.xiaoju.manhattan.themis.rpc.annotation.ThemisRpcCommandMark;import com.xiaoju.manhattan.t
2022-03-04 13:44:43
2118
原创 关于SpringBoot的观察者模式
关键源码被观察者:applicationContext.publishEvent(msgSendResultEvent);发布事件的对象中间人:AbstractApplicationContext维护了事件和观察者之间的关系,使得双方得以解耦。让两者可以灵活组合观察者:SimpleApplicationEventMulticaster事件发布后的动作执行人...
2022-03-03 19:57:03
288
原创 基础设施优化:CPU缓存
基础设施优化:CPU缓存干货要点内存存放位置靠近的数据放在一起进行逻辑处理,减少cpu读取次数例1:java二维数组在内存中存放逻辑,可以尽量在让横坐标相同的数据来一起进行逻辑运算array[0][0],array[0][1],array[1][0],array[1][1]。逻辑处理靠近的数据尽量能存在同一个缓存行中,减少cpu读取次数例1:Nginx,会发现它是用哈希表来存放域名、HTTP 头部等数据的,这样访问速度非常快,而哈希表里桶的大小如 server_names_hash_b
2022-03-01 16:49:02
454
原创 CPU缓存,提升缓存读取速率
CPU缓存,提升缓存读取速率原理:cpu读取数据是一段段(Cache Line 通常是64字节)读取,如果能将操作逻辑在一起的数据放在一块,能够减少cpu读取缓存带来的损耗示例:array[j][i]执行的时间是后者 array[i][j]的 8 倍之多因为二维数组 array 所占用的内存是连续的,比如若长度 N 的值为 2,那么内存中从前至后各元素的顺序是:array[0][0],array[0][1],array[1][0],array[1][1]。具体示例CPU Cache Line ,
2022-02-27 19:53:30
2996
原创 一致性哈希
一致性哈希背景:历史故事问题服务扩缩容,数据迁移成本数据分布不均匀正常:系统运行效率和性能异常:单点故障或者容灾扩容,容易导致雪崩的连锁反应解决方案和效果服务扩缩容,数据迁移成本传统哈希实现取模数随着节点数变动而变动,节点数不同的情况下数据集合计算的到的哈希分布变动不稳定,数据迁移通常不稳定,全量迁移的可能性相对较大。例:服务节点从4个缩容为1个,关注其中数据的分布变化情况(如key=5、key=9数据的变化)数据迁移成本,假设数据量是M,节点数是N。当服务进行扩缩容时
2022-02-27 18:51:20
514
原创 24种设计模式
24种设计模式文章目录设计原则单例模式工厂模式策略模式门面模式调停者模式责任链模式装饰者模式观察者模式组合模式享元模式静态代理动态代理迭代器模式访问者模式构建者模式适配器模式桥接模式命令模式原型模式模板方法状态模式谈到的一些问题设计原则返回目录单一职责原则一个类别太大,负责单一的职责高内聚,低耦合里氏替换原则所有使用父类的地方,必须能够透明的使用子类。比如子类重写父类的A()方法之后,又重载了很多的A()方法,那么这样子会照成对父类接口方法的歧义例:List list = n.
2020-12-28 21:46:13
580
转载 关于 i = i++ 两次赋值问题理解
关于 i = i++ 两次赋值问题理解文章目录前言前言以前曾经被一个看似简单,但是答案却很神奇的题目一直困扰着。题目如下:public class Test{ public static void main(String[] args){ int i=0; i=i++; System.out.println(i); }}于是网上搜了一些文章来解惑,这里转载了一篇文章方便日后查看,并且个人也是理解了原理。归结如下。1. .
2020-12-26 14:36:12
907
转载 关于Java网络编程数据发送但是没有响应问题的解决
关于Java网络编程数据发送但是没有响应问题的解决解决方案参考下面的博客(简单来说就是数据写入但是没有刷新缓存区域导致客户端和服务端没有相应的反馈)https://blog.csdn.net/mislaydu/article/details/51707365...
2020-12-09 12:53:54
530
原创 我的技术栈,学习路线大致框架
我的技术栈,学习路线大致框架JavaSE关键字语法面向对象API集合多线程网络Java进阶反射注解数据库Oracle和MySQL的安装SQL语法MySQL整体架构事务视图索引锁视图设计模式24种设计模式数据结构与算法数据结构算法前端三大马车VUE后端请求ServletMVC三成架构框架SpringMybatisSpringMVCSpringBootSpringCloud技术MQ
2020-11-27 14:36:54
237
1
原创 MySQL执行计划(explain 解析结果参数讲解及其示例)
MySQL执行计划(explain 解析结果参数讲解及其示例)文章目录前言参数概览参数详解id字段(语句执行逻辑)select_type字段(多条SQL语句之间的关系逻辑)table(表名信息)type(表的搜索逻辑)possible_keyskeykey_lenrefrowsextra前言 探究MySQL执行奥秘,优化MySQL语句,都会需要用到我们的MySQL的执行计划来分析,然后进行优化。所以接下来让我来看看执行计划到底是一个什么东西,他的参数该怎么看。英文好的,可以直接去官网看(▽)M.
2020-11-26 10:12:56
442
原创 mysql事务的隔离级别测试和各种问题的复现
mysql事务的隔离级别测试和各种问题的复现文章目录基本知识准备测试环境搭建事务的隔离级别脏读、可重复读、幻读问题复现测试1:脏读 read uncommitted测试2:当使用read committed的时候,就不会出现脏读的情况了,当时会出现不可重复读的问题测试3:当使用repeatable read的时候(按照上面的步骤操作),就不会出现不可重复读的问题,但是会出现幻读的问题基本知识准备返回目录测试环境搭建1、打开mysql的命令行,将自动提交事务给关闭--查看是否是自动提交 1表示.
2020-11-24 23:19:14
306
原创 MySQL的索引知识笔记
MySQL的索引知识笔记文章目录前言MySQL整体架构整体架构存储引擎MySQL索引索引基础哈希表树B树B+树索引种类其他补充前言 文章首先介绍MySQL的整体大致架构,了解我们执行一句SQL是怎样一个逻辑,可以有一个宏观的认识。接着围绕索引知识来逐步深入到一些数据结构的实现,然后又包含应用层面的东西,使得文章不是太抽象。MySQL整体架构返回目录整体架构客户端人为干预连接器:采用数据库连接池,减少频繁的开关连接优化器:可以查看sql语句的执行计划,可以采用对应的优化策略,来.
2020-11-24 23:10:07
212
原创 Java的集合容器
Java的集合容器文章目录整体集合架构ArrayListAPI分类要点源码解读默认容器初始容量并发容器异常HashSetAPI分类要点源码解读HashSet的底层容器实现HashMapAPI分类要点源码解读JDK1.7源码put方法流程图JDK1.8源码put方法流程图整体集合架构返回目录面向接口编程CollectionListArrayListLinkedListSetHashSetTreeSetMapHashMapHashTableLink.
2020-11-22 11:17:24
276
2
原创 关于finally和return问题的理解与示例示范
关于finally和return问题的理解与示例示范文章目录前言实际举例分析1、情况一(try中有return,finally中没有return):2、情况二(try和finally中均有return):3、情况三(finally中改变返回值num):4、情况四(将num的值包装在Num类中):总结前言 之前我在学习JavaSE的异常捕获的章节中,我们的try-catch语句中最后的finally语句块比较特殊。这个语句块里面的语句是必须会执行的,但是有时候我们就会遇到一些奇奇怪怪让人难以捉摸的情.
2020-11-20 15:21:30
1391
1
原创 电脑多开微信
电脑多开微信二话不说,直接看链接即可看第一个即可,复制一下路径然后改一下后缀名称即可。注意需要先关闭所有微信,然后在双击那个bat可执行文件。百度经验讲解
2020-11-14 22:49:43
832
转载 JVM常用参数配置
JVM常用参数配置博客地址 https://blog.csdn.net/weixin_37195606/article/details/82805216
2020-11-13 16:01:35
150
原创 最常用的SpEL表达式
最常用的SpEL表达式文章目录SpEL基础表达式对象表达式运算表达式SpEL基础表达式返回目录浮点值#{3.145}#{4.3E4}字符串#{‘Hello’}布尔值#{false}对象表达式返回目录基础对象应用#{User} 获取User对象#{User.name} 获取User对象的name属性#{User.getName()} 调用User的getName()方法判断空如果getAdmin()的返回值是null的话,将会出现NullPoin.
2020-11-13 10:56:33
1292
原创 我常用的iPad快捷键
我常用的iPad快捷键App切换中英文切换1. 中英文切换shift + caps lock 这个和Windows很不一样2. App切换cmd + tab 后台App切换cmd + 空格 App搜索cmd + h 返回主界面cmd + option + d 显示程序坞f4双击 进入任务视图截图cmd + shift + 3 拍摄截屏cmd + shift + 4 拍摄截屏并且进入编辑文本1. 光标移动ctrl + 左右箭头 光标移动到一句话的最前面或者最后面
2020-11-08 17:52:43
2650
2
原创 POI、EasyExcel
国内最流行的Excel技术(POI、EasyExcel)文章目录前言环境搭建参考源码POI依赖常用类文件写出(简单)文件读取(简单)文件读取(进阶)MyExcel基本介绍(优势)简单写简单读小结前言 Excel在非常多的业务场景中都有使用,作为一个程序员,掌握一门Excel操作技能可以说是不可或缺了。国内最常用的Excel技术可以说就是Apache的POI和阿里巴巴的EasyExcel了。下面就来看看这两门技术如何简单的入门。之后的工具封装就看大家各自的如何使用了。参考源码地址环境搭建参考.
2020-11-06 11:30:16
432
原创 循环队列(数组实现)
循环队列(数组实现)文章目录前言官方解析原题+代码解决了我心中的的疑惑小结前言 今天,我又下定决心准备在来到LeetCode来看看算法。我对算法的无知让我对算法有了更加多的学习欲望,虽然自己没有什么天赋,但是作为一个向上的程序员,这道坎还是要过的。队列算的上是最基本的数据结构了,但是今天的队列数据结构的构成却难倒了我,让我意识到了自己是有多菜,于是翻开官网回答,让我也是受益匪浅。下面就来讲讲我在写队列这个数据接结构的时候遇到的困难。首先,在写队列的时候我不清楚队列需要哪些属性第二,对于进队和.
2020-11-01 22:25:52
542
原创 设计模式入门之类与类之间的关系和UML图
设计模式入门之类与类之间的关系和UML图文章目录前言5大关系**继承****实现****弱依赖****强依赖(关联)****弱聚合****强聚合(组合)**前言 学习设计模式,避免不了学习类和类之间的关系,因为设计模式的底层其实就是类和类之间的关系,只有理解了类和类之间的关系才可以理解更加深层次的设计模式。类关系概述is a包括了 继承,实现关系has a包括了 组合,聚合,关联关系use a包括了 依赖关系5大关系继承返回目录继承,就是对原来的类进行加强。就好像对装备进行升.
2020-10-29 15:30:21
234
原创 使用命令的方式查看电脑连接过的WiFi密码
1、使用快捷键【win键+R键】打开运行窗口,在运行窗口中的输入域输入【cmd】并点击【确定】2、在弹出的黑窗口中输入“netsh wlan show profiles”(可复制粘贴)可以查看电脑连接过的WiFi名称。如下图所示:netsh wlan show profiles3、输入“netsh wlan show profiles WiFi名称 key=clear”(如:netsh wlan show profiles 杨家 key=clear)可查看该WiFi名称的详细信息,包括该WiFi的
2020-10-25 14:43:20
1567
原创 SpringBoot的测试环境搭建和讲解(简单易懂)
SpringBoot的测试环境搭建文章目录前言搭建基本环境Jar包的引入建立我们的测试接口建立我们的测试类MockMVC 介绍使用示例补充(断言、MockMVC其他请求方式)示例踩坑坑点一:搭建我们的MockMVC环境坑点二:引入MockMVC的引入方式错误坑点三:我们使用MockMVC进行返回值测试的时候中文会乱码前言 这里来讲讲我个人进行SprigBoot测试环境搭建的学习和踩坑,方便我们单间个人测试案例,对关键的接口进行测试保障。减少后期的运维成本。搭建基本环境Jar包的引入返回目录.
2020-10-24 22:01:35
1111
原创 MySQL数据库中文编码问题解决
1.问题:在一个新项目中用到了新版的mysql jdbc 驱动后,发现保存到数据库的时间出现了时差<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.18</version></dependency>复制代码结果发现保存到服务器的时间出现了
2020-10-19 17:24:36
336
1
原创 MySQL 插入中文数据出错解决
下面是四种解决方式(第三种解决方式最为直接简单):1.查看mysql服务器编码格式show variables like ‘char%’,修改编码格式第一种my.ini,第二种set name utf82.修改数据库表的编码格式 alter table 表名 character set utf8** 3.修改表的数据列的编码格式 alter table 表名 change 列名 列名 字段类型 character set utf8; **4.修改多张拥有数据的表的字符编码第一步:导出表的结构 my
2020-10-19 17:17:08
420
原创 如何修改tomcat默认端口号8080的方法
1、背景在默认情况下,tomcat的端口是8080,使用了两个tomcat,那么就需要修改其中的一个的端口号才能使得两个同时工作。2、方法2.1改动一那么,如何修改tomcat的端口号呢?首先到安装目录(或者解压目录)下找到conf文件夹,在里面找到server.xml的文件,并且进行修改1 <Connector port="8080" protocol="HTTP/1.1"2 connectionTimeout="20000"3 redirectPort
2020-10-19 16:52:47
5634
1
原创 docker mysql 字符集设置
docker mysql 字符集设置使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像创建 my.cnf 文件[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server=utf8_general_cicharacter-set-server=utf8init-connect='SET NAMES u.
2020-10-19 16:49:10
1108
原创 解决centos7 yum下载过慢
解决centos7 yum下载过慢一、原因:yum默认为国外源。二、解决方案 换为国内源,如下:1、备份sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载源方式一sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo方式二sudo c
2020-10-19 16:44:57
776
原创 tomcat无法被访问
方法一1.检查tomcat是否开启2.检查防火墙是否关闭1. 启动tomcat2. 验证tomcat 是否启动成功ps -ef|grep tomcat 这样是启动成功了的方法二完全关闭linux的防火墙指令如下:[root@localhost ~]# service iptables stop如果需要重新开启防火墙,指令如下:[root@localhost ~]# service iptables start...
2020-10-19 16:40:06
755
原创 MinIO文件服务器快速部署和案例演示
MinIO文件服务器文章目录前言服务器部署依赖配置SpringBoot配置方法模板类方法使用示例易错点和注意点MinIO的文件上传时文件类型设置的坑前言 这个MinIO服务用起来比较简单,配置和使用都非常快。1.博客案例源码git clone https://github.com/YeZhiyue/MinIO-Server.git2. 官方文档中文英文-更加详细服务器部署docker run -p 9000:9000 --name minio1 \ -e "MINIO_ACC.
2020-10-02 19:00:43
2093
1
MybitsDemo.zip
2020-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人