
在线全科家教
文章平均质量分 74
稚辉君.MCA_P8_Java
张晓辉@清华大学马士兵教育_P8.MCA_Java互联网高级架构师
展开
-
Java static 关键字 五种用法
但是静态方法还是有作用的,比如可以使用类名.方法名的方式操作方法,避免了要new对象的资源消耗,静态方法的应用在工具类中经常被使用到,同时在JDK8新特性(接口的增强)中,可以在接口中使用static去修饰的具体方法,从而使得接口拥有具体的方法。3、方法区所存放的类的信息可以说是类的定义,实例化的实际流程就是根据方法区中类的信息去实例化出具体的对象,然后将这个对象的存放在堆中。1、Student类型的局部变量s1和s2是存储在虚拟机栈中的,所储存的值是所指向对象的地址,该变量称为”引用”或”对象的引用”原创 2025-02-24 12:25:53 · 791 阅读 · 0 评论 -
JVM view(1)
Young GC 之前检查老年代:在要进行 Young GC 的时候,发现老年代可用的连续内存空间 < 新生代历次Young GC后升入老年代的对象总和的平均大小,说明本次 Young GC 后可能升入老年代的对象大小,可能超过了老年代当前可用内存空间,那就会触发 Full GC。连接(IO/数据)未释放:创建的连接不再使用时,需要调用 close 方法关闭连接,只有连接被关闭后,GC 才会回收对应的对象(Connection,Statement,ResultSet,Session)。原创 2025-02-24 08:44:07 · 870 阅读 · 0 评论 -
Linux udp poll函数
但是UDP是可以使用select/poll/epoll的,某些开源软件,比如FFmpeg内部使用了这些多路复用来处理UDP。2.服务器端要将地址和端口号绑定,如果不绑定就无法使用recvfrom函数接受数据(也就是说服务器需要调用bind函数将一个套接字与一个地址绑定,而客户端不需要)。从上面的代码可以看出来,上述UDP客户端和服务器都使用了poll函数监视文件描述符是否可读。所以如果阅读一份源码,要快速判断其是UDP服务器还是客户端,一个简单的方法是查看代码中是否调用了bind函数就可以了。原创 2025-02-14 12:24:29 · 843 阅读 · 0 评论 -
美团 字节 view
美团字节美团算法部分146. LRU 缓存机制912. 排序数组1114. 按序打印二叉树的前序遍历 (Leetcode)旋转图像 (Leetcode)剑指 Offer 10- II. 青蛙跳台阶问题19. 删除链表的倒数第 N 个结点155. 最小栈215. 数组中的第K个最大元素按奇偶排序数组 II (Leetcode)多数元素 (Leetcode)232. 用栈实现队列合并两个有序数组 (Leetcode)300. 最长递增子序列。原创 2025-02-13 13:13:06 · 350 阅读 · 0 评论 -
DeepSeek 人工智能 使用大全
它支持数十种语言的处理,无论是欧洲语言、亚洲语言还是非洲语言,DeepSeek 都能准确理解和生成相应的文本,这使得它能够满足全球不同地区用户的多样化需求,打破了语言交流的障碍。在人工智能技术日新月异的今天,DeepSeek 作为一款极具创新性和实用性的 AI,在众多同类产品中崭露头角,凭借其卓越的性能和丰富的功能,吸引了大量用户的关注。无论是初涉 AI 领域的新手,还是经验丰富的资深用户,都能通过上面分享的这些资源,不断挖掘 DeepSeek 的价值,提升自己在工作和学习中的效率。AI 指令合集大全;原创 2025-02-13 12:39:26 · 185 阅读 · 0 评论 -
JDK 17 和 JDK 21 在垃圾回收器(GC)上有什么优化?如何调整 GC 算法以提升应用性能?
本文将从 JDK 17 与 JDK 21 的垃圾回收改进出发,结合代码示例解析优化方案,并提供实际项目中的调优策略,帮助你提升应用性能。-XX:ShenandoahGCHeuristics=<策略> # 设置启发式策略(如 compact、static 等)-Xlog:gc*:file=gc.log:time,uptime,level,tags # 输出到文件。-XX:+UseShenandoahGC # 启用 Shenandoah GC。// 模拟分配大对象。原创 2025-02-12 17:01:26 · 682 阅读 · 0 评论 -
分布式系统 分布式锁 Redis
这是小卷对分布式系统架构学习的第12篇文章,今天学习面试中高频问题:分布式锁,为什么要做分布式锁,有哪些实现方式,各适用于什么场景等等问题分布式锁的特点:互斥:任意时刻,锁只能被一个线程持有高可用:锁服务本身是高可用的,一个节点出问题,能自动切换到另一个节点可重入:获取过锁的节点,可再次获取锁;超时机制:为了防止锁无法被释放的异常情况,需要设置超时时间,过了超时时间,锁自动释放;自动续期:如果任务处理时间超过超时时间,会出现任务未处理完成而锁释放的情况。原创 2025-02-10 12:38:54 · 435 阅读 · 0 评论 -
java List
首先导入java.util.List类,java.util.ArrayList类和java.util.Random类,分别用于处理列表和生成随机数,创建一个长度为10的整数数组number用于存储随机数,使用for循环,i小于数组的长度,将随机数存入数组number.创建一个ArrayList来存储整数,使用循环将number数组中的元素逐个加到list中,使用System.out.println方法将list内容打印。所谓有序,是指元素存入集合的顺序和从集合中取出的顺序是一致的。原创 2025-02-09 18:27:16 · 253 阅读 · 0 评论 -
java reflect 反射
而在反射操作中,需要通过字符串或其他标识符来指定要访问的方法或字段,JVM必须在运行时解析这些标识符,查找并确定对应的方法表或字段表条目,这一过程涉及到字符串比较、哈希查找、数组索引等操作,相对直接访问来说更为复杂且耗时。注解处理:反射可以帮助处理类、方法、字段上的注解,通过AnnotatedElement接口及其子接口(如Class、Method、Field)提供的方法,可以获取和操作注解信息,实现基于注解的配置、元数据驱动等功能。•调用invoke()方法会执行对应的方法,并返回方法的返回值。原创 2025-02-09 16:59:47 · 649 阅读 · 0 评论 -
Linux less shell
当用户执行less命令时,less命令会读取标准输入中的文本内容,并将其分页显示在终端窗口中。首先,less命令会获取终端窗口的大小,以确定每页显示的行数和列数。总之,less命令是Linux系统中一个非常常用的文本查看工具,其功能强大、易用性高,可以帮助用户快速查看和编辑文本文件。在实际使用中,需要熟练掌握less命令的用法和参数,以及其背后的原理和相关技术,才能更好地发挥其作用。Linux中的less命令是一个非常常用的文本查看工具,它可以用于查看任意大小的文本文件,支持滚动翻页、搜索、标记等功能。原创 2025-02-09 16:22:00 · 383 阅读 · 0 评论 -
jvm view
1、说说你了解的JVM内存模型2、简单说下你对JVM的了解3、说说类加载机制4、说说对象的实例化过程5、说说JVM的双亲委派模型6、说说JVM调优思路7、项目中有没有实际的JVM调优经验?7.1 CPU飙升7.2 GC调优8、请你说说内存溢出9、请你说说内存泄漏10、JVM中一次完整的GC流程是怎样的11、如何避免Full GC?12、说说JVM的垃圾回收机制13、说说GC的可达性分析算法14、说说JVM的垃圾回收算法15、说说七个垃圾回收器。原创 2025-02-09 16:08:41 · 904 阅读 · 0 评论 -
Redis 缓存数据库 缓存击穿/缓存穿透/缓存雪崩
比如,虽然数据库中没有id = 1022的用户的数据,但是在redis中对其进行缓存(key=1022, value=null),这样当请求到达redis的时候就会直接返回一个null的值给客户端,避免了大量无法访问的数据直接打在DB上。当redis中的大量key集体过期,可以理解为Redis中的大部分数据都清空 / 失效了,这时候如果有大量并发的请求来到,Redis就无法进行有效的响应(命中率急剧下降),也会导致DB先生的绝望。查询时,如果相应的位置均为1,则认为该数据存在于布隆过滤器中。原创 2025-02-09 15:51:20 · 743 阅读 · 0 评论 -
Netty入门
NIO是Java 1.4 后引入的基于事件模型的非阻塞IO框架,在NIO之前,对于数据的处理都是基于BIO(Blocking IO)的,闻其名知其意,BIO是以阻塞的形式来对数据进行处理的,虽然这种方式处理起来比较简单,但是由于其阻塞特性会涉及到线程的上下文切换操作,导致 BIO在高并发场景下略显吃力。数据从网络传输到IO复用层,IO复用层收到数据后将数据传递给通用数据处理层进行处理,这一层会通过一系列的处理 Handler 以及应用服务器对数据进行处理,然后返回给IO复用层,再通过它传回网络。原创 2025-02-09 14:21:45 · 693 阅读 · 0 评论 -
kubectl 命令详解
使用场景包括:在 Kubernetes 集群中增加或减少 pod、服务、部署等资源的副本数。使用场景包括:在 Kubernetes 集群中创建新的 pod、服务、部署等资源。使用场景包括:在 Kubernetes 集群中创建新的资源或更新已有的资源。使用场景包括:在 Kubernetes 集群中查看部署的滚动更新状态。使用场景包括:在 Kubernetes 集群中删除不再需要的 pod、服务、部署等资源。使用场景包括:在 Kubernetes 集群中修改已有的 pod、服务、部署等资源的配置。原创 2025-02-09 13:57:28 · 867 阅读 · 0 评论 -
new Integer(“127“) 和Integer.valueOf(“128“)
发现 128 超出范围后,Java 就会创建一个新的 Integer 对象,而不是使用缓存。六、结论虽然在给定的例子中(“127” 和 “128”),两种方法都会创建新对象,但它们的行为原因不同:new Integer(“127”) 总是创建新对象,无论值是多少。二、Integer.valueOf(“128”)创建一个新的 Integer 对象,值为 128。在实际应用中,除非特别需要新对象,否则推荐使用 Integer.valueOf() 或自动装箱,以便在可能的情况下利用缓存优化。原创 2025-02-06 20:22:28 · 404 阅读 · 0 评论 -
用 Docker Compose 部署 Redis MySQL RabbitMQ
通过 Docker Compose,我们可以轻松地管理这些服务的启动、停止和重启策略,同时确保它们的高可用性和数据持久化。这种配置方式不仅提高了开发和部署的效率,还确保了服务的高可用性和数据的持久化。在上述配置中,我们通过挂载本地目录到容器的特定路径,实现了数据的持久化。此外,通过挂载 /etc/localtime 文件,我们确保了容器内部的时间与宿主机保持一致,这对于日志记录和时间敏感的应用非常重要。如果你需要实时同步宿主机和容器之间的文件,并且宿主机上有现成的目录或文件,那么目录挂载是更好的选择。原创 2025-02-04 00:20:22 · 840 阅读 · 0 评论 -
Redis 缓存 & 分布式锁
将定期生成和实时生成结合一下,先通过“离线”的方式,通过统计的途径,先找到一些热点数据(这些数据并一定精准,有就行)导入到Redis中,就能帮助MySQL承担很大的压力,随之时间的推移,热点数据会逐渐调整,来使用当前情况;Redis服务器首次接入连接之后是没有数据的,此时所有的请求将在MySQL中(就怕此时MySQL没有抗住这么多请求挂了),那么随之时间的推移,Redis上的数据慢慢越来越多,MySQL承担的压力就会小很多;分布式系统中任何⼀个节点都是不可靠的. 最终的加锁成功结论是 “少数服从多数的”.原创 2025-02-04 00:02:36 · 568 阅读 · 0 评论 -
SpringAI 人工智能
在此背景下,Spring AI 作为一个企业级 AI 框架,提供了丰富的工具和机制,可以帮助开发者将 AI 模型无缝地集成到 Spring Boot 应用中,并支持大规模的部署和扩展。对于企业来说,Spring AI 的集成不仅降低了技术门槛,还提升了开发效率,为业务创新提供了强大的支撑。通过 Spring AI,开发者可以通过配置和注入的方式快速使用多种 AI 模型,避免了直接与不同厂商 API 的繁琐交互,同时也能够利用 Spring 生态的强大支持,确保在企业级应用中的可维护性、扩展性与可操作性。原创 2025-02-03 18:13:05 · 519 阅读 · 0 评论 -
kubectl常用命令
1、查看创建的状态,状态为Pending【准备中】,Running状态【已经创建成功】(1)回滚(回退到record中的上一个revision)(2)前后20行,并增加颜色。(2)显示日志最后200行。7、进入Pod对应容器内部。(3)显示过去2h的日志。8、查看该容器的所有状态。2、查看POD详细信息。6、查看service。原创 2025-02-02 18:56:38 · 193 阅读 · 0 评论 -
Elasticsearch 中文分词器
例如,拼音 “mā” 可以代表“妈”、“马”或“麻”,但用户搜索的汉字可能是“马”而不是“妈”,此时拼音搜索就会产生误差。“search_analyzer”: “ik_smart” // 搜索时使用 “ik_smart” 分析器进行分析(简化分词)“tokenizer”: “ik_max_word”, // 使用 “ik_max_word” 分词器,进行中文最大化分词。“keep_joined_full_pinyin”: true, // 保留拼音连在一起(例如“北京”变为“bj”)原创 2025-02-02 15:59:24 · 118 阅读 · 0 评论 -
Alibaba grpc Dubbo view
答:可以通信的,启动dubbo时,消费者会从zk拉取注册的生产者的地址接口等数据,缓存在本地。Dubbo 的 Provider 启动时,需要与注册中心交互,先注册自己的服务,再 订阅自己的服务,订阅时,采用了观察者模式,开启一个 listener。答: Dubbo 是一款高性能的 Java RPC 框架,是阿里巴巴公司开源的产品,用于提供高性能的分布式服务框架和面向服务的架构。答: Dubbo 的注册中心是用于服务的注册和发现的中心化管理平台,用于管理服务的元数据和服务的提供者。原创 2025-02-02 11:54:49 · 1126 阅读 · 0 评论 -
怎么阅读Tomcat源码
如:<Connector port=“80” protocol=“HTTP/1.1” maxThreads=“600” minSpareThreads=“100” maxSpareThreads=“500” acceptCount=“71”Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)-Xms JVM初始化堆的大小。原创 2025-02-01 09:58:35 · 158 阅读 · 0 评论 -
Elasticsearch Queries
这些查询子句可以是叶查询(Leaf Queries)或复合查询(Compound Queries),并且可以用于组合结果和分数、改变行为或从查询上下文切换到过滤上下文。接受多个查询,并返回匹配任何查询子句的文档。与 bool 查询合并所有匹配查询的分数不同,dis_max 查询使用单个最佳匹配查询子句的分数。返回匹配 positive 查询的文档,但会降低也匹配 negative 查询的文档的分数。包装另一个查询,但在过滤上下文中执行它。选择最佳匹配:使用 dis_max 查询选择最佳匹配的查询子句。原创 2025-01-31 18:07:07 · 666 阅读 · 0 评论 -
SpringBoot特性
Spring Boot通过starter机制将相关依赖打包在一起(例如:spring-boot-starter-web包含了spring-webmvc、jackson、tomcat等)强大的生态系统:Spring Boot 集成了 Spring 全家桶,提供了与 Spring 生态中各个组件的无缝集成,并通过各种 Starter 来快速添加第三方库支持。快速启动:Spring Boot 提供了简洁的配置和开箱即用的功能,减少了项目启动时所需的配置工作,开发者可以专注于业务逻辑。原创 2025-01-30 10:07:56 · 201 阅读 · 0 评论 -
Git 仓库命令
从暂存区删除一个文件。将更改推送到特定分支。原创 2025-01-29 09:47:31 · 453 阅读 · 0 评论 -
HDFS HADOOP分布式文件系统
如今,数据正以指数级增长,各行各业都在追求更多的数据存储、高效的数据处理和可靠的数据基础来驱动业务的发展。客户端是使用HDFS的应用程序。它的高可靠性、高扩展性和高效的数据访问方式,为处理大规模数据提供了强大的支持,并通过Shell操作和API操作,方便用户管理和操作存储在HDFS中的数据。在HDFS中,数据块是独立存储和处理的,较大的文件块能够在不同的计算节点上并行处理,从而减少整个作业的执行时间。在HDFS中,每个文件块都有一条元数据记录,较小的文件块可能会导致元数据记录数量增加,增加了存储的开销。原创 2025-01-21 08:50:36 · 962 阅读 · 0 评论 -
在线全科家教小学初高中 SpringCloud Alibaba Flink大数据 高可用kubernetes集群 AI人工智能云平台免中介费试听课开始啦
https://mp.weixin.qq.com/s/z22g5-MSgS1uOMb-trgx9w原创 2024-12-24 00:18:40 · 501 阅读 · 0 评论