自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

少年时未觉悟 ,觉悟时不年少,还危机四伏!

We make choices in life and we choose to live with them.

原创 Java 并发编程技术实践之路专栏导读

背景 拟准备重新整理一下 Java 并发编程相关的技术知识,系统并完善地介绍自己阅读 Java 并发包源码的心得,并结合工作中碰到的有关并发的问题,写一个关于 Java 并发编程的专栏系列。此篇为开题导读,让我们来回顾一下 Java 并发相关的知识图谱。 ...

2019-12-19 22:57:18 155 2

原创 一个汉字笔画库 hanzi-writer 的小应用

背景 最近在教五岁的毕小宝小朋友写字,令人惆怅的是我竟然弄不准汉字的笔画。百度搜了下,这么多年自己写“毕”的笔画竟然是错的,提笔先写的是竖勾,而正确的第一步是一横,真有误导下一代的风险啊。 网上能找到有该功能的 APP ,但下载使用过程中看到广告超多,体验很不好。 今天在阮一峰先生每周分享的...

2019-05-17 20:30:51 2017 2

原创 月末复盘,正视稀缺状态

摆脱稀缺状态,掌握我们的生活!

2020-05-31 10:03:31 530 0

原创 Java Swing 实现一个学生社团信息管理小应用

最近玩了一下 Java 的 Swing 技术,实现了一个简单的学生社团信息管理系统,基本功能有用户注册、登录、社团信息的增、删、改、查、退出系统等。

2020-05-30 18:44:10 102 1

原创 读书笔记:《结构思考力》基于目标定主题
原力计划

背景 致用类书籍的阅读,如果仅仅是读,是不够的,还需要刻意练习。本文是《结构思考力》第二章 “基于目标定主题” 的学习笔记和练习作业。 ABCD 目标法 如果把注意力当成一种能量的话,目标就可以将你把能量集中,即关注才能得到。 确定目标,才能让表达有的放矢。ABCD 目标法 是作者撰写的一个小...

2020-05-05 20:48:40 152 3

原创 读书笔记:结构思考力的基本特点和操作步骤

巨大的事物,总有细小的开头。这其中的每一环,一直能够追溯到最初一个微小的起心动念,一环扣一环,形成一个因果链。

2020-05-04 19:29:57 109 0

原创 Linux 学习:用 awk 命令提取 JSON 数据的值列

用 awk 命令提取 JSON 数据的值列,可以通过对指定的列添加处理逻辑来完成,本文将整理一个简单的解析 JSON 值的过程。

2020-05-01 09:20:52 201 0

原创 Java Web 应用 Cookie 安全指南

Java Web 应用中,如果没有对 JESSIONID 这类 Cookie 信息设置 httpOnly 属性,会有什么风险呢?不同服务器对该属性的支持情况如何?登录成功后会话 ID 不变有问题吗?本文将介绍这些关于 Cookie 的问题。

2020-04-29 08:51:04 71 0

原创 Burpsuit 抓火狐浏览器包配置操作整理

由于工作需要,弄了一下午的 Burpsuit 抓包工具,工具的学习是有时间成本的。两年前用过,当时没有整理用法,导致今天又重新搜资料、学习使用方法,耗费了不少时间。本文记录一下使用过程,万一以后又需要用到呢!话说回来,一个工具要用到第三次,大概也不会忘记了吧。

2020-04-26 18:57:02 95 0

原创 Python 练习题:学生成绩求极值

背景 今天整理一个 Python 练习题,需求描述如下: 程序一: 接收用户输入的名字和成绩,成绩是1-100 间、最多两位小数。 按Q结束输入,并将合法输入的数据写入到一个文件。 程序二:读取程序一输出的文件,然后对成绩计算平均值,并输出最高分和最低分值及姓名。 实现分析 本例使用到的知识点...

2020-04-24 07:06:07 100 0

原创 Java 实现银行卡功能练习题

一个简单的 Java 类练习题目,实现银行卡转账的基本功能。

2020-04-18 09:14:25 84 0

原创 Java Web 文件下载填坑指南
原力计划

今天,调整了一个旧项目的报表下载功能,原来文件是存储在服务器本地的,下载直接从本机获取就可以了,现在要改成从 FTP 服务器获取文件再返回给前台。文件下载是一个老生常谈的功能了,你知道这里面有坑吗?

2020-04-17 20:13:15 77 0

原创 IDEA maven 资源文件打包注意点

最近使用 IDEA 打包 maven 项目时,碰到客户反映说日志级别为 debug 导致磁盘爆满的问题,一直没留意,今天专门看了下 war 包中类路径下的配置,真的是本机测试环境中的配置文件。

2020-04-14 18:55:36 68 0

原创 微信小程序学习系列(一)
原力计划

背景 2 月份在 GitChat 上买了一个小程序开发专栏,加上碰到好几个网友咨询我会不会少儿学习类的小程序开发。所以最近决定研究一下小程序,目标是用小程序做一个少儿诗词学习l类的小应用。 本文将记录微信的 HelloWorld 的目录结构,剖解首页的内容,以初步了解小程序开发的基本要素。 准备工...

2020-04-12 09:16:55 105 0

原创 JavaMailSenderImpl 避坑攻略

背景 一般来说,应用系统都需要发送邮件,提供一个认证的邮箱帐号和密码是很常见的。但是,碰到一个特殊情况,客户方是内网直连邮箱服务器的,不需要通过帐号密码认证发送邮件,这样的话,理论上将 mail.smtp.auth 属性配置为 false 就可以了。 但是,实际上却碰到一点小波折,本文就来说是邮件...

2020-04-02 20:35:45 884 0

原创 Vue 学习笔记:递归组件实现过程分析
原力计划

文章目录背景组件名称拼写el-select 的 onchange 事件递归组件数据结构递归组件原理props 双向通信原理组件参数分析完整实现的代码运行结果编程启示录 背景 最近研究一个递归组件的实现过程,发现组件通信远远比我以前接触的皮毛复杂多了,本文将总结这个组件封装过程中的种种问题。 组件名...

2020-02-22 12:07:24 235 0

原创 前端开发笔记:记一次网站创建的过程

文章目录背景额外的请求参数img 未闭合时修改 src 无效图片加载优化切换 Tab 时滚动到顶部favicon.ico 的作用 背景 这两天做了一个简单的课程商城,用手机微信测试时总有一些小问题。虽然只是一个简单的应用,前后也花了两天的时间,本文来整理下期间碰到的问题。 额外的请求参数 微信浏览...

2020-02-15 17:19:19 86 0

原创 Vue 学习笔记:v-for 循环引用组件

前端开发过程中,需要动态添加操作面板,将操作面板封装成组件后,使用 v-for 引用多个操作面板。这里有两个知识点,子组件引用时怎么动态设置 ref 属性? <el-button :key="index" :ref="...

2020-02-07 20:52:02 1478 0

原创 Vue 学习笔记:el-table-column 无数据时不展示实现过程

背景 Vue 开发时需要对 el-table 进行封装,使用 slot 可以定制 el-table 的内容。有一种应用场景是这样的:列表上的某一行可以点击展开查看,也就是“套表” 。 怎么让没有子列表的行不显示展开操作按钮呢?这就是本文要讨论的问题。 套表示例 套表,是通过 el-table-c...

2020-02-06 13:32:31 901 0

原创 Vue 学习笔记:sync 实现 props 双向通信

vue-admin-element 是一个比较流行的开源项目,里面有对 el-pagination 组件的二次封装,pagination,本文将整理这个组件封装时 sync 的应用。

2020-02-05 13:22:53 114 0

原创 关于代理模式和装饰模式的一些思考

笔者前几天看了一个面试题 “说一下什么是代理模式?”,于是回忆了一下这个设计模式。

2020-01-20 11:23:59 77 0

原创 实践篇:如何编写线程安全的类

文章目录引言线程安全的几种实现设计不变的类 引言 并发环境下设计线程安全的类,一个类如果是不变的,那么它一定就是线程安全的。这是设计模式中不变模式的一种,一个对象在创建之后,它的状态就不会再发生变化,它就是不变类。java中的String,各种基本类型的封装类型,都是不变类。在设计任何一个类的时候...

2019-12-31 12:15:41 105 0

原创 干货篇:论线程池资源关闭的重要性

引言 本文是根据笔者去年写的一篇付费文章整理而来的,主要介绍 Java Web 应用中线程池资关闭的重要性。 背景是这样的,笔者去年参与了一个小项目的开发,部署测试环境时得知客户要求使用 jboss 企业版作为 web服务器。笔者之前参与的所有项目都是基于Tomcat 的,测试时直接重启Tomca...

2019-12-26 18:38:01 75 0

原创 并发案例:如何保证统计变量的原子性

文章目录引言i++ 数据不一致案例分析案例描述问题分析解决办法AtomicInteger 原子类概述案例描述问题分析延伸测试启示录 引言 i++ 这个简单的语句,想必大家都不陌生,但是在多线程环境下,如果 i 是一个全局共享变量,那么它还能正确地按顺序累加吗?这就是本文要介绍的内容,如何保证统...

2019-12-25 12:21:38 64 0

原创 并发案例:CyclicBarrier 使用不当导致死锁问题分析

文章目录引言功能分析单线程调度死锁问题复盘打破死锁的方法编程启示录 引言 前文讲述了 CyclicBarrier 和 CountDownLatch 的基本用法,本文笔者将给大家复盘一个 CyclicBarrier 使用不当导致线程饥饿死锁的踩坑经历。 今年年初的时候,笔者写过一个简单的应用,对不...

2019-12-24 20:34:22 119 0

原创 基础篇: CyclicBarrier 和 CountDownLatch 概述

文章目录背景Java 并发知识思维导图CyclicBarrier 基本用法构造方法实践编码测试类结果分析CountDownLatch 用法概述使用案例编程启示录 背景 电脑桌面上有一张“Java 并发编程知识思维导图”,最近刚好又用到了 CyclicBarrier 类,这是一篇笔者周末总结的 Cy...

2019-12-24 20:20:46 69 0

原创 死锁篇:线程饥饿死锁问题

文章目录引言线程饥饿死锁资源死锁Timer 定时器死锁分析 引言 线程饥饿死锁 《Java并发编程实践》中对线程饥饿死锁的解释是这样的:在使用线程池执行任务时,如果任务依赖于其他任务,那么就可能产生死锁问题。在单线程的Executor中,若果一个任务将另一个任务提交到同一个Executor,...

2019-12-24 19:11:19 128 0

原创 死锁篇:协作对象死锁问题

协作对象间的死锁问题 在协作对象之间可能存在多个锁获取的情况,但是这些获取多个锁的操作并不像在LeftRightDeadLock或transferMoney中那么明显,这两个锁并不一定必须在同一个方法中被获取。如果在持有锁时调用某个外部方法,那么这就需要警惕死锁问题,因为在这个外部方法中可能会获...

2019-12-23 18:19:33 118 0

原创 死锁篇:锁顺序死锁问题

文章目录引言什么是锁顺序死锁动态的锁顺序死锁实践启示录 引言 初次接触死锁的概念是大学的一门课程《操作系统原理》中描述的“哲学家进餐”问题。操作系统中,由于各个进程共享系统资源而可能出现死锁问题。同样 Java 多线程环境下,也存在资源共享导致的死锁问题。当一组Java 线程发生死锁时,程序有可能...

2019-12-23 11:30:03 165 0

原创 源码篇:ThreadPoolExecutor 任务饱和策略验证

文章目录引言策略一:通知模式抛弃策略二:静音模式抛弃策略三:限制提交策略四:调用者执行 引言 使用java的任务管理框架的线程池执行任务时,线程池的任务等待队列被填满时,饱和策略开始发挥作用。ThreadPollExecutor的饱和策略通过setRejectedExecutionHandle...

2019-12-22 19:20:19 134 0

原创 源码篇:ThreadPoolExecutor 源码阅读笔记

文章目录引言线程扩容机制线程池提交任务的流程任务饱和策略 引言 java并发包中的任务调度框架Executor的实现类ThreadPoolExecutor的源码阅读。 线程扩容机制 ThreadPoolExecutor提供了某些Executor的基本实现,是一个灵活的、稳定的、支持定制的线程池。首...

2019-12-22 11:54:03 73 0

原创 源码篇:ReentrantLock 源码分析下篇

文章目录引言lock 和 lockInterruptibly 的区别lock 源码lockInterruptibly 源码条件队列条件队列的节点状态等待和唤醒操作 引言 上一节介绍了 ReentrantLock 类的 lock 锁获取流程,本节主要介绍两个知识点: lock 和 lockInte...

2019-12-21 17:30:49 84 0

原创 源码篇:ReentrantLock 源码分析上篇

文章目录引言类图结构公平锁NonfairSync 锁 引言 AQS ,全称「 AbstratcQueuedSynchronizer 」,它是Java 的显式锁实现的基础框架,本质是一个队列结构,以先进先出的方式维护线程的阻塞和唤醒。JDK 源码中,AbstratcQueuedSynchroniz...

2019-12-21 12:20:19 67 0

原创 基础篇:独占锁、共享锁、公平锁、非公平锁,叫我如何分得清

背景 本文继续讲解 Java 并发编程实践的基础篇,独占锁和共享锁,它跟上一篇的内置锁和显式锁的具体的实现策略。 锁的独占与共享 java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个...

2019-12-21 10:08:11 329 0

原创 基础篇:内置锁实现生产者和消费者模型

“生产者和消费者模型” 是多线程通信的典型案例,本章节将利用前一节的锁和条件队列的知识,来实现一个完整的有界缓冲区,并创建多个线程访问该有界缓冲区,模拟生产者提供数据、消费者处理数据的过程。

2019-12-20 19:19:53 100 0

原创 基础篇:内置锁和显式锁摸底

内置锁和显式锁是 Java 的两种不同加锁机制,在实际开发中是互斥的,只能选择一种方式,不能混用。笔者近几年在 CSDN 问答模块看到不少关于 synchronized 和 wait、notify 的提问,意识到这可能是初学者不太容易理明白的问题,所以本文来整理下二者的用法和注意事项。 内置锁...

2019-12-20 09:40:23 229 0

原创 Vue 学习笔记: 组件通信方式汇总

背景 Vue.js 在前端貌似很火的样子,虽然年初玩过 Angular.js ,同为前端框架,使用体验很类似,但是 Angular.js 的知识已经淡忘了,

2019-12-18 18:02:15 59 0

原创 Vue 学习笔记:$attrs 和 $listeners 的用法

学习 vueAdmin-template 项目时,看到两个属性 v-bind="$attrs" 和 v-on="$linteners",于是就这两个属性的用法作了一下深入的了解,通过一个简单的 demo 测试并理解了它们的用法和作用。 我们知道,向子组件...

2019-12-07 18:37:37 229 0

原创 Vue 学习笔记:工具篇

背景 github 上的一个vue 项目导入 IDEA 后,打开工程目录,发现各种标红的代码,但是工程能正确启动。本文记录去掉这些错误提示的过程,根源是 IDEA 环境配置不识别的问题,IDEA 识别的有问题的文件,它的颜色跟正常文件颜色都不一样,是红色的,普通文件名显示红色,js 直接用红色波...

2019-12-07 10:37:00 69 0

原创 SNMP 学习中篇——v3 版本使用

背景 SNMP v3 版本是一种安全的协议,支持认证

2019-11-23 10:30:36 120 0

提示
确定要删除当前文章?
取消 删除