2020 09-26

曹工说面试题:一个线程协同问题,解法繁多,都要被玩坏了,趁着没坏,一起玩吧

前言 最近两个月写文章很少,因为自己学习状态也不是很好,我看了下,上一篇文章,都是一个月前了。 不知道大家有没有感觉,小学初中读的一些书,看的一些文章,到现在都印象深刻,反倒是高中学的知识,高考后就慢慢消散,直到遗忘。 我想说的是,记得初中学过鲁迅的《藤野先生》,里面有一段话,大意是:久了不联系,有时候想联系,却又无从下笔,到最后就更是不了了之了。 我找了下原文: 将走的前几天,他叫我到他家里去,交给我一张照相,后面写着两个字道:“惜别”,还说希望将我的也送他。但我这时适值没有照相了;他便叮嘱

2020 09-26

2021华为软件工程师笔试题第一道

题目阐述 某公司要发传单。 现有主管、组员和外包人员三个层级,主管将发传单任务委托给组员,组员再把任务委托给外包。 实际干活的只有外包,主管和组员的传单数(名义上)为其手下的外包人员的传单数目之和。 要求输出所有人的传单总数,格式如下:姓名<传单数目>。 此外,为了清晰,输出要以树形结构输出,用-和--分别作为组员和外包人员的前缀。 样例 输入 performance后面的为外包人员姓名,该人员的传单数目。 organization后面的为层级制度,如Aaron为主管,Abel

2020 09-26

JUC 常用4大并发工具类

什么是JUC?   JUC就是java.util.concurrent包,这个包俗称JUC,里面都是解决并发问题的一些东西   该包的位置位于java下面的rt.jar包下面 4大常用并发工具类:   CountDownLatch   CyclicBarrier   Semaphore   ExChanger   CountDownLatch:   CountDownLatch,俗称闭锁,作用是类似加强版的Join,是让一组线程等待其他的线程完成工作以后才执行   就比如在启动框架服务

2020 09-26

Solon详解(八)- Solon的缓存框架使用和定制

Solon详解系列文章:Solon详解(一)-快速入门Solon详解(二)-Solon的核心Solon详解(三)-Solon的web开发Solon详解(四)-Solon的事务传播机制Solon详解(五)-Solon扩展机制之SolonPluginSolon详解(六)-Solon的校验扩展框架使用与扩展Solon详解(七)-SolonIoc的注解对比Spring及JSR330 solon.extend.data框加在完成@XTran注解的支持同时,还提供了@XCache、@XCacheRemo

2020 09-26

Laver 文件版本遍历器

系统简介 最近有个需求,需要罗列出各个目录中文件的信息,检索各类文件的最新版本。网上看了很多方式,但发现没有合适的。于是利用空余时间开始编写了一套文件遍历系统,如此便有了Laver(紫菜)。Laver遵从简单好用的原则,用户友好的UI界面。且所有代码基于Java,每一个自定义的类与方法都有详尽的纯中文注释信息,方便二次开发。 Laver,最初起自LastestVersion,发现两者结合后正好是我喜欢的蔬菜之一。缘,妙不可言。 功能演示 功能说明 遍历目录:可以对选中的根目录进行深度遍历,检

2020 09-26

据说是面试题:由【if(a==1&&a==2&&a==3)】引发的思考探讨

   有一天,突然在一个微信群有个群友发了张图片抛出了一道题,如图: ​ 下面,我们先还原原题: 1//下面代码什么时候会打印1? 2vara=?; 3if(a==1&&a==2&&a==3){ 4console.log(1); 5}     说实话,我第一眼看到时居然理所当然地认为让a=true或者a=!0应该就可以了,但是代码世界的种种复杂变数让我不能轻易相信第一感觉,于是马上

2020 09-26

System Verilog随笔(1)

测试文件该怎么写? 首先看一个简单代码案例: `timescale1ns/10ps          //1 moduletest;              //2   intputwire[15:0]a;   outputreg[15:0]b;   regclock; chipchip(.clock(.clock));        //3 always#5clock=~clock;        //4 initialbegin              //5   clock

2020 09-26

官方授权

C++是一种中级语言,它是由BjarneStroustrup于1979年在贝尔实验室开始设计开发的。C++进一步扩充和完善了C语言,是一种面向对象的程序设计语言。C++可运行于多种平台上,如Windows、MAC操作系统以及UNIX的各种版本。 本教程通过通俗易懂的语言来讲解C++编程语言。 现在开始学习C++编程! C++在线工具 谁适合阅读本教程? 本教程是专门为初学者打造的,帮助他们理解与C++编程语言相关的基础到高级的概念。 阅读本教程前,您需要了解的知识: 在您开始练习本教程中所给出的

2020 09-26

有关图的连通性的Tarjan算法

割点与桥 在一个无向连通图中,若将某个点及其相连的边删除后,图就不连通了,则这样的点被称为割点。在一个无向连通图中,若将某条边删除后,图就不连通了,则这样的边被称为割边,即桥。 在一张图中求出割点或割边前,我们还需要两个辅助值来得到答案。 时间戳(dfn) 在图的dfs过程中,每个点被第一次访问的时间排行即为时间戳。 追溯值(low) 对于每一个点,该点的追溯值为以该点为根的子树中所有能通过一条不在搜索树上的边能到达该点的点的时间戳最小值。即对于每一个点\(x\),它的追溯值要满足三个条件:1)

2020 09-26

手撸Mysql原生语句--多表

在开始之前,我们需要建立表,做建表和数据的准备的工作。 1.建表 createtabledepartment( idint, namevarchar(20) ); createtableemployee( idintprimarykeyauto_increment, namevarchar(20), sexenmu('male','female')notnulldefault='male', ageint, dep_idint, constraintfk_idforeignkey(dep_i