JAVA
Wang-Junchao
这个作者很懒,什么都没留下…
展开
-
【0001】【深入解析Java中volatile关键字的作用】
Java语言支持多线程,为了解决线程并发的问题,在语言内部引入了同步块synchronized和volatile关键字机制。在java线程并发处理中,关键字volatile比较少用,原因是:一、JDK1.5之前该关键字在不同的操作系统上有不同的表现,所带来是问题就是移植性差,二、是设计困难,而且误用较多。原创 2015-03-15 18:16:15 · 1108 阅读 · 0 评论 -
博文总目录
【博文目录】 【>>>架构<<<】 【工程下载>&am原创 2017-06-19 07:50:59 · 11281 阅读 · 5 评论 -
使用javaassist在内存中动态生成类
【博文总目录>>>】|【项目源码>>>】Javassist是一个开源的分析、编辑和创建Java字节码的类库。是由东京工业大学的数学和计算机科学系的 Shigeru Chiba (千叶 滋)所创建的。它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态”AOP”框架。下面我们来学习如何使用javaass...原创 2018-02-22 09:08:23 · 1868 阅读 · 0 评论 -
最简RPC框架实现
【博文总目录>>>】|【项目源码>>>】RPC概述RPC(Remote Proceduce Call 远程过程调用) 一般用来实现部署在不同机器上的系统之间的方法调用,使程序能够像访问本地系统资源一样,通过网络传输过去访问远端系统资源。RPC 调用过程 1、Client 客户端调用方法实现,负责发起RPC调用。2、ClientStub/SereverStub 可以看作原创 2018-02-04 10:56:01 · 1649 阅读 · 0 评论 -
Maven插件-打包时多环境配置文件设置
Maven插件-打包时多环境配置文件设置同一个项目,测试、生产环境配置内容是不同的,如何通过Maven插件在不同的环境下使用不同的配置文件呢?项目结构Profile定义一些列配置信息,然后通过命令激活指定信息,一般在项目pom.xml文件中配置。原创 2017-05-11 08:21:52 · 2611 阅读 · 0 评论 -
CSDN Markdown 公式指导手册
CSDN Markdown 公式指导手册 本文为 MathJax 在 CSDN Markdown 环境下的语法指引。 CSDN Markdown 编辑阅读器支持 LaTeX LaTeX编辑显示支持,例如:∑ n i=1 a i =0 \sum_{i=1}^{n}a_i=0,访问MathJax 以参考更多使用方法。 CSDN Markdown 公式指导手册 一公式使用参考1如何插入公原创 2016-06-10 19:27:42 · 2953 阅读 · 1 评论 -
堆 (数据结构)
堆 (数据结构)[工程下载>>>] 堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。1.1 逻辑定义 n个元素序列{k1,k2…ki…kn},当且原创 2016-05-26 06:57:39 · 3890 阅读 · 3 评论 -
cron表达式详解
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth Month DayofWeek每一个域可出现的字符如下: Seconds:可出原创 2015-06-08 20:18:48 · 1102 阅读 · 1 评论 -
Java传值还是传引用
这是一个经典面试问题,它迷惑Java新手。在这篇文章中,我将用一个例子和一些图来证明:Java是按值传递的。定义: - 按值传递:在内存中做一个实际参数值拷贝进行传递。 - 传引用:传递实际参数的地址的副本。 Java是永远是值传递。原始数据类型和对象引用都只是值。翻译 2015-06-26 20:50:28 · 2093 阅读 · 0 评论 -
利用java.util.prefs包操作windows注册表
利用javautilprefs包操作windows注册表转载 2015-05-17 08:59:36 · 1502 阅读 · 0 评论 -
线程池的生命周期和拒绝策略
线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:RUNNING, SHUTDOWN, STOP, TIDYING, TERMINATED。线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施。当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭。第二,任务数量超过线程池的最大限制。线程池共包括4种拒绝策略,它们分别是:AbortPolicy, CallerRunsPolicy, DiscardOld转载 2015-05-29 20:39:05 · 2208 阅读 · 0 评论 -
Java 8 Annotation 新特性在软件质量和开发效率
Java 8 对 Annotation 引入了两项扩展,即 Type Annotation 和 Repeating Annotation,旨在通过这些扩展为开发者提供更多的可能性,从而提升自动化代码分析的全面性和效率,提升软件质量,提高开发效率。本文将对这些新的特性进行具体阐述,以及结合具体工具展示如何进行代码的自动化分析和校验。转载 2015-05-13 20:15:38 · 1461 阅读 · 0 评论 -
java的锁机制
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到锁转载 2015-05-27 10:04:48 · 886 阅读 · 0 评论 -
使用cglib在内存中动态生成类
【博文总目录>>>】|【项目源码>>>】CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。本示例展示了如何使用cglib动态生成类。package wjc.cglib;import net.sf.cglib.beans.BeanGenerator;import net.sf....原创 2018-02-22 09:55:05 · 3900 阅读 · 1 评论