- 博客(1417)
- 资源 (1)
- 收藏
- 关注
原创 Java—— CompletableFuture
在JAVA8开始引入了全新的CompletableFuture类,它是Future接口的一个实现类。也就是在Future接口的基础上,额外封装提供了一些执行方法,用来解决Future使用场景中的一些不足,对流水线处理能力提供了支持。CompletableFuture 可以从全局的 ForkJoinPool.commonPool() 获得一个线程中执行这些任务。但也可以创建一个线程池并传给 runAsync() 和 supplyAsync() 来让他们从线程池中获取一个线程执行它们的任务。
2024-11-02 14:21:42 632
原创 Eclipse——Java开发详解
打开,弹出的页面里选择,然后选择,打开如下图界面:然后点击右侧add按钮,打开add jre对话框:点击下一步,打开jre路径选择对话框:选择JRE home之后,自动会填充JRE name和下面的jar,这里也可以设置vm参数,一般直接点击finish完成即可。到此新的JRE已经配置完成,如果配置了多个JDK,可以勾选一个作为默认,如下图:打开,弹出的页面里选择,然后选择,打开如下图界面:右侧可以选择编译的版本号,默认情况下,编译版本和你配置的JDK版本一致。这里设置的编译版本影响ecli
2024-10-20 21:13:54 1289
原创 Docker——Dockerfile构建MySQL并初始化数据
这将在后台启动一个名为mysql-instance的MySQL容器,如果一切顺利,您将看到MySQL容器成功启动并执行了初始化SQL脚本。在上述Dockerfile中,我们使用了MySQL5.7官方镜像作为基础镜像,并将初始化SQL脚本。这样,MySQL容器在启动时会自动执行该SQL脚本。
2024-04-01 16:15:09 941
原创 Git——IDEA中的使用详解
所以需要先更新你拉的新分支上的代码,将其他人更新的代码合并过来,保证你拉的新分支代码与最新的 master 分支代码一致(以免因为丢失最新修改的代码而造成线上事故)之后再将你的新拉的分支代码合并到 master 分支上面。在实际项目开发过程中,当遇到一个需求时,我们并不会直接就在主分支(master)上面进行开发,而是在主分支的基础上单独创建一个新的分支进行开发,当新建分支的代码经过代码评审以及测试验证通过,确认准确无误之后才会将新增的代码合并到主分支master,这才是一个规范的git操作流程。
2024-03-21 17:00:35 9140 2
原创 Git——GitHub远端协作详解
在多人共同开发时,大家都在自己的分支进行Commit,所以拉回来用一般的方式合并时,常会出现为了合并而生成额外的Commit的情况。在GitHub上有非常多的开源项目,有些项目你很感兴趣,也很想帮忙,于是联系项目的原作者跟他说:“我觉得你的项目很有趣,开个权限给我吧,我来帮你加一些功能”。因为当前项目之前曾推送内容到服务器上,所以远端分支也会记录一份在本机上,同样也是有HEAD和master分支,但会在前面加注远端节点origin,变成origin/ HEAD和origin/master。
2024-03-18 22:13:57 1640
原创 Git——标签详解
在Git中,标签(Tag)是一个指向某个Commit的指示标。这看起来好像与分支(Branch)一样,但又有一些不太一样的地方”。
2024-03-18 15:15:28 1602
原创 Git——修改历史记录详解
处于Rebase状态的Commit列表与平常看到的记录是相反的,所以如果想在某两个Commit之间再增加Commit,要注意停下来的那个点是不是正确的点。不止这样,因为这两个Commit对象被换掉了,在它之后的Commit因为前面的历史信息被改了,所以后面整串的Commit全部都重做新的Commit对象来替代旧的Commit对象。这里也是一样,看起来只是改字,但因为Commit对象的信息也会影响SHA-1的计算,所以Git会做出新的Commit对象来替代原来的Commit对象。
2024-03-17 22:43:10 3380
原创 Git——分支详解
在Git的世界中,每一次的Commit都是一个对象,它会指向某一个Tree对象(目录),而这些Tree对象会指向其他的Tree对象(子目录)或Blob对象(文件)。事实上不管是谁合并谁,这两个分支上的Commit都是对等的。cat分支与dog分支都是来自master分支,所以不管master是要合并cat分支还是dog分支,Git都会直接使用快转模式(Fast Forward)进行合并,也就是master直接“收割”cat或dog的成果。是的,所谓的“合并分支”,其实是合并“分支指向的那个Commit”。
2024-03-17 21:14:00 6585 2
原创 Git——本地使用详解
HEAD是一个指标,指向某一个分支,通常可以把它当作“当前所在分支”来看待。在.git目录中有一个名为HEAD的文件,其中记录的就是HEAD的内容。从这个文件可以看出,HEAD当前正指向master分支。
2024-03-17 12:36:09 2128
原创 Java——正则表达式详解
Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()
2024-03-07 13:29:16 6865 2
原创 Java——JAVE(音视频格式转换)
JAVE (Java Audio Video Encoder)是一个纯Java的音视频编码器和解码器库,它是基于FFmpeg。JAVE库提供了一些简单易用的API,用于音频和视频格式的转换、编码、解码等操作。它对于一些基本的音视频处理任务来说是一个不错的选择。这些库都是基于FFmpeg的,并允许在Java中处理音频和视频文件。使用它们可以避免直接调用外部的FFmpeg命令行工具,而是通过Java API来实现音频格式转换等操作。
2024-03-03 17:53:39 17102
原创 Java——高级Swing和图形化编程(二)
目录高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程3.2、形状1)、形状类层次结构2)、使用形状类3.3、区域3.4、笔画3.5、着色3.6、坐标变换3.7、剪切3.8、透明与组合4、像素图4.1、图像的读取器和写入器1)、获得适合图像文件类型的读取器和写入器2)、读取和写入带有多个图像的文件3)、示例4)、API4.2、图像处理1)、构建像素图2)、图像过滤高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程在最初的JDK1.0中,用来绘制形状的是一种非常简单的机
2024-02-19 21:42:36 1501
原创 Java——高级Swing和图形化编程(一)
目录高级Swing和图形化编程(一)1、表格1.1、一个简单表格1.2、表格模型1.3、对行和列的操作1)、各种列类2)、访问表格列3)、改变列的大小4)、改变行的大小5)、选择行、列和单元格6)、对行排序7)、过滤行8)、隐藏和显示列9)、示例10)、API1.4、单元格的绘制和编辑1)、绘制单元格2)、绘制表头3)、单元格编辑4)、定制编辑器5)、API2、树2.1、简单的树1)、示例2)、编辑树和树的路径3)、API2.2、节点枚举2.3、绘制节点2.4、监听树事件2.5、定制树模型高级Swing和
2024-02-17 15:08:48 1365
原创 Java——Swing详解
目录Swing1、Swing和MVC设计模式2、布局管理2.1、布局管理器2.2、边框布局2.3、网格布局3、文本输入3.1、文本域3.2、标签和标签组件3.3、密码域3.4、文本区3.5、滚动窗格4、选择组件4.1、复选框4.2、单选按钮4.3、边框4.4、组合框4.5、滑动条5、菜单5.1、菜单构建5.2、菜单项中的图标5.3、复选框和单选按钮菜单项5.4、弹出菜单5.5、键盘助记符和加速器5.6、启用和禁用菜单项5.7、工具条5.8、工具提示6、复杂的布局管理6.1、网格包布局1)、gridx、gri
2024-02-14 02:10:16 7395 1
原创 Java——AWT详解
接口方法参数/访问方法时间源JComboBoxJTextFieldTimerJScrollbarItemEvent.getItem()JComboBoxfocusLostFocusEventComponentkeyTypedKeyEventComponentMouseEvent.getX().getY()ComponentmouseMovedMouseEventComponentComponentWindowWindowWindow。
2024-02-12 19:34:35 3840 1
原创 Java——常用JSON解析库详解(fastjson2、gson、jackson)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,相比xml数据交换格式来说,因为解析xml比较的复杂且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过JSON来进行交换。JSON简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。fastjson:阿里gson:谷歌jackson:SpringMVC自带。
2024-02-07 23:19:49 3558
原创 Java——二维码详解
二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一种编码方式。它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。二维条码/二维码()是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;
2024-02-03 00:59:26 4659 2
原创 SpringBoot Test详解
spring-boot-test项目:包含核心功能spring-boot-test-autoconfigure项目:支持自动配置通常情况下,我们通过spring-boot-starter-test的Starter来引入SpringBoot的核心支持项目以及单元测试项目以及单元测试库。JUnit:一个Java语言的单元测试框架:为SpringBoot应用提供集成测试和工具支持:支持流式断言的Java测试框架Hamcrest:一个匹配器库Mockito:一个Java Mock框架。
2024-02-01 15:45:25 12773
原创 JsonPath详解
JsonPath是用来解析多层嵌套的JSON数据。可以认为JsonPath就是JSON版本的XPath。它是一种信息抽取类库,是从JSON文档中抽取指定信息的工具。JsonPath对于JSON来说,就相当于XPath之于XML。@Test//自定义谓词@Override。
2024-01-28 17:24:25 5278
原创 JSONassert详解
在开发过程中,我们经常需要验证返回结果的正确性。RESTful API接口,返回的数据通常是JSON格式,因此需要一种简单的方法来检查JSON的结构和内容是否符合预期。Java JSONassert是帮助我们实现这一目标的常用工具。Maven依赖:</</</</</JSONAssert.assertEquals(预期JSON ,实际JSON , strictMode );JSONassert有如下4种比较模式,这些不同的模式为JSON的测试比较定义了不同的行为。可扩展性和严格排序LENIENT。
2024-01-26 16:13:28 1136
原创 AssertJ详解
AssertJ 是一个 Java 库,它提供了丰富的断言集和真正有用的错误消息,提高了测试代码的可读性。核心模块:为 JDK 类型(String、Iterable、Stream、Path、File、Map,…)提供断言Guava模块:为 Guava 类型提供断言(Multimap、Optional,…)Joda Time模块:为Joda Time 类型(DateTime、LocalDateTime)提供断言Neo4J模块:为 Neo4J 类型(路径、节点、关系……)提供断言Swing模块。
2024-01-25 18:22:58 1673
原创 JUnit5.x详解
目录JUnit5.x1、概述1.1、简介1.2、Maven依赖1.3、核心概念2、Junit4迁移到JUnit Jupiter3、生命周期方法4、@TestInstance(生命周期模式)5、显示测试名称5.1、@DisplayName5.2、@DisplayNameGeneration6、条件测试6.1、操作系统条件6.2、Java运行环境条件6.3、系统属性条件6.4、环境变量条件6.5、自定义条件7、执行顺序7.1、@TestMethodOrder(方法顺序)7.2、@TestClassOrder(类
2024-01-14 22:53:05 1242
原创 Mockito3.x详解
/ 在验证失败时,会打印自定义的消息// 任何验证模式下都能使用这种方式Answer接口只有一个方法,Java 8 使用lambda表达式来实现它非常简单。// answer每次都返回12// 用参数里的一个值作为返回值 - 转换成你想要的正确类型可以定义answer/actions,用被调用方法的参数作为answer/actions中lambda的入参。它们依赖的相关answer接口在org.mockito.stubbing包下,Answer接口最多支持5个参数。
2024-01-08 16:53:40 1440
原创 TestNG详解
目录TestNG1、概述1.1、Maven依赖1.2、功能2、启动方式2.1、Idea直接运行2.2、XML调用1)IDEA直接运行xml文件2)、maven使用surefire插件3、XML配置文件3.1、suite标签3.2、suite-files标签3.3、parameter标签3.4、method-selectors标签3.5、test标签1)、选择一个包中的全部测试脚本(包含子包)2)、选择一个类中的全部测试脚本3)、选择一个类中的部分测试脚本4)、选择一个包中的某些组5)、排除一个包中的某些组3
2024-01-07 18:34:35 1049
原创 EasyMock详解
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。EasyMock提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。Maven依赖:</</</</</创建目标类的Mock录制(Recording)其预期行为,包括动作、结果、调用次数、异常等录制完成后,我们将其切换到重播(Replay)模式,以便Mock在被使用者调用时,表现得和录制时一样。
2024-01-05 01:39:20 2366
原创 JUnit4.x详解
JUnit是一个Java测试框架,使编写可靠和高效的测试变得容易。它可以用于大多数语言制作的应用程序,但特别适合于测试Java应用程序。JUnit也可以用来创建自动测试。JUnit框架是最流行的Java测试框架之一。它提供了一些功能,使编写测试变得容易,包括支持多个测试用例、断言和报告。JUnit也是多功能的,允许用各种语言编写测试。它允许你有效地创建和运行测试,并已成为最流行的Java测试框架之一。xUnit框架激发了Smalltalk和C++的JUnit。
2024-01-04 06:49:36 1032
原创 SpringBoot——集成Jersey
在Jersey中引入Spring MVC会带来根路径冲突的问题,因为它们各自的Servlet都默认处理根路径。注意:jersety starter模式使用jackson解析JSON。声明根路径,那么yml中的配置会覆盖注解中的配置。,jersey的跟路径为。actuator的端口为。注意,如果同时也使用了。,jersey的端口为。
2023-12-28 00:11:42 791
原创 WebService——JAX-RS2(Jersey)客户端详解
与Apache HTTP Client和HttpURLConnection相比,客户端API是可感知REST的高层API,可以与Providers集成,返回值直接对应高层的业务类实例,而不是JAXB对象或者更为低层的数据类型。作为REST框架,JAX-RS2不希望开发者编码实现对客户端实例的资源管理,Response实例的readEntity(在返回响应实体的同时,即完成了对客户端资源的释放。默认情况下,HTTP方法调用的返回类型是Response类型,同时也支持泛型类型的返回值。
2023-12-27 21:39:07 1288
原创 WebService——JAX-RS2(Jersey)扩展点详解
根据对象的不同,返回不同的JettisonJaxbContext实例,以实现不同的JSON解析效果。@Provider//前置处理@Override//获取请求方法和地址//获取请求头信息@Override@Override@Override//获取容器响应状态return b;List<
2023-12-27 00:09:44 1241
原创 WebService——JAX-RS2(Jersey)传输格式和响应处理详解
MOXy是Jersey默认的JSON解析方式,可以在项目中添加MOXy的依赖包来使用MOXy:</</</使用Servlet.3可以不定义web.xml配置。MOXy的Feature接口实现类是MoxyJsonFeature,默认情况下,Jersey对其自动探测,无须在Applicaion类或其子类显式注册该类。两端禁用服务器端禁用客户端禁用@Component//注册资源//取消MOXy自动探测return id;return age;
2023-12-26 01:37:10 1208
原创 WebService——JAX-RS2(Jersey)注解详解
虽然WebDAV对HTTP方法做出了功能性扩展,使之提供更强大服务,但是从ROA角度讲,因为WebDAV在HTTP标准方法的基础上增加了特殊的方法名称,WebDAV破坏了统一接口的原则。资源地址的路径变量是用来表达逻辑上的层次结构的,资源和子资源的形式是自左至右、斜杠分割的名词。DELETE方法是幂等的,即多次删除同一份数据(通常请求中传递的参数是数据的主键值),在服务器端产生的改变是相同的。注解来定义相关的资源方法。PathInfo是资源路径信息,与资源类、子类以及类中的方法定义的@Path注解有关。
2023-12-25 00:12:08 1354
原创 SpringBoot——整合WebService
WebService服务端是以远程接口为主的,在Java实现的WebService技术里主要依靠CXF开发框架,而这个CXF开发框架可以直接将接口发布成WebService。JAX-WS是基于xml协议JAX-RS是基于Restful风格RS比WS传输的数据更少,效率更高。WS只能传输XML数据,RS可以传输XML,也可以传输JSON本文以JAX-WS为例</</</</</</</
2023-12-22 18:01:18 1112
原创 WebService——WebService详解
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。
2023-12-21 20:12:50 2488
原创 WebService——WSDL详解
W3C组织(World Wide Web Consortium)没有批准1.1版的WSDL,当前的WSDL版本是2.0,是W3C的推荐标准(recommendation)(一种官方标准),并将被W3C组织批准为正式标准。WSDL文档有各种元素,但它们包含在这三个主要元素中,可以作为单独的文档开发,可以将它们组合或重用以形成完整的WSDL文件。WSDL将Web服务分解为三个特定的,可识别的元素,这些元素可以在定义后组合或重用。元素的绑定属性将服务的地址与Web服务中定义的绑定元素相关联。该服务发送一条消息。
2023-12-19 23:53:29 2489
原创 WebService——SOAP详解
SOAP即(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
2023-12-19 17:31:06 5950
原创 Java——本地方法(JNA)详解
JNA 全称 Java Native Access,是一个建立在经典的 JNI 技术之上的 Java 开源框架。JNA 提供一组 Java 工具类用于在运行期动态访问系统本地库(native library:如 Window 的 dll)而不需要编写任何 Native/JNI 代码。开发人员只要在一个 java 接口中描述目标 native library 的函数与结构,JNA 将自动实现 Java 接口到native function 的映射。
2023-12-18 01:51:45 6014 1
原创 Java——本地方法(JNI)详解
1)、关于Load与LoadLibrary这里 System.load 方法需要读取 .dylib 的绝对路径,如果使用 System.loadLibrary 方法则需要传相对路径,这里建议大家写绝对路径,肯定不会出错。
2023-12-15 20:36:45 1208
原创 Java——国家商用密码详解(SM2、SM3、SM4)
国密即国家密码局认定的国产密码算法,即商用密码。商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。为了保障在金融、医疗等领域保障信息传输安全,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。SSF33、SM1、SM4、SM7是对称算法SM2、SM9是非对称算法SM3是哈希算法。
2023-12-11 23:34:10 3474
原创 Java——加密/解密相关类(java.security、javax.crypto、javax.net.ssl)
目录Java加密/解密相关类1、Java与密码学1.1、Java安全领域组成部分1.2、安全提供者体系结构2、java.security包详解2.1、Provider类2.2、Security类2.3、MessageDigest类2.4、DigestInputStream类2.5、DigestOutputStream类2.6、Key接口1)、SecretKey2)、PublicKey和PrivateKey2.7、AlgorithmParameters类2.8、AlgorithmParameterGenera
2023-12-10 00:03:40 1424
原创 Java——安全协议详解
HTTPS协议和SSL/TLS协议分属TCP/IP参考模型中的应用层和传输层。简单地说,HTTPS就是附加了SSL/TLS协议的HTTP协议,就是HTTP安全版。HTTPS协议为数字证书提供了最佳的应用环境。
2023-12-06 22:33:26 451
vuedevtools安装.zip
2019-10-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人