前言 在并发编程中,如果要想保证共享数据的安全性,我们一般都需要加锁。但是加锁会使得程序效率明显降低。 在java.util.concurrent.atomic包下,JDK中就为我们提供了使用CAS算法的无锁的原子操作类,可以提高并发编程程序的效率。 这些原子操作类的CAS算法都是利用Unsafe提 ...
分类:
其他好文 时间:
2020-05-11 23:29:07
阅读次数:
71
前言 在日常使用集合时,我们通常使用迭代器来处理集合中的数据,假如有一个用户列表 List,我们想要将用户按照性别分组生成 Map 。需要遍历 List,然后判断 Map 中是否存在该性别对应的键,如果没有该性别就放入。如果有则拿出值List,添加 User 之后再放入。整个流程看起来没有问题。但我 ...
分类:
其他好文 时间:
2020-05-11 23:26:49
阅读次数:
70
RPC远程过程调用可以说是分布式系统的基础,本文将通过Java演示一次普通的rpc调用到底发生了什么。 我曾经在网上看到有人提问,为什么RPC要叫作远程过程调用,而不叫作RMC远程方法调用。个人认为RPC的叫法才是合理的,远程调用的是某个过程,不一定是一个具体的方法,你只要看过第一个版本的代码就能懂 ...
分类:
编程语言 时间:
2020-05-11 15:23:21
阅读次数:
68
@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格。通过在你的基于架构的 XML 配置文件中包含以下元素,@AspectJ 支持是可用的。 1.第一步:倒入jar包,跟上个例子包是一样的 aspectjrt.jar aspectjwea ...
分类:
编程语言 时间:
2020-05-10 20:45:45
阅读次数:
51
1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值4) ...
分类:
其他好文 时间:
2020-05-07 15:47:43
阅读次数:
62
反射:框架设计的灵魂 * 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。 * 获取Class对象的方式: 1. Class.forNam ...
分类:
编程语言 时间:
2020-05-04 17:17:09
阅读次数:
69
八个监听器 1. ServletContextListener: 1). what: 监听 ServletContext 对象被创建或销毁的 Servlet 监听器 2). how: > 创建一个实现了 ServletContextListener 的类, 并且实现其中的两个方法 public cl ...
分类:
其他好文 时间:
2020-05-01 22:22:56
阅读次数:
59
阻塞队列 概念 队列 队列就可以想成是一个数组,从一头进入,一头出去,排队买饭 阻塞队列 BlockingQueue 阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示: 线程1往阻塞队列中添加元素,而线程2从阻塞队列中移除元素 当蛋糕店的柜子空的时候,无法从柜 ...
分类:
其他好文 时间:
2020-05-01 00:46:29
阅读次数:
46
1、前言 在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。在大多数情况下,这些机制都能很好地完成工作,但却无法实现一些更高级的功能,例如,无法中断一个 ...
分类:
其他好文 时间:
2020-04-30 23:23:53
阅读次数:
55
1、定义一个点类Point,包含2个成员变量x、y分别表示x和y坐标,2个构造器Point()和Point(intx0,y0),以及一个movePoint(int dx,int dy) 方法实现点的位置移动,创建两个Point对象p1、p2,分别调用movePoint方法后,打印p1和p2的坐标。 ...
分类:
编程语言 时间:
2020-04-30 13:13:43
阅读次数:
52