- 博客(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
原创 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
2019-10-11
mysql__5.5.rar
2019-09-25
makefile.zip
2019-08-28
CMake中文手册.rar
2019-08-17
Git教程By廖雪峰.rar
2019-07-30
GifCam.rar
2019-07-29
Git-2.22.0-64-bit.rar
2019-07-29
MobaXterm.rar
2019-07-07
Mybatis指南
2019-02-28
ASM4使用指南
2019-02-23
Postman-win64-7.3.4-Setup.rar
2008-08-15
这是个什么类型的工程
2016-06-24
jsp出现文号错误,如下图
2016-03-06
ImageIO.read如何解决内存溢出
2016-02-22
java树的节点事件里调用repaint方法 不能实现重绘
2016-02-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人