java
嚼不烂菠菜
这个作者很懒,什么都没留下…
展开
-
CAS实现:用两个线程交替打印A1B2C3D4E5.....
CAS实现:用两个线程交替打印A1B2C3D4E5… package com.gaiwey.juc.interview.A1B2C3D4; /** * 使用CAS(COMPARE AND SWAP)比较再交换原理实现两个线程之间交替执行 * * @author 嚼不烂菠菜 */ public class CASTest { // volatile关键字是重点,它来保证这个变量可以被两个线程随时相互发现 volatile static int i = 0;// 初始值为0 public原创 2020-07-24 18:30:52 · 816 阅读 · 0 评论 -
synchronized notify wait实现:用两个线程交替打印A1B2C3D4E5.....
package com.gaiwey.juc; /** * 一道面試題:用两个线程交替打印A1B2C3D4E5...... * @author 嚼不烂菠菜 * */ public class WaitNotifyTest { public static void main(String[] args) throws Exception { final char[] aC = "ABCDEFGHI".toCharArray(); final char[] a原创 2020-07-24 15:13:53 · 289 阅读 · 0 评论 -
实现两数交换:在不借助临时变量的前提下用异或运算来实现
在不借助临时变量的前提下实现两数交换的方法 package com.gaiwey.algorithm; /** * 两数交换也有别的解法,此处使用二进制异或运算来实现 * * 注:异或运算最简单记就是不进位相加 * * @author 嚼不烂菠菜 * */ public class Test { public static void main(String[] args) { // 两数交换 int a = 8, b= 17; System.out.println("交换原创 2020-07-24 14:54:52 · 106 阅读 · 0 评论 -
数组实现队列:数组长度固定,数组类型随意,我用的int
数组实现队列 package com.gaiwey.algorithm; /** * 用数组实现队列:固定长度的数组,数组类型随意,我用的int实现 * 难点在于控制入队和出队的索引 * @author 嚼不烂菠菜 */ public class MyQueue { private int[] arr;// 存放数据的数组 private int size; // 数组长度 private int pushindex;// 添加元素的索引位置 private int pollindex;原创 2020-07-24 11:31:25 · 166 阅读 · 0 评论