前言在Java编程中,注解(Annotations)是一种重要的元数据(metadata)形式,它为代码提供了额外的信息,这些信息可以在编译时或运行时被处理。从Java 5开始,Java平台引入了一种新的特性——注解,它允许程序员为代码添加标记,而这些标记可以在编译时或运行时被读取和处理。Annotation(注解)是 Java 提供的一种对元程序中元素关联信息和元数据(metadata)的途径和
前言白天还好好的,晚上突然大暴雨,今年夏天雨水决堤了吗?最近在搞项目性能,是不是听起来挺厉害的,好吧!只是人家名词厉害,我不厉害(说起来也是造孽...)Java有很多非常有用的性能分析工具,所以今天开篇Java中性能分析工具。正文Java的性能分析工具主要是为了帮助开发人员诊断和解决性能问题。列举些常用的Java性能分析工具(看看有没有熟悉的,不熟也可以混个眼熟):JProfiler:JProfi
前言今天天气超好哦!本月打卡有点难哦!感觉一直没get到重要知识点。在中国信息通信研究院《人工智能生成内容(AIGC)白皮书(2022年)》中认为:结合人工智能的演进沿革,AIGC的发展历程大致可以分为三个阶段。正文超大规模、超多参数量的多模态大型神经网络将引领AIGC技术升级正在成为学界、产业界共识,如OpenAI DALL·E 2。OpenAI DALL·E 2OpenAI DALL·E 2是
前言好久不见!最近有点忙诶!认真摸鱼去了~继续AIGC工具的使用测评这个题(我真的会谢)因为前段时间,还是市面上超火的各种工具使用嘛,用完发现自己好落后,先收藏先收藏,莫名其妙的收藏了一大堆。正文AIGC是一种基于深度学习技术的语言模型,可用于生成自然语言文本回答。其实基本功能都大同小异。文本回答 AIGC工具的主要功能是根据用户的输入文本生成相应的回答。无论是简单的问题还是复杂的对话,AIGC都
前言一直下雨,什么时候出太阳,想要有太阳的日子。今天看到高考作文题,当然我说的是新课标I卷,人工智能啊!这届小朋友真的太难了,平时没好好上网,完了,看到题目也不会,能不能用 AI生成一篇(救救我~)正文打开文心一言前往体验,有两个不同版本,最近更新挺快的搜索问题,问答式连针对今年高考语文作文新课标I卷的主题为“人工智能”这一主题,也能提供一些写作方向和思路写一篇关于人工智能的论文,800字左右还能
前言星期二啦!总有快乐的日子吧!比如说马上就端午啦!三个感叹号是我的快乐,好喜欢吃粽子哦!软软糯糯,要是里面再多点肉就好了,嗷呜~我想吃两个,嘿嘿!那就端午节奖励自己吃三个。AIGC的工具非常丰富,涵盖了从文本生成、图像生成到音频、视频生成等多个方面。正文找了个AIGC工具导航平台,非常全面,有空可以试试哦~文本生成工具Nation AI:一款写作助手,可以自动生成文章、会议日程、新闻报道、社交媒
前言61过了,小朋友们也要继续快乐呀!那段 ChatGPT 很火的时候,身边不少朋友讲,假装很忙不搭理,哈哈哈!现在突然 get 到 ta 的快乐,真香定律!!! AIGC(Artificial Intelligence Generated Content) 生成式人工智能,涉世太浅,刚接触还是感觉其基本原理就是深度学习模型和扩散模型。正文技术开发类于我而言一直是神学,哈哈哈哈
前言早!下大雨,赶紧完工休息!从反射角度看 Java 属于半动态语言(歪头疑问脸)什么是动态语言?动态语言是指程序在运行时可以改变其结构:新的函数可以引进,已有的函数可以被删除等结构上的变化。比如常见的 JavaScript 就是动态语言,除此之外 Ruby,Python 等也属于动态语言, 而 C、C++则不属于动态语言。正文反射机制概念在 Java 中的反射机制是指在运行状态中,对于任意一个类
前言大暴雨呀!出门还开开心心的把窗户打开了,哦豁!水帘洞,真是巨大的“异常”行为,被自己日常操作气笑。正文异常:如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象,且这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。异常分类Throwable 是 Java 语言中所有
前言集合是长接触的,习惯了它的存在,可延伸的知识也很多,居然一时间不知道从哪说起。集合类存放于 Java.util 包中,主要有:Set、List 和 Map(映射)。概念比较多,例如:Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的数据。正文ListJava 的 List 是非常常用的数据类型
前言实在不合格,不会的知识太多了。昨天学习时有讲到双亲委派,查了很多相关资料,然后就看到了——OSGi(Open Service Gateway Initiative)面向Java 的动态模型系统,是Java 动态化模块化系统的一系列规范。正文OSGi 解决了什么?模块化构建系统,解决复杂的依赖性动态改变构造OSGi 服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使
前言近来可好?最近又开始下雨,小满!天气还挺讲究,四季分明。类加载器(Class Loader)负责将类的字节码加载到内存中,并将其转换为可执行的Java对象。它实现了动态加载类的机制,使得Java具备了灵活性和可扩展性。JVM 提供了 3 种类加载器:启动类加载器(Bootstrap Class Loader)扩展类加载器(Extension Class Loader)应用程序类加载器(Appl
前言星期五了,今天懒洋洋的,醒很早但赖床不想起,每天磨磨蹭蹭!嗷呜~它是一堆代码,我是一堆细胞人家那是艺术代码,我是一身细菌细胞一关机就消失的电子蝴蝶一抹杀就死亡的碳基生物嗯,超厉害!艺术创作脑洞极大,严谨又神秘,真想问问是如何写出这么优秀的文字,如何才能正确有效的学习,如何才能理解这些晦涩难懂的文字概念?一直在路上,一直在迷茫,是思考太少,不够细致?害!危险危险~学而不思则罔,思而不学则殆正文J
前言晴,这样的好天气真的像盲盒,好惊喜!今日学习IO/NIOIO 面向流、阻塞的。NIO 面向缓存、非阻塞的。正文Java NIO(New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的 IO API,可以替代标准的 Java IO API。NIO 与原来的 IO 有同样的作用和目的,但是使用的方式完全不同。NIO 支持面向缓冲区的、基于通道的IO操作。NIO将以
前言天气晴朗,万物可爱,今天心情十分愉悦!垃圾都被清理干净了,哈哈哈!多亏了 GC 垃圾收集器(我应该开号直播卖货)。Java 堆内存被划分为新生代和老年代两部分。新生代主要使用复制和标记-清除垃圾回收算法,老年代主要使用标记-整理垃圾回收算法。因此 Java 虚拟机针对新生代和老年代分别提供了多种不同的垃圾收集器。如果两个收集器存在关联可以搭配使用:正文Serial 垃圾收集器Seri
前言要养成习惯了,打开电脑第一件事,给自己 new 个对象。Object obj = new Object();我们没办法直接去修改堆内存中的对象,所以我们可以通过引用,找到堆内存进而进行修改。Java种的四种引用类型强引用 软引用 弱引用 虚引用 正文强引用把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的, 即使
前言周一愉快!继续接着上一篇延伸知识点(想到哪学到哪)GC(Garbage Collection)用于自动管理内存。在Java中,开发人员不需要手动分配和释放内存,因为 GC 负责监测内存中不再使用的对象,并将它们自动回收以释放内存资源。这样可以减少内存泄漏和程序崩溃的风险,但同时也会引入一些性能开销。GC的基本原则: 频繁收集新生代 ,较少收集老年代 ,基本不动元空间 正文已经听过很多遍垃圾回收
前言为什么突然单独提出堆区(Heap)?主要是Java堆可以从 GC 角度细分,涉及 GC (Garbage Collection, 垃圾收集器) 执行垃圾回收的重点了解一下。正文《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。(我没看过这本书,要全局搜索一下看是否真的有这句话,日常写文章要严谨)堆是Java内存管理的核心区域。堆在JVM启动
前言白天出太阳,晚上下大雨,救命!这天气好懂事~想出门玩,想出门玩,大脑疯狂叫嚣!!!正文回顾正题!我们来了解JVM 内存区域(不同的JDK版本内存结构有点变化,具体可以自己研究JDK7和JDK8。不行!忍不住,我要放个图)JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】 线程共享区域【JAVA 堆、方法区】 直接内存看图来讲的话,要不然我们扯一下与线程的关系?线程私有区域
前言今年雨有点大,连续暴雨天着实让人不舒服,开始发霉!讲线程,又讲线程,线程都讲腻了(可还是不懂,我哭死~)线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。 一个进程可以有很多线程,每条线程并行执行不同的任务。这这这......这就是传说中的“高并发多线程” 完了!感觉头皮有点痒,要长脑子了。哈哈哈哈哈~言归正传,虽然 “高并发多线程”总是被一
前言好久不见!都2024年5月了,一开年就忙,其实回想也不算很忙,就找了很多事把自己困住,闲的时候太跳脱,脑子飞速运转想一堆乱七八糟的事,头痛的厉害,所以忙起来好点。今日主题——JVM。正文基本概念JVM【Java Virtual Machine】可运行Java代码的“假想”计算机,为什么用上假想这个词?因为它是虚构的,是通过在实际计算机上,仿真模拟各种计算机功能来实现,另称Java虚拟机。引入J
前言降温了,连学习都懈怠了,再复习一遍数据结构。数据结构我们先列出最常用的数据结构。数组、栈、队列、链表、树、哈希表...好吧!先这些吧,多了也记不住。数组数组(Array)大概是最简单,也是最常用的数据结构了。其他数据结构,比如栈和队列都是由数组衍生出来的。这个就是1 个数组,它有 4 个元素【1,2,3,4】每一个数组元素的位置由数字编号,称为下标或者索引(index),大多数编程语言的数组第
线上接口负载剧增,快扛不住了,你的首选方案是什么遇到这样的问题,我们的第一反应应该是增加缓存。因为,增加缓存是解决系统性能问题最快速、最高效的方案,它能够快速提升系统的线性吞吐量,效果也最为明显。这就相当于是用空间来换取时间。曾经有人说过,缓存是解决性能问题的万金油,哪里存在性能瓶颈,就往哪里加缓存。但是程序都已经上线了,增加缓存还来得及吗?因为在增加缓存时需要改代码,所以,临时解决方案就是增加节
前言今天主题是悲观锁和乐观锁,很常见的话题了,但是记录一下吧!每个人想法不一样,讲的多少也会不一样,大家随便听听就好,有问题欢迎评论,我是个知错就改的好孩子。今天就来简单了解一下使用场景接下来我们了解一下两种锁的使用场景,其实两种锁各有优缺点,所以合适的场合用适合的锁,像乐观锁适用于写比较少的情况下(多读场景)大概就是冲突真的很少发生的时候,这样就可以使用乐观锁,可以省去锁的开销,加大了系统的整个
你平时是怎么查看日志的?真是个好问题,其实Linux查看日志的命令有很多种: tail、cat、head、more等,当然,我们只需要了解几种常用的方法就好了。tailtail [OPTION]... [FILE]...举个例子,例如:# 查询日志尾部最后10行的日志;tail -n 10 test.log# 查询10行之后的所有日志;tail -n +10 test.log#
前言为什么使用MQ?其主要核心就是解耦,异步,削峰。MQ优点解耦A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃......A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。这个时候如果你使用 MQ,A 系统产生一条数据,发送到 MQ 里面
生产环境服务器变慢,如何诊断处理项目上线之后,运行一段时间就会碰道生产环境服务器变慢,生产环境服务器变慢的原因是什么呢?这个就是今天的主题,接下来我从以下3个维度简单了解一下:CPU利用率、磁盘I/O效率、内存瓶颈。1. CPU利用率CPU利用率过高或者CPU利用率过低,都会影响程序的处理效率。CPU利用率过高,说明当前服务器要处理的指令比较多,当CPU忙不过来的时候,指令的运行效率自然就会下降,
线上服务器CPU飙升,如何定位到Java代码这个问题的关键是要找到Java代码的位置。那要如何正确的找到代码位置呢?总结一下简单排查思路。第1步,使用top命令找到占用CPU高的进程。top命令 在使用top命令之后,可以看到一个列表。 PID(进程ID)、USER(操作用户)、CPU占用率、内存占用率、 TIME+(运行时间)、COMMAND(运行命令)等信息。 一般默认按CPU占用率从上到下
1、你知道的 List 都有哪些? ArrayList、LinkedList、Vector 等。 2、List 和 Vector 有什么区别?Vector 是 List 接口下线程安全的集合。 3、List 是有序的吗? List 是有序的。4、ArrayList 和 LinkedList 的区别?分别用在什么场景? ArrayList 和 LinkedList 数据结构不一样,前者用在查询较多的
1、什么是 Nginx? Nginx 是一个 web 服务器和反向代理服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。2、请列举 Nginx 的一些特性。 Nginx 服务器的特性包括: 反向代理/L7 负载均衡器 嵌入式 Perl 解释器 动态二进制升级 可用于重新编写 URL,具有非常好的 PCRE 支持 3、请解释 Nginx 如何处理 HTTP 请求。 Ngin
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号