自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (14)
  • 问答 (4)
  • 收藏
  • 关注

原创 一、C语言创建桌面程序: 第一个桌面程序

一、示例代码#include <windows.h>#include <tchar.h>static TCHAR szWindowClass[] = _T("win32app");static TCHAR szTitle[] = _T("Win32 Guided Tour Application");LRESULT CALLBACK WndProc(HWND,...

2020-03-25 23:23:35 3907

原创 js调用本地exe文件

一、创建pw.reg文件并执行执行时需要去掉注释 //Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\PW] //PW 协议名称@="PW Protocol" //PW 协议路径"URL Protocol"=""[HKEY_CLASSES_ROOT\PW\DefaultIcon] //PW 协议名称@="H:\\P...

2020-03-25 15:29:47 637 2

原创 JavaScript 操作剪贴板

一、剪切板相关事件事件描述copy在发生复制操作时触发cut在发生剪切操作时触发paste在发生粘贴操作时触发beforecopy在发生复制操作前触发beforeecut在发生剪切操作前触发二、剪切板工具类var EventUtil = { // 添加事件 addHandler: function (element, typ...

2020-03-25 14:29:56 814

原创 Java遍历指定目录下的所有文件

public class FileUtil{ /** * 遍历指定目录下的所有文件,不包括目录中的文件 */ public static void files(File file) { File[] fs = file.listFiles(); for(File f:fs){ if(!f.isDirectory()) System.out.println(...

2020-03-24 15:43:53 1008 2

原创 Java 实现RSA加密、解密、签名、验签

import java.io.ByteArrayOutputStream;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.Public...

2020-03-23 10:48:49 2395

原创 Java常用加密算法

一、Base64Base64用于网络中传输的数据进行编码,严格意义上属于编码的格式,有64个字符的对应的编码,Base64就是将内容按照该格式进行编码。可以对数据编码和解码,是可逆的,安全度较低,不过,也可以作为最基础最简单的加密算法用于加密要求较弱的情况。Base64可以使用JDk中自带的类实现,还可以使用Bouncy Castle(简称bc)或Commons Codec(简称cc)实现。...

2020-03-23 10:42:26 5381 1

原创 Java 并发编程Thread类常用方法

一、Thread方法描述void join()等待该线程死亡。void start()使该线程开始执行;Java虚拟机将调用run此线程的方法。static void yield()向调度程序提示当前线程愿意放弃当前使用的处理器。void interrupt()中断此线程。static boolean interrupted()测试当前线程是...

2020-03-20 10:37:08 165

原创 Java 并发编程之原子类

一、原子类原子类包装了一个变量,然后提供对这个变量的原子操作的方法。原子类中对变量的操作,都是原子操作。原子类用来把变量的操作封装成原子操作,也就是保证了原子性。当你的代码保证了有序性和可见性时,可以使用原子类来保证原子性,从而避免synchronized带来的高性能开销。二、分类1)基本原子类AtomicBoolean:布尔型AtomicInteger:整型AtomicL...

2020-03-20 10:36:20 153

原创 Java 中的CAS

一、CAS       CAS 就是 Compare and Swap (比较并操作) 的意思。很多的 CPU 直接支持 CAS 指令。CAS 是一项乐观锁技术,当多个线程尝试使用 CAS 同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试...

2020-03-20 10:35:44 150

原创 Java javax.xml.ws.Holder类

https://www.zifangsky.cn/734.html一、Java中参数的传递方式从下面的示例可以看出:Java的参数传递只是传值。public class Test { public static void main(String[] args) throws Exception { String s = "你好"; change(...

2020-03-20 10:34:18 1493 1

原创 Java 并发编程wait、notify、notifyAll 与 Condition

一、wait、notify、notifyAll1.1 方法简介1)调用某个对象的wait()方法,相当于让当前线程交出此对象的锁,然后进入等待状态,等待后续再次获得此对象的锁(Thread类中的sleep方法使当前线程暂停执行一段时间,从而让其他线程有机会继续执行,但它并不释放对象锁)。如果调用某个对象的wait()方法,当前线程必须拥有这个对象的锁,因此调用wait()方法必须在同步块或者...

2020-03-20 10:33:38 318

原创 Java 并发编程ReentrantLock

一、ReentrantLock除了使用关键字synchronized来实现内置锁外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但是ReentrantLock并不是一种替代内置加锁的方法,而是当内置加锁机制不适用时,作为一种可选的改机功能。但ReentrantLock相比synchronized而言功能更加丰富,使用起来更...

2020-03-20 10:32:56 134

原创 Java 并发编程ReadWriteLock

一、ReadWriteLockReadWriteLock 有一个实现类 ReentrantReadWriteLock 可以用来创建读写锁。在学习之前可以先学习一下ReentrantLock。ReadWriteLock特性:支持公平锁与非公平锁;可重入;支持锁降级(写锁 -> 读锁),写锁降级成读锁,并不会自动释放当前线程获取的写锁,仍然需要显示的释放,否则别的线程永远也获取不...

2020-03-20 10:32:12 156

原创 Java 并发编程 Synchronized

一、Synchronized1.1 概念       关键字synchronized是一种内置的锁机制,用来支持原子性(指一个操作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉)。       被synchronized包括的代...

2020-03-20 10:31:22 128

原创 Java 并发编程之Exchanger(两方栅栏)

一、ExchangerExchanger,它是一种两方(Two-Party)栅栏,各方在栅栏位置上交换数据。当两方执行不对称的操作时,Exchanger会非常有用,例如当一个线程向缓 冲区写入数据,而另一个线程从缓冲区中读取数据。这些线程可以使用Exchanger来汇合,并 将满的缓冲区与空的缓冲区交换。当两个线程通过Exchanger交换对象时,这种交换就把这两 个对象安全地发布给另一方。...

2020-03-20 10:30:37 138

原创 Java 并发编程之CyclicBarrier(栅栏)

一、CyclicBarrierCyclicBarrier 也叫做栅栏(Barrier)类似于闭锁,它能阻塞一组线程直到某个事件发生。栅栏与闭锁的关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待其他线程。二、常用方法方法描述int await()等待所有各方调用 await此障碍。int await(long timeo...

2020-03-20 10:29:45 204

转载 Java 并发编程之Semaphore(信号量)

一、SemaphoreSemaphore 是一种计数信号量(Counting Semaphore)用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。计数信号量还可以用来实现某种资源池,或者对容器施加边界。Semaphore中管理着一组虚拟的许可(permit),许可的初始数量可通过构造函数来指定。 在执行操作时可以首先获得许可(只要还有剩余的许可),并在使用以后释放许可...

2020-03-20 10:29:02 258

原创 Java 带执行结果的线程(Callable 、 Future 与 FutureTask)

二、CallableCallable和Future,一个产生结果,一个拿到结果。Callable接口中只有一个call()方法,和Runnable相比,该方法有返回值并允许抛出异常。方法描述V call()计算结果,如果无法执行则抛出异常。二、FutureFuture表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行...

2020-03-20 10:28:18 225

原创 Java 并发编程CountDownLatch

一、CountDownLatch1)CountDownLatch也叫闭锁,闭锁是一种同步工具类,可以延迟线程的进度直到其闭锁为打开状态。2)闭锁的作 用相当于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭的,并且没有任何线程能通过, 当到达结束状态时,这扇门会打开并允许所有的线程通过。当闭锁到达结束状态后,将不会再改变状态,因此这扇门将永远保持打开状态。3)闭锁可以用来确保某些活动直到其...

2020-03-20 10:27:26 157

原创 Java 并发编程CopyOnWriteArrayList、CopyOnWriteArraySet

一、CopyOnWrite多读少写的场景 如何提高性能(转)特点:内部持有一个ReentrantLock lock = new ReentrantLock();底层是用volatile transient声明的数组 array读写分离,写时复制出一个新的数组,完成插入、修改或者移除操作后将新数组赋值给旧数组适用场景:CopyOnWrite适用于读多写少的并发情况。优点...

2020-03-20 10:26:41 167

原创 Java 并发编程ConcurrentHashMap、ConcurrentSkipListMap

一、ConcurrentHashMap、ConcurrentSkipListMap【1】ConcurrentHashMap 与 ConcurrentSkipListMap都是线程安全的,适用于高并发的场景。【2】ConcurrentHashMap是无序的,ConcurrentSkipListMap是有序的。【3】ConcurrentSkipListMap 和 TreeMap,它们虽然都是有...

2020-03-20 10:25:58 1797 1

原创 Java Collections常用方法

方法描述static <T> boolean addAll(Collection<? super T> c, T… elements)将所有指定的元素添加到指定的集合中。static <T> Queue<T> asLifoQueue(Deque<T> deque)以后进Deque先出(Lifo)的形式 返回a...

2020-03-20 10:18:27 356

原创 Java 并发编程BlockingQueue、BlockingDeque

一、BlockingQueueBlockingQueue也叫做阻塞队列,在某些情况下对BlockingQueue的访问可能会造成阻塞。被阻塞的情况主要有如下两种:当队列满了的时候进行入队列操作当队列空了的时候进行出队列操作阻塞队列一共有四套方法用来进行增、删、查,当每套方法对应的操作不能马上执行时会有不同的反应,下面这个表格就分类列出了这些方法:操作Throws Ex...

2020-03-20 10:16:01 739

原创 Java 守护线程与非守护线程

一、守护线程与非守护线程的区别程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程。二、守护线程2.1 如何创建守护线程将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现. 在使用守护线程时需要注意:thread.setDaemon(true)必须在thread.start()之前设置, 否则会抛出一个IllegalT...

2020-03-20 10:11:23 545

原创 Java ExecutorCompletionService类

一、为什么使用ExecutorCompletionService       假设现在有一大批需要进行计算的任务,为了提高整批任务的执行效率,你可能会使用线程池,向线程池中不断submit异步计算任务,同时你需要保留与每个任务关联的Future,最后遍历这些Future,通过调用Future接口实现类的get方法获取整批计算...

2020-03-20 10:10:34 537

原创 Java Executor、Executors、ExecutorService、ThreadPoolExecutor

一、Executors方法描述ExecutorService newSingleThreadExecutor()是一个单线程的 Executor,它创建单个工作者线程来执行任务,如果这个线程异常结束,会创建另一个线程来替代。并且能确保依照任务在队列中的顺序来串行执行(例如FIFO、LIFO,优先级)。ExecutorService newSingleThreadExe...

2020-03-20 10:05:12 189

原创 Java Timer(定时调用、实现固定时间执行)

一、TimerTimer主要用来安排定时任务一次执行或定期执行重复任务。1.1 常用方法方法描述schedule(TimerTask task, Date time)计划指定的任务以在指定的时间执行。schedule(TimerTask task, Date firstTime, long period)从指定的时间开始,调度指定的任务以重复执行固定延迟。...

2020-03-20 10:04:03 1013

原创 ThreadLocal类的使用

一、ThreadLocalThreadlocal是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有创建它的线程内才可以得到存储数据。public static void main(String[] args) { ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>(...

2020-03-20 10:02:27 121

原创 Java 线程的两种实现方式

一、集成Thread1.1 定义线程public class MyThread extends Thread{ @Override public void run() { super.run(); int i = 0; while (i < 10) { System.out.println(...

2020-03-20 09:58:19 125

原创 Spring相关注解

@RestController@ConfigurationProperties(prefix = "pwx")@GetMapping("/hello")

2020-03-19 11:50:50 264 1

原创 SpringBoot加载多个配置文件

一、使用 spring.profiles.includeapplication-{参数}.properties1)在 application.properties 中配置 spring.profiles.include = xxx2)在 application.properties 同级目录下创建 application-xxx.properties文件,3)可以使用spring.pr...

2020-03-19 11:48:04 3452

原创 Spring Boot打包成jar无法访问html

一、修改pom.xml在pom.xml文件下的 <build>标签下添加如下代码<resources> <resource> <!-- web资源 --> <directory>src/main/webapp</directory> <!--注意此次必须要放在此目录...

2020-03-19 09:59:09 961

原创 Java字节数组与字符数组相互转化

一、字符数组转化为字节数组public static byte[] getBytes(char[] chars) { Charset cs = StandardCharsets.UTF_8; CharBuffer cb = CharBuffer.allocate(chars.length); cb.put(chars); cb.flip(); ByteBu...

2020-03-18 22:15:22 1727

原创 WebJars的使用--基于Java的Maven项目

一、pom.xml配置<dependency> <groupId>org.webjars</groupId> <artifactId>bootstrap</artifactId> <version>3.3.7-1</version> </dependency> ...

2020-03-18 22:14:04 588

原创 Java设计模式内容聚合

面向对象设计原则设计模式 -- 简单工厂模式Java设计模式--工厂方法模式Java设计模式--抽象工厂模式Java设计模式--建造者模式Java设计模式--原型模式Java设计模式--单列模式Java设计模式--适配器模式Java设计模式--桥接模式Java设计模式--组合模式Java设计模式--装饰模式Java设计模式--外观模式Java设计模式--享元模式Java...

2020-03-16 23:15:23 416

原创 Java 下载指定地址文件到本地

一、下载指定地址文件到本地public class Download { public static void main(String[] args) throws IOException { HttpURLConnection connection = (HttpURLConnection)(new URL("https://www.baidu.com/").openC...

2020-03-13 23:00:19 79

原创 IntelliJ IDEA 中关闭覆盖率提醒

一、现象二、解决办法按住 alt + ctrl + F6,取消打钩的选项

2020-03-13 22:22:34 8209 1

原创 Java设计模式--访问者模式

一、简介1.1 使用场景1.2 优点1.3 缺点二、示例:购物车2.1 结构图2.2 抽象访问者Visitor(访问者类)public abstract class Visitor { protected String name; public void setName(String name) { this.name = name; } public ab...

2020-03-12 23:13:12 209

原创 Java设计模式--模板方法模式

一、简介1.1 使用场景1.2 优点1.3 缺点二、示例:静态代理模式2.1 结构图2.2 抽象类BankTemplateMethod (银行业务办理流程类)public abstract class BankTemplateMethod { public void takeNumber() { System.out.println("取号排队..."); } ...

2020-03-12 22:41:36 195

原创 Java设计模式--策略模式

一、简介1.1 使用场景1.2 优点1.3 缺点二、示例:静态代理模式2.1 结构图2.2 抽象排序类Sort(抽象排序类)public interface Sort { public int[] sort(int[] arr); }2.3 具体策略类BubbleSort(冒泡排序)public class BubbleSort implements Sort{...

2020-03-11 23:23:50 207

sqlyog.rar

Administrate MySQL Databases With Ease Using a Graphical Interface MySQL is probably the world's most popular open source database engine but it can b

2019-10-11

mysql__5.5.rar

mysql是一个多线程的,结构化查询语言(sql)数据库服务器。sql 在世界上是最流行的数据库语言。mysql 的执行性能非常高,运行速度非常快,并非常容易使用。是一个非常捧的数据库。 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2019-09-25

makefile.zip

在软件开发中,make是一个工具程序(Utility software),经由读取叫做“makefile”的文件,自动化建构软件。它是一种转化文件形式的工具,转换的目标称为“target”;与此同时,它也检查文件的依赖关系,如果需要的话,它会调用一些外部软件来完成任务。它的依赖关系检查系统非常简单,

2019-08-28

CMake中文手册.rar

CMake CMake附图 1 CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 [1]。

2019-08-17

Git教程By廖雪峰.rar

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2019-07-30

GifCam.rar

一款非常简单好用的gif录制编辑软件【GifCam】汉化单文件。相比LICEcap有过之而无不及 单文件 软件大小也就几百KB 可录制可编辑。具有精确录制、可剪辑等特色。我们常常会看到微博或论坛上的一些人的头像和签名有些 GIF 动画图片非常搞笑有趣,这些动态图片到底是怎么制作的呢?其实有了 GifCam 软件你也能轻松制作出来。

2019-07-29

Git-2.22.0-64-bit.rar

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

2019-07-29

bootstrap4

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。

2019-07-25

bootstrap.rar

Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。

2019-07-18

MobaXterm.rar

MobaXterm是您远程计算的终极工具箱。在单个Windows应用程序中,它提供了大量功能,这些功能是为程序员,网站管理员,IT管理员以及需要以更简单的方式处理远程作业的所有用户量身定制的。

2019-07-07

Mybatis指南

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2019-02-28

ASM4使用指南

ASM是一个通用的Java字节码操作和分析框架。它可以用于修改现有类或直接以二进制形式动态生成类。ASM提供了一些常见的字节码转换和分析算法,可以从中构建自定义复杂转换和代码分析工具。ASM提供与其他Java字节码框架类似的功能,但专注于 性能。因为它的设计和实现尽可能小而且快,所以它非常适合在动态系统中使用(但当然也可以以静态方式使用,例如在编译器中)。

2019-02-23

Postman-win64-7.3.4-Setup.rar

用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。

2008-08-15

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除