原子类Java从JDK 1.5开始提供了java.util.concurrent.atomic包(以下简称Atomic包),这个包中的原子操作类提供了一种用法简单、性能高效、线程安全地更新一个变量的方式。 因为变量的类型有很多种,所以在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是原子更新基本类型、原子更新数组、原子更新引用和原子更新属性(字段)。 Atomic包里的类基本
转载 2023-09-22 21:56:22
24阅读
JavaCompileJava compile是一个自动增量/全量编译java的api接口应用。包含以下特性:全量编译增量编译svnkit接口(svn操作web接口)全流程使用案例JavaCompile说在最前面的话开发状态原理快速开始使用示例功能说明Java compile实现逻辑目标增量编译实现全量编译实现开发计划(TODO)说在最前面的话本人只是一枚从事运维6年的老兵,从今年年初一直在构建自
转载 2023-08-02 08:35:13
178阅读
项目需要做java增量构建和部署。基本方案很简单。构建:通过git diff拿到方法体变化的java类,绕过maven,直接使用同版本的javac编译出class文件。部署:基于java-instrument技术,采用attach的方式对方法体变化的class进行retransform。问题:  某些类在retransform的时候总是会报如下类似错误。有时是add a method,
转载 2023-08-21 18:07:06
175阅读
目录一、大数加法二、大数减法三、大数乘法四、大数除法五、大数模取余六、模加 一、大数加法/** * 大数加法 * @param one 加数 * @param two 加数 * @return 结果 */ public static String Add(String one,String two) { if(one.equals("0")) //加数中
转载 2023-09-22 17:16:28
60阅读
 并发包Java中还有一套并发工具包,位于包java.util.concurrent下,里面包括很多易用且很多高性能的并发开发工具。一、原子变量和CAS为什么需要原子变量,因为对于例如count++这种操作,使用synchronized成本太高了。Java并发包的基本原子变量有:AtomicBoolean、AtomicInteger、AtomitLong和AtomicReference(
更新工具使用指南起因java web 上正式的时候总是会需要更新代码,但是要求不能全量更新代码,只能提供增量更新包,减少不必要的更新。但是呢,自己修改的文件那么多,怎么破,一个个的找出来,新建文件夹,按位置放好,这种做法不是我们这群懒人的方式,我们要的都是一键解决问题。因此有了这个项目原理本地篇主要使用文件的lastModified()方法获取文件的最后修改时间,然后把最后编译的文件小于设定的时间
转载 2024-01-20 19:33:40
50阅读
需求缘起很多情况下,项目是不允许全量发布的,所以你得把有做修改的文件一个个挑出来,如果有成千上百的文件,你是不是要头大了? 前提是你是用装有svn plugin的eclipse上做开发。 这样减少了一些琐碎,重复,没有任何技术含量的工作了,避免开发人员的宝贵时间浪费在一个个挑增量文件的痛苦中。下面会介绍利用svn的增量补丁文件如何实现自动化增量打包的原理及实现方法解决方法实现原理讲简单点,主要包括
转载 2023-11-02 09:09:14
90阅读
Play 的源码一般在 framework\src 目录下面。Java 文件的编译在 play.classloading.ApplicationClassloader 类中实现,模板的编译在 play.templates.TemplateLoader 类中实现。修改这两个文件就可以实现 Java 文件和模板文件的增量编译。这里以 play 1.4.5 为例。一、思路建个 play 项目,将 pla
转载 2023-06-13 13:44:35
219阅读
文章目录Jenkins CI/CDNoSQL 非关系型数据库MongoDB开源数据库系统解释型语言 与 编译型语言 的区别 Jenkins CI/CDJenkins = git 、 jdk、tomcat、maven打包、测试 是一个开源的、提供友好操作界面的持续集成(CI)工具,主要负责将代码 编译 打包 上传 部署到Tomcat; 通过给定的代码地址URL(代码仓库地址)、将代码拉取到“宿主服
Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。Atomic包介绍官方解释:一个小型工具包,支持单变量上的无锁线程安全编程。
转载 2024-01-30 06:31:50
43阅读
持续集成之增量发布 jenkins 提供了持续集成的功能,但是并没有提供增量发布的功能(也许是我没有找到合适的插件的原因)。但是jenkins提供了比较完备的自主集成的接口,可以在jenkins基础上实现自己发布的要求1.  增量发布流程 2.  准备工作进入到jenkins的系统配置在系统配置中,需要配置  内容有 jdk路径
转载 2023-08-21 13:32:06
144阅读
一次聊天,谈到了死锁的解决、可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出。痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景。第一类:原子操作类的atomic包,里面包含了1)布尔类型的AtomicBoolean2)整型AtomicInteger、AtomicIntegerArray、AtomicIntegerFieldUp
1 package gys; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileInputStream; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOE
转载 2023-07-19 12:55:10
132阅读
目录概述准备源码增量打包编译后的文件增量打包指定文件复制概述    由于大多的生产环境都采用的是增量发版,因此需要把把改变的代码打包,本文采用的是使用Java代码对SVN上的更新记录选择后进行打包准备    到项目的SVN管理出找到历史更新记录,选择要打包的记录然后生成变更到本地即可,需要注意存放的位置源码增量打包package xxx.xxx.xxx.pr
半成品java增量更新打包编译工具因为生产代码在迭代更新过程中,对代码的管理不善,使我对现有代码是否与生产一致产生了极大的怀疑,为避免全量更新影响其他业务,我决定写一个通过svn的文件清单来对我自己改动过的代码进行自动提取,编译,打包的工具。编码前我不想要做成配置的形式,因此我用稍微学习了下现阶段常用的java客户端编程工具JavaFx。##界面预览 如图所示, 更新清单:你需要打包的的增量更新。
转载 2023-07-18 16:32:17
57阅读
应用部署是开发、测试、上线必须面对的一个过程,尤其是微服务架构的出现,运维部署从单体的部署逐渐脱离出,并且越显复杂。然而,抛开多语言,多环境,集群,分布式的部署之外。就单单讨论增量部署和全量部署1. 增量和全量部署部署,除却项目初始化部署,最理想的情况即为:新版本更改哪些内容则更新哪些内容1.1 增量部署1.1.1 增量部署简介 增量部署一般指在每次部署过程中首先提取当前版本和即将部署版本之间的增
1 packagegys;2 3 importjava.io.BufferedReader;4 importjava.io.File;5 importjava.io.FileInputStream;6 importjava.io.FileReader;7 importjava.io.FileWriter;8 importjava.io.IOException;9 importjava.io.Inp
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。官方网址:https://jenkins.io/zh/下载地址:https://jenkins.io/download/下载类型:.war一、安装1.Windows 服务安装(下载上图中的Windows版本)直接安装即可。2.Tomcat 部署安
小Hub领读:脚本代码这么多,不是运维可能会真不会写哈哈。普通人用jenkins全量挺好的,但是代码过多时候就比较麻烦,而且jenkins一般也要配合脚本使用更加符合业务。 应用部署是开发、测试、上线必须面对的一个过程,尤其是微服务架构的出现,运维部署从单体的部署逐渐脱离出,并且越显复杂。然而,抛开多语言,多环境,集群,分布式的部署之外。就单单讨论增量部署和全量部署1.增量和全量部署部
前言: 打增量包的目的是快捷打包出项目两次更新版本之间的差异文件(除了打包出新增文件,还能打包出原有已经被改变的文件)。问题1: 打包出这些增量文件有什么作用? 答:快速部署这些增量文件到tomcat的webapps文件夹对应的项目中。进行增量部署。问题2: 打包的工具是什么? 答:用svn插件,百度一下MyEclipse如果安装SVN插件。自己装好继续下一步。流程如下:1、前提存在一个项目。然后
转载 2023-09-04 20:04:09
64阅读
  • 1
  • 2
  • 3
  • 4
  • 5