赞了文章2022-06-07
简介: 在日常工作中我观察到,面对老系统重构和迁移场景,有大量代码属于流水账代码,通常能看到开发在对外的API接口里直接写业务逻辑代码,或者在一个服务里大量的堆接口,导致业务逻辑实际无法收敛,接口复用性比较差。所以本文主要想系统性的解释一下如何通过DDD...
发布了文章2020-11-11
操作:Option + Space 快捷打开 spotlight,可以搜索文件,也可以当计算器还,可以输入ter可以快捷打开terminalOption + Command + Space 快捷打开 Finder 的文件搜索,可以设置搜索范围Control + Command + Space 快捷打开表情,表情支持文字搜索三指轻点触控板可以...
发布了文章2020-04-08
String 类是Java中非常基础和重要的类,提供了构造和管理字符串的基本逻辑,它是典型的 Immutable 类,被声明成为 final class,所有的属性也是 fianl 的。由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象,因此字符串相关性能的效率对应用...
赞了文章2020-04-01
一、文件上传漏洞概述 {代码...} 二、WebShell {代码...} 三、文件上传漏洞绕过方法 1.客户端JavaScript验证 {代码...} 2.服务器端Mine类型检测 {代码...} if (isset($_POST['submit'])) { {代码...} {代码...} 3.服务端文件扩展名验证 (1)黑名单 {代码...} {代码....
发布了文章2020-03-31
Exception 和 Error 都是继承了 Throwable类,只有 Throwable 类型的实例才可以被抛出 throw 或者被捕获 catch,它是异常处理机制的基本组成类型。
赞了文章2020-03-25
某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑...
发布了文章2020-02-14
事情的经过是这样的,晚间有个朋友让我帮她下载两个公众号文章里的视频,我想这so easy,通过Chrome打开该文章,通过安装的浏览器插件(猫抓)很快搞定的第一个视频。
发布了文章2019-12-30
前面的几篇内容都是关于J.U.C的同步工具类,包括使用时需要注意的地方,以及它们是如何通过AQS来实现的,在解读源码的时候,发现经常出现CAS操作,下面我们来了解一下CAS。
发布了文章2019-12-30
敬请期待 ·_·
发布了文章2019-12-25
通过前面对Semaphore的学习,我们了解了AQS框架中共享模式下的基本流程,本篇再去看看另一种共享模式的实现——CountDownLatch,以及功能和它类似的CyclicBarrier。
发布了文章2019-12-25
在Lock & Condition中我们学习了管程这种并发编程模型,在管程模型提出之前,信号量模型一直是并发编程领域的终结者,几乎所有支持并发编程的语言都支持信号量机制,今天就来看看Java中的信号量实现--Semaphore。
发布了文章2019-12-20
上一篇我们了解了Lock接口与Condition接口。本篇来看看J.U.C中的ReadWriteLock,再次膜拜一下Doug Lea大神的杰作。
发布了文章2019-12-18
在正式开始之前学习J.U.C之前,我们先来了解一下Java中的管程模型,尤其是对管程示意图的掌握,会极大的帮助我们理解并发包中的方法逻辑,之后会对Lock和Condition进行简单的介绍。
发布了文章2019-12-16
这里就不得不说描述死锁的经典例示例——“哲学家进餐”问题,五个哲学家去吃中餐,围坐在一张圆桌旁,他们每个人只有一根筷子,并且放在两个人的中间。哲学家们时而思考,时而吃饭。每个人都需要一双筷子才能吃东西,吃两口后把筷子返回远处,继续思考。
发布了文章2019-12-09
前言: 在线程和进程一篇中提到了多线程带来的风险,本篇将阐述风险之一的数据安全性问题是如何产生的,以及解决办法,开篇会介绍硬件中的内存架构以便更好的理解Java内存模型。
赞了回答2019-12-03
老板:老程,这个模块多久能完成啊? 程序员:这个模块需要一周的时间! 大部分情况下这个时间是这样算出来的:4天干别的+1天码代码+2天周末
发布了文章2019-12-03
前面大致了解了线程的创建和生命周期,线程在生命周期中并不是固定处于某一个状态而是随着代码的执行在不同状态之间切换。本篇通过对Thread类中方法的讲解来展示线程生命周期的变化,同时也会对Thread类本身进行理解。
发布了文章2019-12-01
实现Runnable接口,重写run方法。 Runnable的意思是“任务”,是通过实现Runnable接口,定义一个子任务,交由Thread对象执行,通过调用Thread的start方法来创建一个新线程来执行该任务。如果直接调用run方法,则会被当作当前线程的一个普通方法调用,不会创建一个新...
发布了文章2019-11-22
前言: 本模块是在下学习Java并发的一些记录和思考,若有不正之处,请多多谅解并欢迎指正。 开头会抛出几道常见面试题,引出本篇的内容。 每个问题都有属于你的答案。 如果你有想法或建议,可以评论或者私信我 : ) wangjie2yd@gmail.com 面试问题 Q : 线程和进程的...