![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java8
一只会飞的猪_
笨鸟先飞
展开
-
java+swing打包jar转成exe并动态绑定jre再打包成安装文件
java打包jar成exe并动态绑定jre再打包成安装檔注:以下所有步骤的前提是,把jar文件,ico图示(pngImage文件夹),第三方jar包(lib活页夹),jre活页夹,放到同一个活页夹中。本例放在exe4j Install4j Inno setup活页夹下,如图0如图0首先,我们选用exe4j把jar执行文件转成exe文件exe4j.exe下载地址: http://...原创 2020-01-12 11:51:19 · 1148 阅读 · 0 评论 -
Java并发--Java中的CAS操作和实现原理
文章目录1.什么是CAS? 2.JAVA中的CAS操作实现原理 3.concurrent包中CAS的应用 4.小结1.什么是CAS?CAS:Compare and Swap, 翻译成比较并交换。看到这个定义,可以说是没有任何意义的一句话,但是确实最能概括CAS操作过程的一句话。CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果内...转载 2019-11-12 20:26:41 · 141 阅读 · 0 评论 -
ClassLoader 原理
ClassLoader 做什么的?顾名思义,它是用来加载 Class 的。它负责将 Class 的字节码形式转换成内存形式的 Class 对象。字节码可以来自于磁盘文件 *.class,也可以是 jar 包里的 *.class,也可以来自远程服务器提供的字节流,字节码的本质就是一个字节数组 []byte,它有特定的复杂的内部格式。有很多字节码加密技术就是依靠定制 ClassLoader...转载 2019-02-15 14:16:02 · 372 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Semaphore用法一.CountDownLatch用法CountDownLatch类...转载 2019-02-22 16:52:55 · 89 阅读 · 0 评论 -
CompletionService和ExecutorCompletionService详解
1.CompletionService接口定义了一组任务管理接口:submit() - 提交任务 take() - 获取任务结果 poll() - 获取任务结果ExecutorCompletionService类是CompletionService接口的实现ExecutorCompletionService内部管理者一个已完成任务的阻塞队列 ExecutorCompletionSer...转载 2019-02-20 10:22:12 · 8918 阅读 · 0 评论 -
BlockingQueue
在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大...转载 2019-02-20 15:50:53 · 153 阅读 · 0 评论 -
《Spring设计思想》AOP设计基本原理
0、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。读完本文,你将了解到:1. Java程序运行在JVM中的特征2. Java程序的执行流【了解AOP、连接点(Join Point)、切入点(point cut) ...转载 2019-02-26 14:11:24 · 113 阅读 · 0 评论 -
JVM类加载器机制与类加载过程
0、前言读完本文,你将了解到:一、为什么说Jabalpur语言是跨平台的二、Java虚拟机启动、加载类过程分析三、类加载器有哪些?其组织结构是怎样的?四、双亲加载模型的逻辑和底层代码实现是怎样的?五、类加载器与Class<T> 实例的关系六、线程上下文加载器一、为什么说Java语言是跨平台的?Java语言之所以说它是跨平台的、可以在当前绝大部分的操作系统...转载 2019-02-26 15:06:38 · 203 阅读 · 0 评论 -
Java 动态代理机制分析及扩展
Java 动态代理机制的出现,使得 Java 开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分派到委托对象上反射执行,在分派执行的过程中,开发人员还可以按需调整委托类对象及其功能,这是一套非常灵活有弹性的代理框架。通过阅读本文,读者将会对 Java 动态代理机制有更加深入的理解。本文首先从 Java 动态代理的运行机制和特点出发,...转载 2019-04-25 15:10:39 · 104 阅读 · 0 评论 -
Spring AOP 实现原理与 CGLIB 应用
CGLIB(Code Generation Library)详解什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,...转载 2019-04-25 17:00:46 · 411 阅读 · 0 评论 -
spring bean注册和注入覆盖
1.注册//存储注册的俄BeanDefinition private final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(); //向IoC容器注册解析的BeanDefiniton public...转载 2019-02-15 10:59:44 · 3040 阅读 · 0 评论 -
Future callback实现
FutureTask可用于异步获取执行结果或取消执行任务的场景。通过传入Runnable或者Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过FutureTask的get方法异步获取执行结果,因此,FutureTask非常适合用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。另外,FutureTask还可以确保即使调用了多次run方法...原创 2018-12-02 15:11:30 · 5936 阅读 · 3 评论 -
正确使用 Volatile 变量
volatile 变量使用指南Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的...转载 2018-11-29 17:07:20 · 198 阅读 · 0 评论 -
Windows(CRLF)格式与Unix(LF)格式转换
由于历史原因,导致Windows,Unix/Linux二者之间,对于文件中所用回车换行符,表示的方法,都不一样。这就导致了很多人都会遇到回车换行符的困惑,和需要在不同格式间进行转换。此处,介绍一下,如何通过Notepad++实现在这二者之间进行转换。1、查看当前文件格式(换行符用的是什么字符)当前是Windows的平台,所以通过“显示所有字符”:默认所查看到的是Wind转载 2017-08-15 11:22:05 · 42066 阅读 · 1 评论 -
常用正则表达式
65条最常用正则表达式一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(-转载 2017-09-27 09:15:54 · 278 阅读 · 0 评论 -
hashmap,hashset
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。通过 HashMap、Ha转载 2017-09-29 09:38:33 · 209 阅读 · 0 评论 -
Java并发编程
原文地址:http://ifeve.com/java8-concurrency-tutorial-thread-executor-examples/第一部分:Threads和Executors第二部分:同步和锁并发在Java5中首次被引入并在后续的版本中不断得到增强。在这篇文章中介绍的大部分概念同样适用于以前的Java版本。不过我的代码示例聚焦于Java8,大量使用lambda表达式和其他新特性。...转载 2018-07-13 16:10:12 · 151 阅读 · 0 评论 -
堆排序
转自:http://www.cnblogs.com/skywang12345/p/3602162.html堆排序介绍堆排序(Heap Sort)是指利用堆这种数据结构所设计的一种排序算法。因此,学习堆排序之前,有必要了解堆!若读者不熟悉堆,建议先了解堆(建议可以通过二叉堆,左倾堆,斜堆,二项堆或斐波那契堆等文章进行了解),然后再来学习本章。我们知道,堆分为"最大堆"和"最小堆"。最大...转载 2018-07-28 15:45:19 · 92 阅读 · 0 评论 -
对比,重复,对齐,亲密
http://www.360doc.com/content/17/0201/20/39700099_625861865.shtml转载 2018-08-03 09:53:56 · 1201 阅读 · 0 评论 -
spring aop
转自:http://wiki.jikexueyuan.com/project/ssh-noob-learning/dynamic-proxy.htmlhttps://blog.csdn.net/bingogirl/article/details/52304094https://www.cnblogs.com/onlywujun/p/3519037.htmlIOC负责将对象动态的注入到容...转载 2018-08-19 12:40:25 · 139 阅读 · 0 评论 -
ExecutorService关闭线程池
public class ExcutorTest { static ExecutorService threadPool = Executors.newFixedThreadPool(1000); public static int count = 0; public static void main(String[] str) { Task task =...原创 2018-12-02 09:27:28 · 3196 阅读 · 0 评论 -
java线程池框架Executor
在面向对象编程中,创建和销毁对象是很浪费时间的,因为创建一个对象要获取内存资源或者更多资源。在java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些池化资源技术产生的原因线程池的优点:1.重用线...原创 2017-06-30 15:33:39 · 583 阅读 · 0 评论