202107-04 Java Swing程序设计实战 目录一、按钮组件1.1提交按钮组件1.2复选框组件二、列表组件2.1JComboBox类2.2列表框组件三、文本组件3.1文本框组件3.2密码框3.3文本域组件四、常用时间监听器4.1动作事件监听器4.2焦点事件监听器一、按钮组件1.1提交按钮组件packageswing;importjava.awt.*;importjava.awt.event.*;importjava.net.*;importjavax.swing.*;publicclassJButtonTestextendsJFrame{/****/privatestaticfinallongserial... 继续阅读 >
202107-04 详解Java类动态加载和热替换 目录前言1.Java的类加载器和双亲委派模型1.1Java类加载器1.2双亲委派模型2.Java的类动态加载和卸载2.1Java类的卸载2.2自定义类加载器2.3动态卸载存在的问题3.Java类的热替换前言最近,遇到了两个和Java类的加载和卸载相关的问题:1)是一道关于Java的判断题:一个类被首次加载后,会长期留驻JVM,直到JVM退出。这个说法,是不是正确的?2)在开发的一个集成平台中,需要集成类似接口的多种工具,并且工具可能会有新增,同... 继续阅读 >
202107-04 详解多云架构下的JAVA微服务技术解析 目录微服务生态多云微服务架构的两种方案采用开源微服务框架适配多供应商开发框架微服务生态微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施。目前比较成熟的JAVA微服务生态包括servicecomb(华为),spring-cloud(Pivotal),dubbo(阿里),tsf(腾讯)等。gRPC、Thrift等也用于内部服务之间的通信,但是微服务基础设施比较欠缺。核心的微服务基础设施包括:注册中心、配置中心、应用网... 继续阅读 >
202107-04 深度分析java dump文件 目录JVMdump获取JVMdump文件dump文件分析结构详解文件头java一个类的成员变量有两种类型内容块块头gcroot类对象基本信息说明实例对象基本类型数组基本信息说明对象数组内存分配内存回收规则分析工具简介浏览器打开http:/127.0.0.1:7000点击页面的堆内存统计点击其中认为内存消耗太多的类名查看类详情点击referencessummarybytypeJVMdumpjava内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内... 继续阅读 >
202107-04 Java基础之Math和Random类知识总结 java的Math类java中的java.lang.Math类可以直接使用,不需要导包,在JDK的API中看到Math类被final修饰着,那么说明了这个Math类不能被继承,构造器私有化,不能创建Math类的对象,也就是说publicstaticvoidmain(String[]args){Mathm=newMath();}这种写法是错误的Math内部的所有的属性和方法都被static修饰了,这说明在调用的时候直接使用类名.的方式直接调用,无需创建对象。接下来介绍Math类中的几个常用的方法:... 继续阅读 >
202107-04 Java基础之FastJson详解 目录一、fastJson将json格式字符串转化成List集合二、fastJson将json格式字符串转化成对象三、FastJson将对象或集合转化成json格式字符串四、FastJson将json格式字符串转化成json对象五、FastJson将json格式字符串转化成json数组六、FastJson将java对象转化成json对象一、fastJson将json格式字符串转化成List集合注:json格式字符串必须符合数组型格式如[{"a":a},{"b":b}]场景一:前端向后台传递数组格式的json字符串,如何转化成L... 继续阅读 >
202107-04 Java进阶之SPI机制详解 目录一、前言二、SPI规范三、SPI应用案例3.1 数据库驱动3.2Slf4j四、SPI示例4.1spi-operate-service模块4.2spi-operate-add模块4.3spi-operate-multiplication模块4.4spi-operate-consumer模块一、前言SPI的英文全称为ServiceProviderInterface,字面意思为服务提供者接口,它是jdk提供给“服务提供厂商”或者“插件开发者”使用的接口。在面向对象的设计中,模块之间我们一般会采取面向接口编程的方式,而在实际编程... 继续阅读 >
202107-04 Java基础之简单介绍一下Maven 目录一、Maven是什么?二、Maven的作用三、Maven能干的事情四、Maven的好处五、Maven的仓库分类以及简单的说明六、Maven定义jar包的各个字段的描述七、Maven常用的命令(生命周期)一、Maven是什么?Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管... 继续阅读 >
202107-02 Java并发编程之ConcurrentLinkedQueue源码详解 目录一、ConcurrentLinkedQueue介绍二、构造方法三、入队 四、出队五、总结一、ConcurrentLinkedQueue介绍并编程中,一般需要用到安全的队列,如果要自己实现安全队列,可以使用2种方式:方式1:加锁,这种实现方式就是我们常说的阻塞队列。方式2:使用循环CAS算法实现,这种方式实现队列称之为非阻塞队列。从点到面,下面我们来看下非阻塞队列经典实现类:ConcurrentLinkedQueue(JDK1.8版)ConcurrentLinkedQueue是一个... 继续阅读 >
202107-02 java如何实现多线程的顺序执行 场景编写一个程序,启动三个线程,三个线程的name分别是A,B,C;,每个线程将自己的ID值在屏幕上打印5遍,打印顺序是ABCABC...使用synchronized实现publicclassMyService{privateintflag=1;publicsynchronizedvoidprintA(){while(flag!=1){try{this.wait();}catch(InterruptedExceptione){... 继续阅读 >
202107-01 聊聊在Servlet中怎么上传文件 首先对Servlet上传文件的简单理解此前,Servlet本身没有对文件上传提供直接的支持,一般需要使用第三方框架来实现,这样就比较麻烦不过,Servlet3.0之后提供了这个功能,而且使用非常简单,,为此,HTTPServletRequest提供了两个方法用于从请求中解析出上传的文件:PartgetPart(Stringname)//获取请求中给定name的文件Collection<Part>getParts()//获取所有的文件其中每一个文件用一个javax.servlet.http.Part对象来表示,... 继续阅读 >
202107-01 Java并发编程之LockSupport类详解 目录一、LockSupport类的属性二、LockSupport类的构造函数三、park(Objectblocker)方法和park()方法分析四、parkNanos(Objectblocker,longnanos)方法和parkNanos(longnanos)方法分析五、parkUntil(Objectblocker,longdeadline)方法和parkUntil(longdeadline)方法分析六、setBlocker(Threadt,Objectarg)和getBlocker(Threadt)方法分析七、unpark(Threadthread)方法分析八、LockSupport优点一、LockSupport类... 继续阅读 >
202107-01 浅谈Java ThreadPoolExecutor的使用 目录一、前言二、ThreadPoolExecutor三、构造函数参数解析四、总结一、前言线程池主要由以下4个核心组件组成。线程池管理器:用于创建并管理线程池工作线程:线程池中执行具体任务的线程任务接口:用于定义工作线程的调度和执行策略,只有线程实现了该接口,线程中的任务才能被线程池调度任务队列:放待处理的任务,新的任务将会不断被加入队列中,执行完成的任务将从队列中移除二、ThreadPoolExecutor如下是线程... 继续阅读 >
202107-01 Java ThreadLocal的使用详解 目录1.应用场景1.1.保障线程安全1.2.显示传递参数2.实现原理3.注意事项ThreadLocal是线程私有的局部变量存储容器,可以理解成每个线程都有自己专属的存储容器,用来存储线程私有变量。ThreadLocal在日常开发框架中应用广泛,但用不好也会出现各种问题,本文就此讲解一下。1.应用场景ThreadLocal的常见应用场景有两种:多线程并发场景中,用来保障线程安全。处理较为复杂的业务时,使用ThreadLocal代替参数的显示传... 继续阅读 >
202107-01 java 调用本地扬声器的步骤 目录实现方式另述更新实现方式接下来就对这个小功能进行分析和实现。先写一个Demo。1.首先,我们需要一个dll作为辅助。这里解释一下dll的含义(DLL(DynamicLinkLibrary)文件为动态链接库文件,又称“应用百程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个度完整的可执行文件,它们被分割成一些相知对独立的动态链接库,即DLL文件,放置于道系统中。当我们执行某一个程序时,相应的版DLL文件就会被调用。一个应... 继续阅读 >
202107-01 JAVA使用ffmepg处理视频的方法(压缩,分片,合并) FFmepg安装路径:然后在使用的类中生命一个全局变量就好privatestaticStringffmpegPath="C:\\hk\\ffmpeg\\bin\\ffmpeg.exe";//ffmepg的绝对路径视频压缩注意:此压缩视频涉及转码,对cpu的占用比较大(能不压缩尽量不压缩)/***压缩视频*@paramconvertFile待转换的文件*@paramtargetFile转换后的目标文件*/publicstaticvoidtoCompressFile(StringconvertFile,StringtargetFile)th... 继续阅读 >