
Java
老宋别偷懒
19届计算机系毕业生,想在北京找工作。哪个大佬看我顺眼,求收留。
展开
-
类加载过程
*原创 2023-12-17 18:19:16 · 934 阅读 · 0 评论 -
LocalDateTime、Date、时间戳、字符串 相互转化
1.时间戳 转 LocalDateTimelong l = System.currentTimeMillis();// 时间戳 转 LocalDateTimeLocalDateTime localDateTime1 = LocalDateTime.ofInstant(Instant.ofEpochMilli(l), ZoneId.systemDefault());System.out.println(localDateTime1);2.时间戳 转 Datelong l = System.cur原创 2022-04-08 18:03:37 · 1217 阅读 · 0 评论 -
GateWay 项目中 server.servlet.context-path 属性没有用怎么解
直接上代码@Configurationpublic class ContextPathConig { /** * @Description: 由于gateway 中 使用的 spring-boot-starter-webfulx 的依赖 和 spring-boot-starter-web * 依赖有所冲突,所以去掉 spring-boot-starter-web 的gateway项目的启动容器是Netty ,所以我们在application.yml中原创 2021-06-28 16:53:13 · 3833 阅读 · 2 评论 -
Redis面试题
1-10 可能会遇到的面试题1.什么是 Redis?答:redis是一个基于内存的,kv格式的non-sql 高性能数据库, 经常被拿来做缓存中间件,他支持持久化,所以也可以用来做存储。2.Redis 的数据类型?答:最常用的是string, 其他还有hash、set、zset、list等3.使用 Redis 有哪些好处?答:一是他基于内存操作且非阻塞,读写性能高二是支持持久化,能够较好的容灾,比较安全三是数据类型丰富4.Redis 相比 Memcached 有哪些优势?答原创 2021-01-26 14:26:18 · 126 阅读 · 0 评论 -
Redis线程模型 不同域名的单点登录 可靠性投递
原创 2021-01-26 14:26:01 · 138 阅读 · 0 评论 -
ThreadPollExcutor线程池的状态
Q:线程池有状态么?A:当然有,RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATEDRUNNING:运行状态,接收新任务,处理旧任务。SHUTDOWN:待关闭状态,这个状态不会接收新任务但会执行完阻塞中的任务。STOP:停止状态,不会接收新任务,结束阻塞中的任务。TIDYING:整理状态,此时所有任务都执行完毕,也没有工作进程,执行termintaed方法后进入TERMINATED状态。TERMINATED:终止状态,此时线程池完全终止了,并且完成了所有资源的释放原创 2020-12-08 08:45:28 · 213 阅读 · 0 评论 -
关于MQ Kafka
分布式消息队列MQ的应用场景:1.服务解耦 2.削峰填谷 3.异步化缓冲(最终一致性,不需要强一致性)。思考点: 1.生产中的可靠性投递,发出去一定要保证原子性 2.幂等性,消费幂等 3.高可用性 4.低延迟性 5.消息可靠性 6.堆积能力 kafka的特点:1.分布式(消息分区) 2.跨平台,支持多种语言。3.实时性,数据支持实时处理,数据的堆积能力很强。4.伸缩性,支持水平扩展。kafka高性能的原因是什么:1.顺序写2.Page原创 2020-12-08 08:44:17 · 542 阅读 · 1 评论 -
Redis 缓存穿透 和缓存雪崩 以及缓存的内存淘汰策略
什么缓存穿透? 查询的key在缓存中和数据库中都不存在,某些非法用户进行攻击,大量的请求会直接打在db上,从而造成db宕机,这就是缓存穿透。如何预防缓存穿透? 1.把缓存中不存在的key缓存起来,比如空字符串,空对象,空数据或者空list。(一般我们要这么干) 2.通过布隆过滤器在实现。(只测试过)什么是缓存雪崩? 当缓存的中设置过过期的时间key在某个时间点上大面积失效,大量的请求会直接打在db上,从而造成数据库的宕机,这就是缓存雪崩。如原创 2020-12-08 08:37:54 · 244 阅读 · 0 评论 -
索引如何才会失效
索引失效的各种原因:1、全值匹配我最爱2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列。带头大哥不能死,中间兄弟不能断3.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4.存储引擎不能使用索引中范围条件右边的列。范围之后全失效5.尽量使用覆盖索引(只访问索引的查询(索引列和查询列-致)),减少select*。6.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描。7.is null ,is not n原创 2020-12-08 08:35:27 · 435 阅读 · 0 评论 -
7层应用模型
7、应用层:用户和计算机交互。6、表示层:对传输的数据进行处理,加密或者翻译。5、会话层:建立一个会话。4、传输层:提供数据传输的服务,在传输层通信会设计端口号、常见的协议有tcp、udp。 快递公司会分配快递员去取件或者寄件,快递员充当传输层的角色。3、网络层:网络通信要求自己的iP和对方的ip。快递员由物流公司统一分配和管理,物流公司就相当于网络层。2、数据链路层:这一层会提供计算机的MAC地址,为了确保请求投递正确,所以会验证监测MAC地址,确保请求响应的准确性。 快递员在投件的时候会先打个原创 2020-12-08 08:34:30 · 348 阅读 · 0 评论 -
同步阻塞 同步非阻塞 异步阻塞 异步非阻塞
同步阻塞(BIO):客户端发送请求给服务端,服务端需要很长的时间去执行,客户端会一直等待结果返回,也不会去做任何事情,服务器也不会处理其他的请求。同步非阻塞(NIO):客户端发送请求给服务器。服务器需要很长的时间去执行,客户端会一直等待结果返回,不会去做任何事前,而服务器会处理其他的请求,过一会回来处理原先的请求,之后返回结果给客户端,客户端继续执行。异步阻塞:客户端发送请求给服务端,服务端需要很长的时间去执行,客户端会去执行其他任务,而服务器不会处理其他请求,知道处理完本次请求。返回结果给客户端,客户原创 2020-12-08 08:33:50 · 174 阅读 · 0 评论 -
关于分布式锁
经典的分布式锁的三种实现方式基于Mysql。基于Redis。基于Zookeeper.基于Mysql实现原理:利用mysql天然的 行锁 select * for update 特性注意:如果要使用这种分布式锁的时候,分布式锁需要的表需要和业务表里面分开,可以减少数据库的压力。@RestController@Slf4jpublic class DemoController { @Resource DistributeMapper distributeMapper;原创 2020-12-07 22:02:34 · 258 阅读 · 0 评论 -
Nginx 日志切割
Nginx 日志切割-手动现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割一下。具体步骤如下:创建一个shell可执行文件:cut_my_log.sh,内容为:#!/bin/bashLOG_PATH="/var/log/nginx/"RECORD_原创 2020-09-14 14:46:53 · 127 阅读 · 0 评论 -
【Nginx】安装、配置、负载
安装Nginx去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本上传nginx到linux系统安装依赖环境(1)安装gcc环境 yum install gcc-c++(2)安装PCRE库,用于解析正则表达式 yum install -y pcre pcre-devel(3)zlib压缩和解压缩依赖, yum install -y zlib zlib-devel(4)SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https原创 2020-09-14 10:12:20 · 190 阅读 · 0 评论 -
JAVA8新特性
Lambda表达式的本质:作为函数式接口的实例。Lambda1、举例:(o1,o2) -> Integer.compare(o1,o2);2.格式: -> Lambda操作符 或者是 箭头操作符 —> 左边:Lambda 形参列表 (其实就是接口中抽象方法的新参列表) -> 右边: Lambda 体 (其实就是重写的抽象方法的方法体)3. Lambda表达式的使用:(分为6中情况介绍) 总结: -> 左边:Lambda形参列表的参数类型可以省略(类型推断);如原创 2020-07-02 16:07:22 · 186 阅读 · 0 评论 -
J.U.C知识结构图
转载 2019-04-22 18:33:46 · 253 阅读 · 0 评论 -
之前自己在学习的时候安装了Oracle数据库,在黑窗口WIns+R里面用sqlplus命令连接,之后又装了一个的oracle,发现之前那个连不上了。
之前自己在学习的时候安装了Oracle数据库,在黑窗口WIns+R里面用sqlplus连接,之后装了公司的oracle,发现之前那个连不上了。由于后来装的oracle只在plsql中连接。那么我的处理办法是:安装完后来的数据库我发现在环境变量里面出先了自动的配置,之后我试着把自己的移到了上面,突然发现我自己的oracle可以用了。然后发现了别的问题,那就是我的plsql连不上第二个数据...原创 2019-04-23 08:27:55 · 455 阅读 · 0 评论 -
产生死锁其他线程能做什么
如何预防死锁:1、线程一定要按照一定的顺序进行加锁。2、加锁时间,一个线程在获取锁的时候设置时间,超过一定的时间没有获取到锁的时候,就放弃对该锁的请求,并释放自己的锁。这里可以使用高级锁【J.U.C】3、死锁监测。一般不会使用产生死锁其他线程能做什么:1、释放所有锁,回退,等待一段时间重试。时间是随机的。2、给死锁线程设置优先级,让一个或几个线程回退,那么其他线程就可以以后没有死锁,继...原创 2019-04-23 16:41:18 · 263 阅读 · 0 评论 -
在VM虚拟机Centos7的Linux下安装Redis
1.首先把到redis中文官网上下贼redis安装包 http://www.redis.cn/。2.将redis压缩包拉到centos7的/usr/local目录下。3.进入到/usr/local目录下 使用命令解压压缩包。命令为 tar -zxvf redis-5.0.4.tar.gz4.进入到解压完redis的目录里面执行命令 make 但是此时会报错 gcc:命令找不...原创 2019-04-23 21:59:02 · 565 阅读 · 0 评论 -
在VM虚拟机Centos7的Linux下安装JDK
这里我把jdk的安装包放在在/usr/local下面1.解压安装包,命令为tar -zxvf jdk-8u191-linux-x64.tar.gz。2.打开虚拟机配置文件,编写配置文件, vim /etc/profile。如下图:3.直接拉到最后加入以下代码:#JAVA环境JAVA_HOME=/usr/local/jdk1.8.0_191JRE_HOME=JAVAHOME/jreP...原创 2019-04-23 22:19:13 · 701 阅读 · 0 评论 -
redis集群搭建(非常详细,适合新手)
文章属于转载作者:凉凉的西瓜来源:优快云原文:https://blog.youkuaiyun.com/qq_42815754/article/details/82912130版权声明:本文为博主原创文章,转载请附上博文链接!redis集群搭建在开始redis集群搭建之前,我们先简单回顾一下redis单机版的搭建过程1.下载redis压缩包,然后解压压缩文件;2.进入到解压缩后的redis文件...转载 2019-05-06 09:23:29 · 313 阅读 · 0 评论 -
在CentOS7上安装Docker,安装顺利,启动报错
在CentOs7上安装Docker步骤如下:首先我们要检查版本,因为在linux上安装Docker内核必须是3.0以上版本uname -r安装docker yum install docker安装过程当中有提示输入y回车继续安装之后可以查看一下docker的版本 docker -v启动docker命令 systemctl start docker 这里会报错,下面解决设置do...原创 2019-05-20 17:34:49 · 280 阅读 · 0 评论 -
Navicat连接MySQL8.0时报错【在windows上用Navicat连接Centos7上docker pull mysql 报错】
用Navicat连接自己的数据库的时候如图所示:怎么解决:1.ALTER USER 'root'@'localhost' IDENTIFIED BY 你的密码' PASSWORD EXPIRE NEVER;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';FLUS...原创 2019-05-17 15:59:43 · 312 阅读 · 0 评论 -
rpm安装MYSQL报错:The server quit without updating PID file
哈哈哈,真的是,今天想要学习mysql高级,在centos上利用rpm安装mysql的时候成功,但是启动的时候怎么也启动不了,折腾了一晚上,晚上的所有方法都试过了,包括安装什么miardb都试过,删除mysql下的ib_logfile1,ib_logfile0,再初始化都不行,然后在网上看到这么一个方法,是修改权限的问题,之前我也试过,但是不知道为什么没有成功,这次竟然成功了,试过之后连我自己都不...原创 2019-07-26 09:13:40 · 293 阅读 · 0 评论 -
在本地win10下怎么连接本地的vm上的redis
我自己在win上进行reddis的测试,但是redis服务启动在vm上的centos7上,在本地一直连不上vm上的redis,我的解决办法如下:首先我关闭了防火墙 systemctl stop firewalld.service 之后在本地连接,发现还是连不上。之后我再网上查资料,说我的6379端口没有开放,我想我的防火墙的都关闭了,6379端口还没有开放么,不管了先开放再说,然后我开放了63...原创 2019-04-26 09:09:08 · 3202 阅读 · 0 评论