文档备案控制台登录立即注册
首页
AI 大模型体验中心AI 大模型体验中心AI 大模型体验中心
动手实验室动手实验室动手实验室
Agent 评测集Agent 评测集Agent 评测集
AI 案例广场AI 案例广场AI 案例广场
学习中心
社区
去发布
首页
AI 大模型体验中心AI 大模型体验中心AI 大模型体验中心
动手实验室动手实验室动手实验室
Agent 评测集Agent 评测集Agent 评测集
AI 案例广场AI 案例广场AI 案例广场
学习中心
社区
后台技术汇
后台技术汇
文章
专栏
问答
后台技术汇
后台技术汇
探寻内部类的奥秘(下)
技术社区
书接上回:《探寻内部类的奥秘(上)》,今天我们继续研究:四种内部类的定义与使用,继承机制对内部类的影响,以及内部类的底层编译原理。在定义内部类的时候,可以在其前面加上一个权限修饰符 static。此时这个内部类就变为了静态内部类。Nested classes are divided into two categories: static and non-static. Nested classes
80
3
0
3
后台技术汇
后台技术汇
探寻内部类的奥秘(上)
在此之前,我们需要了解,内部类与组合是完全不同的概念,虽然它看起来像是一种代码隐藏机制,但其实内部类是了解外围类,并且能与之通信。下面,我们深刻探讨内部类的用法与底层原理。​内部类的定义:将一个类的定义放在另一个类的定义内部,我们称之为内部类。​内部类可以分为四种:成员内部类:和成员变量一个级别局部内部类:在方法里的内部类(方法域内生效 或者 方法内某一段代码块域内生效)匿名内部类:基本上属于接口
87
3
0
3
后台技术汇
后台技术汇
您的《操作系统线程模型总结》请查收。
技术社区
各种操作系统均提供了线程的实现(内核线程),线程是 CPU 进行工作调度的基本单位。线程是比进程更轻量级的调度执行单位,线程的引入,可以把一个进程的资源分配和执行调度分开,各个线程既可以共享进程资源(内存地址、文件 I/O 等),又可以独立调度(线程是 CPU 调度的基本单位)。而编程语言一般都会提供操作内核线程的 API, Java 也不例外。操作内核线程的模型主要有如下三种:使用内核线程(1:
175
3
0
3
后台技术汇
后台技术汇
你需要的 Docker 知识点都在这里了。
技术社区
Docker 的操作围绕镜像、容器、仓库三大核心概念。下面我们通过围绕四个问题:1、容器是什么;2、容器与虚拟机的区别;3、Namespace 技术是什么;4、Docker 的三个核心概念是什么;来入门掌握 Docker。容器: 在 Linux 中,容器技术是一种进程隔离的技术,应用可以运行在一个个相互隔离的容器中,与虚拟机相同的是,可以为这些容器设置计算资源限制,挂载存储,连接网络,而与虚拟机不
166
3
0
3
后台技术汇
后台技术汇
说说常常被研发忽略的原型模式
技术社区
创建型模式是用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其他关联对象的创建、组合和表示方式。原型模式目的:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,进而减少在创建新对象上的性能开销。原型模式也是创建型的设计模式之一,本文是设计模式系列(共24节)的第 4 篇文章。设计模式都从六大原则出发进行总结:《第一节:设计模式的六大原则》创建型设计模式共 5 种:单例模式(
112
3
0
3
后台技术汇
后台技术汇
单例模式原来是这么简单?!
技术社区
创建型模式是用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其他关联对象的创建、组合和表示方式。单例模式目的:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式也是创建型的设计模式之一,本文是 设计模式系列(共 24 节) 的第 2 篇文章。设计模式是基于六大设计原则进行的经验总结:《第一节:设计模式的六大原则》创建型设计模式共 5 种:单例模式(Singleton Patt
93
3
0
3
后台技术汇
后台技术汇
怎么才能摸透 String 类的底层原理?看完这篇你就懂了
技术社区
String 是日常开发非常频繁的类,此外我们常用的操作还有字符串连接操作符等等。String 对象是不可变的,查看 JDK 文档,我们不难发现 String 类的每个修改值的方法,其实都是创建了一个新的 String 对象,以包含修改后的字符串内容。我们分析 String 源码,除了要理解它提供的方法是如何被使用,如果结合 JVM 内存结构的设计思路来一起分析,可以举一反三。开讲前,我们先回顾下
230
3
0
3
后台技术汇
后台技术汇
还不清楚 Lambda 的底层原理?一文帮你搞懂
技术社区
Lambda 和 Stream 是 Jdk1.8 中引入的两个重要特性。Lambda 是函数式编程,可以将匿名方法像参数一样传递,本章节将从 4 个方面来介绍 lambda:Lambda 基础语法、Lambda 表达式的应用层面、Lambda 的字节码源码 以及 优缺点性能。开讲前,我们先回顾下 JVM 的内存管理结构,这节我们会涉及到方法区:程序计数器(Program Counter Regis
364
3
0
3
后台技术汇
后台技术汇
就这?Object 类一点不难理解
技术社区
Object 类是一个比较特殊的类,是所有类的超级父类,java 中如果一个类没有用 extends 关键字 明确指出继承于某个类,那么它默认继承 Object 类。下面我们一起分析这个默默被所有类所继承的 Object。Object 类是 Java 中所有类的父类,作为最重要的基类,它提供了 12 个默认实现方法(jdk8)。在解析每个方法的功能实现和用途之前,我们需要理解几个概念:Monito
91
3
0
3
后台技术汇
后台技术汇
Kafka基础原理总结
技术社区
项目开发中,很多应用场合都会出现对 kafka 的应用,比如,不同的微服务 DB 数据同步、服务间的异步通知等等。笔者在此做个系统的总结,方便日后复习,希望对大家的面试笔试都有帮助。1)下载安装包,解压安装包,eg:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.12-2.6.0.tgz2)检查修改配置文件,安装包的解
110
3
0
3
后台技术汇
后台技术汇
一文读懂 HTTP 协议的昨天,今天与明天
技术社区
HTTP,Hypertext Transfer Protocol,超文本协议,是在万维网上传输文件(如文本、图形图像、声音、视频和其他多媒体文件)的规则集。如果 web 用户打开他们的 web 浏览器了,其实该用户就间接地利用到了 HTTP。HTTP (Hypertext Transfer Protocol) is the set of rules for transferring files, 
337
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:反射机制勿滥用
技术社区
给定一个 Class 实例,我们可以获得 Constructor(构造器)、Method(方法)和 Field(域),而这些对象提供了“通过程序来访问类的成员变量、域类型、方法签名等信息”的能力。通过调用 Constructor、Method、Field 实例上的方法,可以:构造底层类的实例、调用底层类的方法、访问底层类中的域。例如,Method.invoke 使你可以调用任何类的任何对象上的任何
575
4
0
3
后台技术汇
后台技术汇
Java 程序经验小结: 慎用可变参数
技术社区
在 Java1.5 发行版中,加入了可变参数列表方法,称为 variable arity method(可匹配不同长度的变量的方法)。可变参数机制:通过创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。我们通过例子简单了解可变参数的使用:复制代码再看一个例子,我们可以在代码运行时检测可变参数数组长度:复制代码上面实现了获取可变参数列表的最小值,但有
83
3
0
3
后台技术汇
后台技术汇
一文带你读懂:设计模式的六大原则
技术社区
因此在学习设计模式之前,我们先回顾六大原则,它们分别是:单一职责原则(Single Responsibility Principle)开闭原则(Open Closed Principle)里氏替换原则(Liskov Substitution Principle)迪米特法则(Law of Demeter),又叫“最少知道法则”接口隔离原则(Interface Segregation Principl
320
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:避免使用终结方法
技术社区
终结方法(finalizer)通常是不可预测的,也是危险的,一般情况下是不必要的。使用终结方法会导致行为不稳定,降低性能,以及可移植性问题。但终结方法也有其可用的地方,详见下文。在 java 中,终结方法一般会结合 try-finally 块来一起使用,在 finally 子句内部调用终结方法。不要被 System.gc 和 System.runFinalization 这两个方法所诱惑,它们确实
85
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:接口优先于反射机制
技术社区
给定一个 Class 实例,我们可以获得 Constructor(构造器)、Method(方法)和 Field(域),而这些对象提供了“通过程序来访问类的成员变量、域类型、方法签名等信息”的能力。通过调用 Constructor、Method、Field 实例上的方法,可以:构造底层类的实例、调用底层类的方法、访问底层类中的域。例如,Method.invoke 使你可以调用任何类的任何对象上的任何
56
3
0
3
后台技术汇
后台技术汇
简单五步:利用 Gitstats 给代码仓库做一次体检
技术社区
对于 Git 项目开发,有一些可视化的工具,如 gitk,giggle 等,来查看项目的开发历史。但本文主要讲解 gitstats 的部署和效果,对于需要写工作总结报告的同事,相信这个工具可以帮助你们在工作量数据栏上添砖加瓦。gitstats 是一个 git 仓库分析软件,可以帮助你查看 git 仓库的提交状态,根据不同维度分析计算,并自动生成数据图表。GitStats 所生成统计信息常用分为如下
274
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:消除 GC 触及不到的过期对象引用
技术社区
因为 JVM 提供了自动管理内存的能力,当我们用完了对象之后,它们会被自动回收,这也容易让我们产生“开发者不再需要考虑内存管理”的错觉了,其实不然。上面提到,即使 JVM 为我们提供了垃圾回收器,将没用的对象回收以节省内存使用。下面我们通过一个例子,意识到内存泄露的存在:复制代码上面程序段隐藏着一个“内存泄露”的问题:随着垃圾回收器活动的增加,或者由于内存占用的不断增加,程序性能的降低会逐渐表现出
164
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:返回零长度的数组或集合,而不是 null
技术社区
对于一个返回 null 而不是零长度数组或者集合的方法,客户端几乎每次用到该方法都可能会忘记写专门处理 null 返回值的代码,进而导致 NPE。有时候会有程序员认为:null 返回值比零长度数组更好,因为它避免了分配数组所需要的开销,但这种观点站不住脚。在返回值这种级别上担心性能问题是不明智的,除非分析表明这个方法是造成性能问题的真正源头返回空数组,可以使用集合实现类的 toArray()方法,
121
3
0
3
后台技术汇
后台技术汇
Java 程序经验小结:性能优化手段之避免创建不必要的对象
技术社区
一般来说,最好能重用对象,而不是在每次需要的时候创建同一个相同功能的新对象。重用对象是快速又高效的一种编码手段。本节讨论的目标:就是如何优化已经出现重复创建对象的代码块,以达到优化性能。本文属于《读懂 Effective Java》系列文章,本系列文章的大纲如下:《Effective Java 第3条:用私有构造器或者枚举类型强化Singleton属性》《Effective Java 第4条:通过
231
3
0
3