Java
goldlone
这个作者很懒,什么都没留下…
展开
-
Java 并发 多线程 学习笔记
接口Runnable和类Thread的区别Runnable -> run(): 不是有单独的线程驱动的,需要依托其他线程Thread -> run(): 具有自己的线程使用Executor进行线程管理不占用当前启动线程的资源程序会在调用shutdown()之前提交的所有任务完成后结束ExecutorService: CachedThreadPool: 为每原创 2018-07-20 14:44:23 · 962 阅读 · 0 评论 -
Java注解
元注解: 专职负责注解其他的注解@Target: 表示该注解可以用于什么地方,可用的ElementType参数包括: CONSTRUCTIOR: 构造器的声明FIELD: 域声明(包括enum实例)LOCAL_VARIABLE: 局部变量声明METHOD: 方法声明PACKAGE: 包声明PARAMETER: 参数声明TYPE: 类、接口(包括注解类型)或enum声明@Ret...原创 2018-07-20 14:39:28 · 876 阅读 · 0 评论 -
Java 自增线程安全性测试及解决方案
i++线程不安全原因多个线程同时访问共享变量i,而JVM允许每个线程存储变量的副本,i++的操作可以分为三步: 取值、自增、写回。存在一个线程在 自增 时,刚好有线程在 取值,因此最后会出现i增加的结果总比预计的结果线程小。测试例:class TestIPlus { private int val = 0; public void run() { ...原创 2018-07-19 15:46:25 · 2268 阅读 · 0 评论 -
Java 生产者与消费者案例 双指针操纵数据缓存区
简介生产者和消费者共同操纵一个数据缓冲区,其中生成者向缓冲区中写入数据,消费者从缓冲区中读取数据。本程序实现如下,生产者和消费者实现Runnable接口,不断写入或读取数据。多个生产者和消费者线程通过Executor进行管理。对数据缓冲区的操作中,使用写入位置指针和读取位置指针分别标明写入或读取位置。测试程序:// 声明唯一的数据缓存区DataCache cache = ...原创 2018-07-21 14:35:56 · 1055 阅读 · 0 评论 -
【8种排序算法】Java实现
import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr= {49,38,65,97,76,13,27}; quickSort(arr, 0, arr.length-1); System.out.p...原创 2018-07-31 15:44:21 · 3675 阅读 · 1 评论 -
使用前缀树过滤敏感词
定义前缀树类public class TrieNode { // 是否为关键词结尾 private boolean end = false; // 当前节点的所有的子节点 private Map<Character, TrieNode> subNodes = new HashMap<Character, Tri...原创 2018-08-10 14:53:37 · 3117 阅读 · 0 评论