摘要: 编译原理实验-LL1语法分析器(自动生成First、Follow)java 博主在做实验时,参考众多他人代码,发现bug众多,在@moni_mm代码基础上,与伙伴把能看到的BUG都做出修正,同时增添了一个GUI展示。再次我将代码做出讲解。完整代码最下方贴出。 一、数据结构 下文程序运行的文法为: s 阅读全文
posted @ 2020-10-13 10:26 梦里飞Mhlsky 阅读(727) 评论(0) 推荐(0) 编辑
摘要: 题目:用面向对象的思维设计相关类,从而实现直线与直线、直线与圆、直线与矩形的交点。 菜鸡的C++实现: 公式: 直线与直线:ax+bx+c=0; 一般公式:X = (c * otherline.b - b* otherline.c) /(b * otherline.a - a * otherline 阅读全文
posted @ 2020-04-14 19:24 梦里飞Mhlsky 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 一、String(字符串常量) public final class String implements java.io.Serializable, Comparable<String>, CharSequence 可以看到String类被final修饰: “String对象一旦被创建就是固定不变的 阅读全文
posted @ 2020-03-06 13:33 梦里飞Mhlsky 阅读(60) 评论(0) 推荐(0) 编辑
摘要: java.util.concurrent.locks包下常用的类与接口(lock是jdk 1.5后新增的) (1)Lock和ReadWriteLock是两大锁的根接口,Lock代表实现类是ReentrantLock(可重入锁),ReadWriteLock(读写锁)的代表实现类是ReentrantRe 阅读全文
posted @ 2020-03-06 13:30 梦里飞Mhlsky 阅读(64) 评论(0) 推荐(0) 编辑
摘要: submit()和execute()都是 ExecutorService 的方法,是添加线程到线程池中。 submit()有返回值,返回future。 execute()没有返回值。 1、线程池的优势 (1)、降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁造成的消耗; (2)、提高系统响 阅读全文
posted @ 2020-03-06 13:24 梦里飞Mhlsky 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 在并发队列上JDK提供了两套实现: 一个是以ConcurrentLinkedQueue为代表的高性能队列; 一个是以BlockingQueue接口为代表的阻塞队列; 无论哪种都继承自Queue。 1.阻塞队列 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列 阅读全文
posted @ 2020-03-06 13:19 梦里飞Mhlsky 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 线程组、阻塞队列、线程池、这点只看,确实有点看不下去,博主也是费劲了,额,学会了还不难。真J恶心,不过不都是如此嘛,没有接触过的就会畏难。反正是笨就对了哈哈。 一、线程组: 可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以用线程。这样的组织结构有点类似于树的形式。 阅读全文
posted @ 2020-03-06 13:17 梦里飞Mhlsky 阅读(56) 评论(0) 推荐(0) 编辑
摘要: ynchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。 ** 1. synchronized 方法: 通过在方法声明中加入 synchronized关键字来声明 synchronized 方法。如: public synchronized v 阅读全文
posted @ 2020-03-06 13:13 梦里飞Mhlsky 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 引出:三个线程分别锁定this , obj1 , obj2 三个对象,请运行此代码查看打印结果。 class Food { int id; public int getId() { return id; } public void setId(int id) { this.id = id; } } 阅读全文
posted @ 2020-03-06 13:10 梦里飞Mhlsky 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 本文转载了部分 CSDN博主「Hatoandaburedo」的原创文章,也欢迎访问我的个人博客 首先一图概之: 当一个线程执行了start方法后,不代表这个线程就会立即被执行,只代表这个线程处于可运行的状态,最终由OS的线程调度来决定哪个可运行状态下的线程被执行。一个线程一次被选中执行是有时间限制的 阅读全文
posted @ 2020-03-06 13:07 梦里飞Mhlsky 阅读(76) 评论(0) 推荐(0) 编辑