注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。注解是一种元数据,注解本身对被标注的代码没有任何直接的影响,它为程序提供了一些额外的数据信息,注解通常使用在如下场景 为编译器提供信息:编译器可通过注解去探测错误或者压制警告,如@Deprecated @SuppressWarnings("unchecked") 编译时处理:在程序编译时,
文件操作 java.io.File是Java提供的专门针对文件操作的类,File是文件与目录路径的一种抽象表示,用于操作文件与目录,不能操作文件内容。 构造File对象 一个File对象通常表示磁盘上一个真实存在的文件或目录,创建File对象时,无论对应的文件与目录是否存在,不会影响File对象
前言 为什么需要自动化构建工具 一个Java项目要部署上线,最简单的构建过程都要经过编译、打包,项目比较少并且互相没有依赖时,我们可以手动调用javac命令编译java源文件,调用jar命令将class文件打包,当工程项目非常多, 并且很多有依赖关系,甚至一些复杂的项目还有很多流程需要处理,如J
Maven引入了生命周期模型,对项目的整个构建过程进行了抽象和统一。Maven定义了三种类型的生命周期分别用于完成不同的工作,分别是default、clean、site,每种生命周期都是由不同的一系列过程阶段组成。 生命周期类型 clean生命周期 该生命周期主要用于清理项目相关资源文件,它包含
首先通过maven交互式命令创建一个项目进行讲解,groupId一般为公司或者组织域名的倒排,如 com.example.course,artifactId为项目工程名,如course-demo01。 mvn archetype:generate 创建完成后查看项目pom.xml文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 添加依赖 如现在需要将google的gu
Javac编译 javac命令几个常用的选项 -classpath 指定依赖的class文件搜索路径 -sourcepath 指定依赖的源文件搜索路径 -d 指定编译后的class存放目录,这个目录必须提前建好 -extdirs 指定第三方依赖包,如jar、zip搜索目录 -encoding 指定源文件编码 如UTF-8 下面以简单的java项目进行操作说明,所有命令操作都在项目根目
实现原理 通过WebSocket实现Kubernetes Exec命令行终端,我们需要提供一个http server,前端页面首先请求http server,http server与k8s api server交
在公司办公网访问kubernetes.io官方网站非常慢,为方便工作与学习,可以将其在本地进行部署,快速阅读。kubernetes.io项目git地址: https://github.com/kubernetes/website 。 许多开源技术文档均采用Markdown编写,docker、kubernetes也不例外,之后再采用网站生成器Hugo生成静态html进
了解AQS实现原理之后,再来分析ReentrantLock代码就非常简单了,在学习互斥锁之前很有必要搞清楚可重入锁、公平锁、非公平锁几个概念。 什么是可重入锁?线程成功获取锁之后,可以多次进入临界区访问资源,ReentrantLock就是一种可重入锁,其可重入的实现依赖于AQS的父类AOS,
JUC是Java中并发控制的核心包,其中AQS是并发的基础核心类,类名全称AbstractQueuedSynchronizer,其父类是AbstractOwnableSynchronizer(AOS), 用于存取获得独占锁的线程。Java中的ReentrantLock、CountDownLa