Spire.Cloud.SDKforJava提供了TextRangesApi接口可通过addTextRange()添加文本、deleteTextRange()删除文本、updateTextRangeText()替换文本、updateTextRangeFormat()格式化文本等。本文将从以上方法介绍如何来实现对文本的操作。可参考以下步骤进行准备:一、导入jar文件创建Maven项目程序,通过maven仓库下载导入。以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的依赖,如下:<reposi...
继续阅读 >
分类:java
本文介绍使用Spire.Cloud.SDKforJava提供的ImagesApi接口来操作Word中的图片。具体可通过addImage()方法添加图片、deleteImage()方法删除图片、updateImageFormat()格式化Word中的图片以及getImageFormat()获取Word中的图片格式等。操作方法和代码示例可参考下文中的步骤。步骤1:导入jar文件创建Maven项目程序,通过maven仓库下载导入。以IDEA为例,新建Maven项目,在pom.xml文件中配置maven仓库路径,并指定spire.cloud.sdk的...
继续阅读 >
2020
10-08
10-08
浅谈Java并发编程之Lock锁和条件变量
简单使用Lock锁 Java5中引入了新的锁机制——java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作。Lock接口有3个实现它的类:ReentrantLock、ReetrantReadWriteLock.ReadLock和ReetrantReadWriteLock.WriteLock,即重入锁、读锁和写锁。lock必须被显式地创建、锁定和释放,为了可以使用更多的功能,一般用ReentrantLock为其实例化。为了保证锁最终一定会被释放(可能...
继续阅读 >
2020
10-08
10-08
详细分析JAVA8新特性 Base64
BASE64编码是一种常用的字符编码,在很多地方都会用到。但base64不是安全领域下的加密解密算法。能起到安全作用的效果很差,而且很容易破解,他核心作用应该是传输数据的正确性,有些网关或系统只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法,而且base64特别适合在http,mime协议下快速传输数据。JDK里面实现Base64的API在JDK1.6之前,JDK核心类一直没有Base64的实现类,有人建议用Sun/Oracle...
继续阅读 >
2020
10-08
10-08
详解Java实现LRU缓存
LRU是LeastRecentlyUsed的缩写,翻译过来就是“最近最少使用”,LRU缓存就是使用这种原理实现,简单的说就是缓存一定量的数据,当超过设定的阈值时就把一些过期的数据删除掉,比如我们缓存10000条数据,当数据小于10000时可以随意添加,当超过10000时就需要把新的数据添加进来,同时要把过期数据删除,以确保我们最大缓存10000条,那怎么确定删除哪条过期数据呢,采用LRU算法实现的话就是将最老的数据删掉,废话不多说,下面来...
继续阅读 >
2020
10-08
10-08
深入了解Java ServletContext
什么是ServletContext?根据字面意思即Servlet上下文服务器会为每一个工程创建一个对象,这个对象就是ServletContext对象,这个对象是全局唯一的,工程内部的所有servlet都共享这个对象,所有应用程序共享对象下面用一段简单的代码来证明一下importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet....
继续阅读 >
2020
10-08
10-08
Java开发实现猜拳游戏
本文实例为大家分享了Java实现猜拳游戏的具体代码,供大家参考,具体内容如下一、问题简介通过控制台方式实现一个人机对战的猜拳游戏,用户通过输入(1.剪刀2.石头3.布),机器随机生成(1.剪刀2.石头3.布),胜者积分,3局以后通过积分的多少判定胜负。二、代码逻辑简介1、向用户解释比赛规则;2、接收用户输入的内容并判断用户输入的内容是否符合要求,如果不符合,重新输入。3、电脑自动生成数字;4、根据电脑和用户输入的内容...
继续阅读 >
2020
10-08
10-08
Java开发实现人机猜拳游戏
本文实例为大家分享了Java开发实现人机猜拳游戏的具体代码,供大家参考,具体内容如下猜拳游戏游戏规则:人和电分别出剪刀、石头、布,直到人战胜电脑,游戏结束。整体分析:1、总体是一个循环->>>(while循环终止条件是人战胜电脑,break;)2、人的出拳数字从键盘获得->>>(Scanner)3、电脑的出拳数字随机产生范围是(1,2,3)->>>Math.random()4、出拳的数字转换为文字->>>switch选择,不同case,更改String的值5、判断输赢...
继续阅读 >
2020
10-08
10-08
Java mybatis常见问题及解决方案
我们建立目录时一定得是这个格式java中的目录结构和resource中的机构一定要一样,这是为了配置文件能准确映射到相应注意看我的Java中有一个方法july.wild.dao.IUserDao,在resources中也有一个配置文件july/wild/dao/IUserDao.xml注意这个写法,不能变,因为我们在java目录下创建的是子包,而在resources目录下创建的时子目录,如果改了就会有提示找不到文件当因为maven版本问题时:maven报错:不再支持源选项5。请使用7或...
继续阅读 >
2020
10-08
10-08
简述JAVA同步、异步、阻塞和非阻塞之间的区别
同步和异步,阻塞和非阻塞是大家经常会听到的概念,但是它们是从不同维度来描述一件事情,常常很容易混为一谈。1.同步和异步同步和异步描述的是消息通信的机制。同步当一个request发送出去以后,会得到一个response,这整个过程就是一个同步调用的过程。哪怕response为空,或者response的返回特别快,但是针对这一次请求而言就是一个同步的调用。异步当一个request发送出去以后,没有得到想要的response,而是通过后面的callback...
继续阅读 >
2020
10-08
10-08
Java多线程锁机制相关原理实例解析
上下文:程序运行需要的环境(外部变量)上下文切换:将之前的程序需要的外部变量复制保存,然后切换到新的程序运行环境系统调用:(用户态陷入操作系统,通过操作系统执行内核态指令,执行完回到用户态)用户态——内核态——用户态:两次上下文切换线程wait()方法:将自身加入等待队列,发生了一次上下文切换notify()方法:将线程唤醒,也发生了上下文切换Java线程中的锁:偏向锁、轻量级锁、重量级锁。注意:偏向锁和轻量级锁都...
继续阅读 >
2020
10-08
10-08
Java利用Phantomjs实现生成图片的功能
今天,给大家分享一个Java后端利用Phantomjs实现生成图片的功能,同学们使用的时候,可以参考下!PhantomJS简介首先,什么是PhantomJS?根据官网介绍:PhantomJSisacommand-linetool.--其实就是一个命令行工具。PhantomJS的下载地址:Windows:phantomjs-2.1.1-windows.zipLinux:phantomjs-2.1.1-linux-x86_64.tar.bz2;phantomjs-2.1.1-linux-i686.tar.bz2MacOS:phantomjs-2.1.1-macosx.zip下载下来后,我们看到bin目录下就是...
继续阅读 >
2020
10-08
10-08
Java线程状态转换关系实例解析
状态1:新建一个线程并且开启start()方法,使Java线程和操作系统线程联系起来;状态2:Running——Waiting:调用wait方法synchronized(lock){lock.wait();//进入waiting状态,释放锁}synchronized(lock){lock.notifyAll();//,唤醒所有线程,使所有在waiting状态的线程进入blocked状态,进入entryList队列和其他线程一起竞争锁}状态3Running——Waiting:调用join()方法join()方法最终调用的也是wait方法,它使...
继续阅读 >
Class.forName()主要功能Class.forName(xxx.xx.xx)返回的是一个类,Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法。①new和Class.forName()有什么区别和newInstance的用法?Aa=(A)Class.forName(“pacage.A”).newInstance();Aa=newA();这两种实例化的方式是一样的效果。上述的例子中都是创建了一个...
继续阅读 >
2020
10-08
10-08
Java Method类及invoke方法原理解析
在说Method和invoke的使用之前我们来看一个小例子,如果看懂了那就ok了publicclassMethodInvoke{classAnimal{publicvoidprint(){System.out.println("Animal.print()");}}classCatextendsAnimal{@Overridepublicvoidprint(){System.out.println("Cat.print()");}}publicstaticvoidmain(String[]args)throwsException{MethodanimalMethod=Animal.class.getDeclaredMethod("prin...
继续阅读 >
2020
10-08
10-08
Java日志框架之logback使用详解
为什么使用logback记得前几年工作的时候,公司使用的日志框架还是log4j,大约从16年中到现在,不管是我参与的别人已经搭建好的项目还是我自己主导的项目,日志框架基本都换成了logback,总结一下,logback大约有以下的一些优点:内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升logback非常自然地直接实现了slf4j,这个严格来说算不上优点,只是这样,再理解slf4j的前提下会很容易理解l...
继续阅读 >