- 博客(26)
- 资源 (1)
- 收藏
- 关注
原创 InterruptException通俗易懂地详解
有一个异常,大家都在描述现象,没有人深究其原因以及给出解决方案:nested exception is java.sql.SQLException: interrupt看起来像是SQL驱动抛出的异常,开门见山,这是线程的问题,这就究极的原因。起因如果我们希望线程等待1秒,通常我们会这样写: try { Thread.sleep(1000); } catch (InterruptedException e) {
2022-03-25 16:05:32 9551
原创 “布尔类型的变量名不要加is前缀”原理解析
最近阅读公司的规范,发现了这样的一条:【强制】POJO 类中的任何布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误。如果读者研发的产品正在大量使用阿里系框架,这个问题就需要十分注意。我们假设一个场景,设计文档中设计了一个类,其中某个field命名为 isXx:这时,对于前端后分离的项目,前端认为你返回的json中将存在一个 Key为 “isXx”的value。后端亦是如此开发。Class SomeClass{boolean isXx;/...}如
2022-02-15 10:45:21 1751
原创 如何优化MySQL数据库性能?
数据库设计思想深究----Mysql_kevinmeanscool的博客-CSDN博客在上文中,作者详细地解析了数据库的核心原理。对于数据库而言,影响数据库的性能因子比较多,但都不离开最基础的原理,本文将从开发尝试访问数据库到响应结果这一过程来详细探讨如何使得数据库性能更高效。首先,从整个B/S架构中,请求的快速响应,是我们追求的高性能。对于数据库,其中最直接的感受就是一条SQL的请求后响应的速度。我们与数据库打交道的方式通常有:CRUD。一、如何书写出高效的SQL追求高效的过程
2022-01-23 21:56:27 1280
原创 数据库设计思想深究----Mysql(图文)
在探索开始前,我们先试想一个问题:存储为什么要分缓存与磁盘?一、为什么要区分缓存与磁盘?我们利用高级语言,编写逻辑,最终被解释为指令集合,委托CPU去处理。根据计算机组成原理,我们知道CPU在执行指令时,操作的对象就是存储单元的存储内容,而这部分内容根据数字电路原理,我们可以知道就是信号灯的亮与不亮所代表的二元状态。而获取这种状态的方法,就是通过不断提供能量不断的刷新,不断观察得知。刷新的速度是无上限的,与材料和方式(还有光路)有关。因此有成本的限制。那我们肯定希望处理逻辑的速度越快
2022-01-20 15:43:43 1397
原创 Java设计思想深究----Spring框架(图文)
一、大名鼎鼎的Spring框架1.1 为什么需要Spring?谈及为什么需要Spring,就要搞清楚,我们的需求是什么。在20 世纪60年代以前,大家实现一个系统已经知道了人机交互的模式,前台在交互时调用后台的程序集合去响应交互,而后台开发者,往往是一个接口写到底:这样的编写方式在软件工程方法学之前十分广泛,但久而久之,随着系统的功能膨胀,程序员们突然发现修改功能的代价越来越沉重,比如数据库准备操作,一旦有所改动,n个功能就需要改n处,并且出现漏改错改需求无法得到满足的情况。于是
2022-01-11 10:05:37 657 1
原创 Java设计思想深究----多线程与并发(图文)
一切的缘起是昂贵的CPU我们都十分清楚,计算机的核心是计算,而负责这个功能的组件就是CPU。CPU有一个特性,在一个时刻只能处理一个程序。开发人员编写代码,代码被编译为机器语言,CPU收到机器语言(指令集),开始处理程序,而这个正在被CPU处理的程序就是进程(正在进行的程序)。当CPU正在处理一个程序时,由于其特性,其他程序就只能等待。你可能会想,一个接一个处理,不是很合理的设计吗?这仅仅对于CPU执行指令而言,的确如此。可是,数据在存储媒介上的I/O速度与CPU的速度相比,....
2022-01-08 16:05:02 1007
原创 Java设计思想深究----JVM垃圾回收(GC GarbageCollection)(图文)
回收的是什么垃圾 Garbage?我们都知道,编程是思想在内存上的映射,而内存的本质智能还是数据的快速读写。以C语言这种面向过程的语言为例,#include <stdio.h>int main(){ int a = 0; return 0;}当我们定义了一个变量a,并赋值,栈内存上有一个整形大小的区域便被申请,并被直接引用,当主函数return 0时,进程结束,该内存就会被操作系统自动free释放掉(物理上的擦除)。许多初级使用只使用堆栈变量。堆栈
2022-01-05 17:15:25 869
原创 减少使用 Date类 相关组合
什么是Date类?Date类表示时间上的特定时刻,具有毫秒精度。简言之,指发生某一事情的确定的日子、时期的抽象。在教学中,几乎所有的课程都指向使用Date类对象封装传递系统中的日期、时刻。如果有心阅读JDK中Date类的注释:“Prior to JDK 1.1, the class Date had two additional functions. It allowed the interpretation of dates as year, month, day, hour, m.
2022-01-04 16:10:59 2288
原创 Java设计思想深究----集合框架数学原理(图文)
你是否看过类似的这样的一张图:几乎所有的后台开发都会要求,熟悉/精通集合框架。不用数了,29个类,设计框架者Josh Bloch, Neal Gafter 肯定不是靠记忆去掌握集合框架。实际上,我们应该清楚编程语言是思想的记录,掌握集合框架,不妨去深究它背后的思想:数据结构。没错,又是看得到又仿佛看不到的数据结构。集合溯源:数据结构作者理解的数据结构从一个元素开始:什么是数据结构? | ProcessOn免费在线作图,在线流程图,在线思维导图 |简而言之:结构是.
2022-01-03 19:09:09 1077
原创 Java设计思想深究----类与对象实例化(图文)
类的编译、对象的声明、类的实例化、引用指向实例、反射Reflect、克隆(拷贝)Clone、单例类、隐式创建对象
2021-12-22 23:12:22 533
原创 Oracle/SQL 分组/分析/聚合比较通俗深入的解析
引言 在SQL实践的过程中,经常会出现一个异常。 “不是单组分组函数”,从字面意思理解起来似乎我们使用了一个无法对单个组进行分组的函数,而函数似乎就是我们经常使用的count、sum之类的封装接口。但其实,这样理解是100%不正确的,为何这样讲,如果读者真的迫切有问题想要解决,想了解这个事情,就请耐心的往下读,通俗,但需要仔细阅读,如果读者希望深入浅出,那再合适...
2019-12-05 15:24:17 1214
原创 latex基础语法
latex基础语法笔记用latex编辑一个文档首先,要声明这是一个文档类型通常用 \documentclass{article} 表示其次文档的正文内容通常用\begin%要输入的内容,其中注释是用%引用\end文档的标题用 \title{标题名} 表示,要写在文档声明与正文声明之间。文档的作者用 \author{作者名} 表示,要写在文档声明与正文声明之间。其中如果要引入ti...
2019-03-20 16:52:41 845
原创 C++编写经典算法之一:基数排序RadixSort(又称:桶子法BucketSort)(通俗易懂)
基数排序“基数排序”是数列排序的算法之一。属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)。基数,是同一类若干数据的集合,比如基数为个位数,那么个位数就是所有个位的数字的集合,通俗来说,你可以简单的理解为位数。“基数排序”通常有两种排序思路,一种是从低位到高位,称之为LSD(Least significant digital),相对的,另...
2019-02-28 16:53:44 1161
原创 C++编写经典算法之一:快速排序QucikSort(通俗易懂)
快速排序“快速排序”时数列排序的算法之一。与其他的算法相比,它的特点是数字的比较和交换次数少,在许多情况下可以高速地进行排序。其思路引点来自于我们打牌中的一种排序方法:我们在抽牌时,可以先把所有的牌抽起来,然后选定一个牌,把比它小的牌都有序地放在左面,把比它大的牌都有序地放在右面,从而实现整理牌组的目的。快速排序则是优化了上述的过程,利用了分治的思想(上文《归并排序》已经解释过了,不懂的...
2019-02-27 16:05:40 1347
原创 C++编写经典算法之一:归并排序MergeSort(通俗易懂)
归并排序&quot;归并排序&quot;是数列排序的算法之一。其思路引点来自于著名的“分治”思想和“递归思想”。“分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。在计算机科学中,分治法就是运用分治思想的一种很重要的算法。”而递归的思想,做为一种算法在程序设计语言中广泛应...
2019-02-25 15:05:01 11843 4
原创 C++编写经典算法之一:插入排序InsertionSort
“插入排序”是数列排序的算法之一。其思路引点来自于我们平时打扑克牌的习惯。“我们在整理扑克牌时,往往会倾向于将无序的扑克牌升序或降序的排列,其方法在于拿起一张牌,与其他牌对比,如果是升序排列,那就与左边的牌进行对比,将其放在比此牌大且比此牌小的位置,重复这个过程,就会得到一个有序的牌组。”算法思路首先,得到一个随机的数列。左端的数字已完成排序。然后,取出那些尚未操作的左端的数...
2019-02-22 19:36:46 1416
原创 C++编写经典算法之一:选择性排序SelectionSort
“选择性排序”是数列排序的算法之一。其思路引点来源于经典的“可乐雪碧问题”“现有两杯饮料,一杯是雪碧,一杯是可乐,试问如何可以将两杯饮料交换?”“答:最简单的解决方案就是利用一个空杯,创造一个缓存区。”选择性排序就是利用线性搜索数列并找到当前最小值,通过不断的将当前最小值放置当前位置索引的算法。算法思路这是一个未排序的数列。首先,线性搜索数列,找到最小值。将最小值替换为列...
2019-02-21 22:55:06 431
原创 C++编写经典算法之一:冒泡排序BubbleSort
“冒泡排序”是数列排序的算法之一其思路引点来源于经典的“可乐雪碧问题”“现有两杯饮料,一杯是雪碧,一杯是可乐,试问如何可以将两杯饮料交换?”“答:最简单的解决方案就是利用一个空杯,创造一个缓存区。”冒泡排序就是利用不断的对比、交换数据,从而实现对数列的排序。换言之,就是不断的拿起两个数,进行比较,如果是升序排序,就把小的放在前面,同理,降序排序,就将大的放在前面,不断的有序的重复这个过程,...
2019-02-16 19:06:51 887
原创 Mac上配置c/c++环境(例:CLion)
读前必看网上的方法鱼龙混杂,而且解决方案都是一知半解,本文作者通过大量搜索与实践找出一条最优的顺序性的方法用以在Mac上配置c/c++开发环境,内容较长,有心者请耐心拜读。 现在,你的Mac对于c/c++而言是干干净净的初始化环境...... 问题定义1: 首先,我打算在Mac上用c/c++写点程序,我需要什么? 解决方案1: 不...
2019-02-13 14:49:51 55504 17
原创 天津大学902软件工程2019年考研真题回忆
一、名词解释(5*8) 白盒测试、软件能力成熟度模型、软件过程、软件工程、多态性、模块化、经济可行性、计算机辅助软件工程 二、简答题(8*5) 1.什么是软件项目管理?它有哪些内容?2.什么是内聚?它包括那些类型?3.什么是软件的可维护性?它有哪些度量?4.请画出下列类所具有的关系。(会给图,其中包括接口类)5.请对上述程序进行等价类划分并设计一组测试用例。...
2018-12-26 17:44:45 3696
原创 前端低级问题:According to TLD, tag [s:property] must be empty, but is not
在Struts标签结束时少了结束符,或者缺少'/>'等等如:<s:property value="art_name" > 缺少'/'的错误<s:property value="art_name" />正确结束其他的标签如果没闭合也会出现这个问题,千万不要马虎大意。...
2018-07-24 22:40:03 1348
原创 减少使用sun.misc.BASE64Encoder
在涉及到图片持久化的时候会遇到这个编码类---sun.misc.BASE64Encoder这个类在jdk1.6之前是可以使用的,但在1.6之后提出警告,并在jdk9.0之后完全删除。 “网上有办法说重新配置jre就行了,但事实上不是这么简单的,测试后发现,这是要看配置的jre的类型是execution environment(执行环境),还是alternate j...
2018-07-23 22:10:13 881
原创 用SSH写一个论坛:后台传递至jsp页面的html文本无法正常显示
问题分析: 我们在编写论坛的过程中,如果用户编辑的是一个富文本的话,那么存储到数据库就可以是存储当前富文本的html文本。这个可以通过富文本插件的方法导出html文本或使用jQuery或js到处html文本。如果我们成功的将html文本存储到数据库中,希望将这一段html文本利用struts标签回显到jsp页面中,我们就会发现html文本以字符串的现实到页面中了。例如:<...
2018-07-23 22:01:23 514
原创 写一个论坛之请求长度限制:java.lang.IllegalArgumentException:request is too large
java.lang.IllegalArgumentException:request is too large问题描述 在论坛的开发中,往往会涉及到一个问题,就是文章的存储,如果使用form提交文章内容到后台,就会导致一个问题,请求过长(request is too large)异常。问题分析 因为在论坛中,很长的数据流动除了评论,就是文章的操...
2018-07-22 20:28:30 1290
原创 基于C#的WinForm窗体美化(无须美工功底)
基于C#的WinForm窗体美化(无须美工功底) 在近期的实训中,学习到了许多精髓的小知识。接下来我会发布几篇博客,分享我的开发经验。在设计面向对象的UI层界面时,常常因为WinForm自身的窗体界面不够美观而去反复修改各种控件的位置。当然在不同的Windos中,WinForm所具有的主题也是不同的,但对于颜控的我们,这些也是无法满足的。所以今天我分享一个关于简单的对窗体进行美化的一个小技巧。
2017-06-30 17:24:38 96351 35
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人