- 博客(51)
- 资源 (1)
- 收藏
- 关注
原创 并发编程面试题0
1、并行和并发有什么区别?2、线程有几种创建方式3、Java线程启动为什么是调用start()方法而不是直接调用run()方法?4、线程有哪些常用的调度方法
2024-07-23 00:55:51
708
原创 并发编程面试题2
1、线程池的核心线程数、最大线程数该如何设置?2、如何理解Java并发中的可见性?3、如何理解Java并发中的原子性?4、如何理解Java并发中的有序性?
2024-07-21 13:42:49
1036
原创 Nacos详解
Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。nacos官方文档:https://nacos.io/nacos主要有两个核心功能:1.配置管理2.服务管理:服务的注册与发现本文主要围绕这两个核心功能进行描述。
2024-06-26 23:56:11
1737
原创 1、缓存击穿背后的问题
首先我们要了解什么是缓存击穿?以及缓存击穿会引发什么问题?缓存击穿就是redis中的热点数据过期,缓存失效,导致大量的请求直接打到数据库,进而导致数据库奔溃,整个程序挂掉那你知道数据库的真实性能是什么样子吗?我用jmeter对一张500万数据的MySQL表的聚簇索引和普通索引进行了压测,在100个并发下主键索引能有7万的QPS,普通索引也能有2700多的QPS,这还是我自己的PC测出来的数据,不是服务器,jmeter和MySQL还是在同一台机器上的情况。
2024-01-29 01:07:19
479
原创 JVM常见面试题
1.JVM有哪些内存区域?虚拟机栈:在jvm运行过程中存储当前线程运行方法所需的数据、指令、返回地址;栈的生命周期跟随线程的生命周期;每一个栈包含多个方法,每个方法占用一块空间,称为栈帧;它的结构是栈,是先进后出的;本地方法栈:本地方法栈和虚拟机栈的作用、实现类似,它服务的对象是native方法;程序计数器:主要用来记录各个线程执行的字节码的地址;方法区:jdk1.7之前叫永久代,是在堆里面,jdk1.8之后叫元空间,另起一块空间,不放在堆里面了;主要存放静态信息,比如类的信息、常量池、方法数据
2022-05-15 21:48:32
826
原创 int Integer之间使用 == 比较结果分析
int Integer之间使用 == 比较结果分析前置知识:int Integer使用 == 比较分析代码示例Integer内部类IntegerCache源码前置知识:java中使用 == 进行比较,基本数据类型(byte、short、int、long、float、double、char、boolean)比较的是值,引用类型比较的是地址。使用equals()进行比较时,没有重写equals()方法,底层用的也是用 == 进行比较。int Integer使用 == 比较分析int 和 Integ
2022-02-10 21:18:14
2185
原创 华为机试:查找兄弟单词
查找兄弟单词 一、题目描述二、解题思路一一、题目描述查找兄弟单词 :描述:定义一个单词的“兄弟单词”为:交换该单词字母顺序(注:可以交换任意次),而不添加、删除、修改原有的字母就能生成的单词。兄弟单词要求和原来的单词不同。例如: ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。现在给定你 n 个单词,另外再给你一个单词 str ,让你寻找 str 的兄弟单词里,按字典序排列后的第 k 个单词是什么?注意:字典中可能有重复单词。本题含有多组输入数据。输入描述:先输入单词的
2021-12-26 23:44:26
625
原创 华为机试 判断两个IP是否属于同一子网
判断两个IP是否属于同一子网 一、题目描述二、解题思路一三、解题思路二2.四、扩展总结一、题目描述判断两个IP是否属于同一子网 :子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。子网掩码与IP地址结构相同,是32位二进制数,其中网络号部分全为“1”和主机号部分全为“0”。利用子网掩码可以判断两台主机是否中同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。示例:I P 地址 192.168.0.1子网掩码 255.2
2021-12-26 14:49:00
231
原创 MyBatis的9种动态标签
MyBatis动态标签MyBatis9种动态标签动态标签用法1.if2.choose、when、otherwise3.where4.set5.trim6.foreach7.bindMyBatis9种动态标签MyBatis提供了9种动态SQL标签:trim、where、set、foreach、if、choose、when、otherwise、bind;其执行原理为,使用OGNL从SQL参数对象中计算表达式的值,根据表达式的值动态拼接SQL,以此来完成动态SQL的功能。动态标签用法1.ifIf :
2021-12-12 12:03:20
8173
原创 每周 三算法(Java)1.1
LRU缓存机制一、题目描述二、解题思路一1.引入库三、解题思路二2.读入数据四、扩展总结一、题目描述LRU缓存机制:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存;int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 ;void put(int key, int value) 如果关
2021-11-03 10:36:11
151
原创 JDK8实用新特性
目前在企业中用的比较多的jdk版本是jdk8,jdk8的新特性包括:Lambda表达式、Stream API、函数式接口、方法引用与构造器引用、接口的默认方法与静态方法、新时间日期API。这里介绍两个我认为比较常用的新特性:Lambda表达式、Stream APIJDK8实用新特性一、Lambda表达式1.Lambda表达式具体使用1.1调用无参无返回值函数式接口的方法1.2调用无参有返回值函数式接口的方法1.3调用有参无返回值函数式接口的方法1.4调用有参有返回值函数式接口的方法2.总结二、Strea
2021-09-09 17:04:36
531
原创 idea必备配置和插件
idea必备配置和插件一、idea必备配置二、idea如何安装插件三、idea实用插件四、查看idea已安装的插件idea是一款强大的工具,它提供了很多配置和插件,让编程事半功倍!!!进入idea设置界面一、idea必备配置1.设置鼠标悬浮提示信息2.自动导包3.自动删除无用的包4.忽略大小写或5.设置字体大小6.设置注释颜色7.设置文档注释模板(工作时可以标注是谁写的代码)8.设置项目编码9.设置自动编译10.方法间的分隔符11.设置为eclipse的
2021-08-14 15:35:07
3568
3
原创 Docker详解
Docker 概念我们写的代码会接触到好几个环境:开发环境、测试环境以及生产环境:如果只是把我们写好的代码打成war包发布到其他环境,可能会出现 “水土不服” 的问题,比如我们本地用的是JDK8,而测试环境用的是JDK7这时候我们就需要使用一个容器,装我们写好的程序包以及环境一起发到其他环境,规避掉软件跨环境迁移的问题。Docker就能起到容器的作用!Docker概念:Docker 是一个开源的应用容器引擎Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布
2021-04-19 23:08:25
603
原创 SpringCloud入门3
Config分布式配置中心config简介在开发中,有开发环境、测试环境、运行环境,每种环境的配置文件各不相同,在分布式多场景下要一一更改配置文件耗时耗力。Spring Cloud Config 解决了在分布式场景下多环境配置文件的管理和维护。做到了:集中管理配置文件,可将配置文件放在gitee不同环境不同配置,动态化的配置更新配置信息改变时,不需要重启即可更新配置信息到服务config配置使用(入门)config server:使用gitee创建远程仓库,上传配置文件搭建 c
2021-04-15 01:16:02
118
原创 RabbitMQ Windows 安装
RabbitMQ Windows 安装一、安装Erlang双击资料中提供的 otp_win64_22.1.exe ,选择对应安装目录,一路下一步,完成安装。设置Erlang环境变量(1)新建ERLANG_HOME (2)修改环境变量path,增加Erlang变量至path,%ERLANG_HOME%\bin; (3)打开cmd命令框,输入erl,如果能看到版本号,则Erlang安装完成。二、安装RabbitMQ双击资料中提供的 rabbitmq-server-3.7
2021-04-14 00:12:19
109
原创 Git下载与安装
Git下载和安装官网下载地址:https://git-scm.com/downloads所有的东西如果下载慢的话就可以去找镜像!如果官网下载太慢,可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/、官网:下面进行下载安装1.我是选择用淘宝镜像下载,打开淘宝镜像,选择最新版的稳定版
redis1.redis5中基础类型StringHash:类似mapList:有序列表Set:无序集合,自动去重Sorted Set:排序的Set缓存穿透:缓存穿透:产生这个问题的原因可能是外部的恶意攻击,例如,对用户信息进行了缓存,但恶意攻击者使用不存在的用户id频繁请求接口,导致查询缓存不命中,然后穿透 DB 查询依然不命中。这时会有大量请求穿透缓存访问到 DB。解决的办法如下:1.对不存在的用户,在缓存中保存一个空对象进行标记,防止相同 ID 再次访问 DB。不过有时这个方法并不能
2021-03-22 13:55:01
1652
原创 springboot面试题(以自己的话总结)
1.springboot的核心注解是哪个?它主要由哪几个注解组成的?启动类上的注解@SpringBootApplication,是核心注解,主要包含了以下3个注解:@SpringBootConfiguration:包含了@Configuration,实现配置文件的功能;@EnableAutoConfiguration:打开自动配置的功能;@ComponentScan:Spring组件扫描2.SpringBoot需要独立的容器运行吗?可以不需要,内置了Tomcat/Jetty等容器,默认Tomca
2021-03-21 00:59:48
1625
7
原创 springcloud服务治理 ---- Ribbon 客户端负载均衡
Eureka client– 高可用单机环境下使用端口进行区别,启动多个即可。在客户端有多个的情况下,可以使用Ribbon进行负载均衡(eureka依赖ribbon,无需在导ribbon坐标)Ribbon 客户端负载均衡ribbon简洁:Ribbon是 Netflix 提供的一个基于HTTP和TCP的客户端负载均衡工具。Ribbon主要有两个功能:1.简化远程调用------使用 Ribbon 简化restTemplate调用* 1. 在声明restTemplate的Bean时候,添加一个
2021-03-19 16:01:14
196
1
原创 springcloud服务治理 ---- eureka server高可用
Eureka – 高可用(单机环境)1.准备两个Eureka Server2.分别进行配置,相互注册3.Eureka Client 分别注册到这两个 Eureka Server中eureka-server-1配置:server: port: 8761eureka: instance: hostname: eureka-server1 # 主机名 client: service-url: defaultZone: http://eureka-server2
2021-03-19 11:29:36
142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人