- 博客(50)
- 收藏
- 关注
原创 四大运营商频段使用情况
GSM和NB-IOT使用894-909/939-949MHz(10MHz),LTE FDD 使用889-894/934-939MHz (5MHz),原904-909MHz/949-954MHz 让给中国联通。也称F频段,最初用于部署TD-S/TD-LTE,为3G/4G频段,现用于部署TD-LTE。频段,最初获批用于部署TD-LTE,为4G频段,实际联通未大规模部署TD-LTE。也称 E 频段,最初获批用于部署TD-LTE,但仅用于室内,为4G频段,是移动 4G 室内覆盖主要频段。
2024-08-02 16:51:48 2514
原创 通信类问题总结
弱覆盖,干扰,重叠覆盖,越区覆盖(频繁切换),小区拥塞,邻区漏配(持续不切换,SINR拖红甚至掉线),传输模式,上行干扰(误码率高 ),带宽小,传输侧核心网侧原因,调度数不满,终/端问题(手机卡限流,服务器问题),A2门限值设置过高,GPS异步,来水不足,RANK,MCS.BLER下·看RSRP SINR看调度数,看手机发射功率,看误码率,看邻区漏配,看MCS,看TM ,看RANK,看s1接口,PRB利用率,看告警故障,看服务器。调方位角,下倾角,功率,站的位置,调参数,建双层网,小区分裂,扩容。
2024-08-02 16:45:36 449
原创 【数据结构与算法】DFA算法-关键词匹配-java案例实现
先读取所有关键词并存入set集合中。再将set中的关键词存入HashMap中,是以每个关键词字顺序存储,key为一个字、value为一个HashMap。在每一个HashMap都有一个key为is_end键值对来代表该字之前是否为一个关键词。该算法往往是用于匹配一些敏感词、绝对词等,从一篇文章中快速找到其中包含的关键词。words.txt如下。
2023-11-08 11:16:26 537
原创 【消息队列】消息队列常见面试题总结
当消息消费完毕后,消费者会发送一个ACK确认消息给消息队列,消息队列就知道该消息被消费了,就会将该消息从消息队列中删除,但如果消费者发送的消息因为网络传输等问题,没有发送给消息队列,消息队列无法确认消息是否被消费,就会继续将消息交给其他消费者。因为生成者在写入的时候会指定一个key,而通常我们会用订单号来做这个key,当消费者进行消费时,发现同一个key的多条消息,就会使用多线程处理,来提高速度,由于最终处理速度不同,执行binlog的顺序错乱。(可达到微秒级),单机的吞吐量可达到万级,基本不会丢失消息。
2023-10-15 17:24:34 354
原创 【设计模式】单例模式的7种实现方法
线程安全,不存在线程同步问题,单例对象在程序第一次调用getInstance()时主动加载 SingletonHolder和其 静态成员INSTANCE,因而实现了懒加载策略。线程安全,不存在线程同步问题,且单例对象在枚举类型 INSTANCE第一次引用时通过枚举的 构造函数初始化,从而实现了懒加载策略。线程安全,类加载时初始化实例,实现了懒加载策略,线程安全。线程安全,且实现了懒加载策略,同时保证了线程同步时的效率。线程安全,实现了懒加载策略,但是线程同步效率不高。线程不安全,实现了实例懒加载策略。
2023-10-12 22:57:09 1011
原创 【JAVA】java常见面试题——持续更新
SpirngBoot自动配置就是不需要我们写代码,所有的配置都由SpringBoot自动完成。我们一般是通过这个注解来开启自动配置的,通过对包下的这个文件进行扫描,这个文件中包含了可以自动装配的类,当满足@Condition注解指定的条件时,便在依赖的支持下进行实例化注册到Spring容器中。SpringBoot最大特点就是他去除了各种xml配置文件改为application.yml进行统一的配置,并且按照阶梯的模式,简单明了,要使用的对象,则采取注解模式注入,省去大量代码。
2023-10-12 22:46:17 214
原创 【JavaSE】Synchronized实现原理
否则说明多个线程竞争该对象的锁,轻量级锁就要升级为重量级锁,lock标志位的状态值变为 "10",Mark Word中存储的就是指向重量级锁(互斥量)的指针,后面等待锁的线程也要进入阻塞状态。例如:A线程可以先获取对象obj的轻量锁,然后A线程释放了锁,这个时候B线程来获取obj的轻量锁,可以成功获取obj的轻量锁。轻量级锁与偏向锁的区别:假设有一个加锁的方法,这个方法在运行的时候,并没有出现并发的情况,从始至终只有一个线程在调用,如果使用轻量级锁,每次调用完也要释放锁,下次调用还要重新获得锁。
2023-10-08 20:57:04 362
原创 【数据结构与算法】二叉树的以及二叉排序树的实现
而将一个数组直接转换为二叉树只需将数组下标向右移一位即可,下标从1开始。,那么他的左子节点的下标就为。因为假设一个父节点的下标为。,他的右子节点的下标就为。
2023-10-08 18:53:15 167
原创 【JVM虚拟机】JVM常见面试题总结
而这个会造成空间碎片化问题,导致产生大量不连续的空间,如果有一个大的对象需要分配,就无法找到连续足够的空间。先将空间分为完全一样大小的两块空间,每次使用只是用其中一块,在一块使用完后,先将不需要回收的对象复制到另一块中,然后清除这块空间。这个算法可以改善空间碎片化问题,但是会浪费过多的空间,使现在只能是原来一般,而且如果不需要回收的对象,如果较多化,效率会很低。,这些栈帧其实就相当于方法的调用,调用一个方法一个栈帧入栈,当这个方法彻底结束,栈帧又会被弹出,回到调用它的那个栈帧中。
2023-10-05 17:19:14 374
原创 【MySQL】MySql常见面试题总结
sql注入是指攻击者通过对用户输入的字符串内容加入sql语句,与程序中sql进行拼接,形成恶意查询,非法命令等攻击手段。一般使用?占位符来避免sql注入。MVCC是行级锁的一个变种,它能够减少加锁操作,因此开销更低,大多数MVCC都实现了非阻塞的读操作,写操作也只锁定必要行。MVCC是一种用来解决读写冲突的并发控制为事务分配单项增长的时间戳为每个修改保存一个版本每个版本对应一个时间戳每个事务都有对应一个版本快照。快照版本按照时间戳来决定先后顺序。读操作,只需要去读该事务开始前的最新数据快照。
2023-10-02 16:56:25 414
原创 【计算机网络】计网常见面试题总结
流量控制是指接收方对于发送方发送速率的一种控制。因为每一方都有一块固定大小的缓存空间,而接收方需要要求发送方不能发送超过接收方缓存容量的数据。接收方来不及处理发送方的数据,就会提示对方降低发送速率,防止数据包丢失。而TCP是利用滑动窗口来进行流量控制的。在确认报文中有一个窗口字段就是设置发送方的窗口大小,从而影响发送速率。因为如果每发送一个数据,都要等收到对方的确认收到后,才发送下一个数据的话,这样的通信效率是很慢的。而TCP协议就引入了窗口的概念。滑动窗口就是TCP协议用于实现流量控制的一种机制。
2023-09-22 18:05:46 364
原创 【JVM虚拟机】JVM常用命令工具汇总
生成线程快照的目的主要是定位线程长时间出现停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者在等待些什么资源。它可以显示本地或者远程(需要远程主机提供 RMI 支持)虚拟机进程中的类信息、内存、垃圾收集、JIT 编译等运行数据,在没有 GUI,只提供了纯文本控制台环境的服务器上,它将是运行期间定位虚拟机性能问题的首选工具。
2023-09-15 17:30:12 209
原创 【Redis】Redis使用和RedisTemplate的方法介绍
leftPush :从集合左边插入值 | | 从集合左边开始在v值后边插入新值v1leftPushAll :从左边批量插入新值 | | 从左边批量插入新值(同上)leftPushIfPresent :如果key存在,从左边插入新值leftPop :默认移除key中最左的一个值| |指定过期时间后删除key最左的一个值rightPopAndLeftPush :移除k1中最右的值,并将移除的值插入k2中最左侧| |指定过期时间后,移除k1中最右的值,并将移除的值插入k2中最左侧(同上)
2023-09-05 19:30:40 3750
原创 【Spring】Spring Task @Scheduled注解的使用
该参数是一个字符串 其中分为5至6个域 每个域用空格隔开。可以直接在方法上使用 是该方法每隔一个时间段执行一次。表示匹配该域的任意值。假如在Minutes域使用。给注解是为任务调度注解。每个域从左至右分别代表。
2023-09-04 15:59:18 79
原创 【Spring Cloud】微服务的注册中心nacos的使用
所以我们需要新建一个配置文件:bootstrap.yaml 这个文件会在读取application.yml 文件前读取。微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。这是nacos下载地址 解压缩进去bin目录运行startup.cmd即可。登录账号密码都为nacos 即可使用!
2023-09-03 14:52:54 135
原创 【JavaSE】Lambda表达式、函数式接口与Stream流的使用
所以过滤后的结果,可以继续进行其它Stream操作(例如forEach,forEach需要一个函数来对过滤后的元素依次执行。Stream操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,可以连续完成多个操作。收集是一个 最终操作,返回Stream中元素集合,返回值类型是集合(List、Set、Map)或 字符串。统计是一个最终操作,返回Stream中元素的各类统计信息,返回值类型是 XXXConsumer。将Stream中的元素,映射后,收集至新集合。
2023-08-29 16:34:30 105
原创 【Linux】Linux指令大全(持续更新中)————(自用)
可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内 存缓冲区 空闲内存:available = free + buffer(缓冲) + cache(缓存)可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、 目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。对于shell来说执行程序产生的进程分为前台进程和后台进程 执行一个程序的时候如果需要将它变为后台进程时 在执行命令后加。删除容器(只能删除停止运行的容器)强制删除容器(即使是运行中的)
2023-08-26 23:06:37 483
原创 【Spring Cloud】Gateway微服务网关快速入门
全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题。default-filters: # 默认过滤器,会对所有的路由请求都生效。
2023-08-24 19:30:59 347
原创 【MyBatis Plus】mp的基本使用
查看结果,生成的ID就是一个Long类型的数据,生成ID时,使用的是雪花算法 雪花算法(SnowFlake),是Twitter官方给出的算法实现 是用Scala写的。目前我们在查询数据的时候,什么都没有做默认就是查询表中所有字段的内容,我们所说的查询投影即不查询所有字段,只查询出指定内容的数据。在上面的案例中,我们做查询的时候,数据表中的字段名与模型类中的属性名一致,查询的时候没有问题,那么问题就来了。方式二解决了方式一的弊端,但是要多些一个lambda(),那方式三就来解决方式二的弊端,
2023-08-23 22:46:37 288
原创 【spring Cloud】微服务通信的三种方式RestTemplate、Feign远程调用与Dubbo的使用
分布式中的远程调用大概分为两种REST,即Representational State Transfer的缩写,如果一个架构符合REST原则,就称它为RESTful架构。RPC( Remote Procedure Call )一种进程间通信方式。允许像调用本地服务一样调用远程服务。RPC框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者UDP)、序列化方式(XML/JSON/二进制)和通信细节。
2023-08-23 19:31:11 1906
原创 【SpringSecurity】Springboot整合SpringSecurity中间件(案例)
前面一样的也是写基础代码 与 shiro中的相同 注意里面的@PreAuthorize 是声明权限的注解。这个使用的是SpringSecurity提供的登录页面需要联网 访问有些慢。用的是同一个案例 只是使用的中间件不一样 这个比shiro的整合更简单。密码加密的话也是完全由框架提供 所以数据库中也不需要存储盐值。-- 以下是>spring security依赖-->首先是创建一个springboot项目 导入坐标。中有数据库详情可以自己创建。数据库我有上传 或者在。这里有一个加密的测试类。
2023-08-20 16:28:58 132 1
原创 【JavaSE】ThreadLocal详解
而ThreadLocalMap内部数据结构是一个Entry类型的数组,每个Entry对象的key为ThreadLocal对象,value为存储的数据。通过这个例子 可以看到 A和B都存储在threadLocal中 却在不同线程中获取的确是不同的值。输出结果我们发现在主线程中存入的abc 在子线程中也同样存在。1、将数据存入到当前线程中的ThreadLocalMap中。2、获取当前线程中ThreadLocalMap中的值。3、删除当前线程中ThreadLocalMap中的值。的,也就是说该变量是当前线程。
2023-08-20 13:11:08 149 1
原创 【shiro】springboot如何集成shiro中间件(案例)
Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份 认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加 密。易于理解的 Java Security API;简单的身份认证(登录),支持多种数据源(LDAP,JDBC 等);对角色的简单的签权(访问控制),也支持细粒度的鉴权;支持一级缓存,以提升应用程序的性能;
2023-08-19 19:57:45 263
原创 【Spring Boot】Spring Boot自动配置
自定义redis-starter,要求当导入redis坐标时,SpringBoot自动创建Jedis的Bean可以参考mybatis启动类的应用创建redis-spring-boot-autoconfigure模块RedisAutoconfiguration类//注入jedis@BeanRedisProperties类注意RedisAutoconfiguration路径。
2023-08-15 19:29:08 264
原创 【Redis】redis配置文件和持久化
官方推荐两个都启用,如果对数据不敏感,可以选单独用RDB,不建议单独用 AOF,因为可能会出现Bug,如果只是做纯内存缓存,可以都不用。
2023-08-10 19:27:41 585 1
原创 【Spring】Spring生命周期
目录一.Bean 实例化的基本流程二.Spring的后处理器 三.Spring Bean的生命周期Spring容器在进行初始化时,会将xml配置的的信息封装成一个BeanDefinition对象,所有的 BeanDefinition存储到一个名为beanDefinitionMap的Map集合中去,Spring框架在对该Map进行遍 历,使用反 射创建Bean实例对象,创建好的Bean对象存储在一个名为singletonObjects的Map集合中,当调用 getBean方法 时则最终从该Map集合中取出Be
2023-08-05 12:13:46 58 1
原创 【JavaEE】javaee基础Session与Cookie的基本使用——聊天室案例
该案例通过servlet对于Session与Cookie的一些用法所完成。
2023-07-26 22:50:31 85 1
原创 【MyBatis】MyBatis基本用法
MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方案。MyBatis 内部封装了 JDBC,简化了加载驱动、创建连接、创建 statement 等繁杂的过程,开发者只需要关注 SQL 语句本身。什么是持久化?数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。
2023-07-24 19:35:26 66
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人