自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 oauth2 模式

oauth2 截图

2022-06-22 23:54:21 92

原创 spring security oauth2

spring security oauth

2022-06-22 23:07:17 254

原创 spring security

spring security

2022-06-22 23:03:49 148

原创 java word报表基础导出 使用spire.office

官网spire.office 官网提供的网址有教如何导入maven,这里就省略了效果java 本地导出 @Test public void testWord() { try { String date = "2019-10-30"; Document document = new Document(); ...

2019-12-02 18:43:05 407

原创 java itext 5.5导出pdf 文件

导出效果本地导出java代码 //全局表格高度 private static final float TABLE_HEIGHT=30; String FILE_DIR = "D:\\work\\2019\\idea\\company\\zq\\export\\"; @Test public void test7(){ //页面大小 ...

2019-12-02 09:54:45 252

转载 linux 环境搭建其一: jdk+mysql+nginx+redis集群

jdk卸载openjdkyum remove *openjdk*上传jdk安装包 解压gz得到文件夹 修改环境变量vim /etc/profileexport JAVA_HOME=/usr/jdk/jdk1.8.0_181export JRE_HOME= ${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_...

2018-08-01 21:32:54 429

转载 linux 环境搭建其二 :安装 fastdfs + nginx

fastfds 配置步骤1 gcc 编译器安装 查看是否安装 # whereis gcc 安装 # yum install gcc # yum install gcc-c++2 安装工具包 pcre # whereis pcre # yum -y install pcre pcre-devel z...

2018-08-01 21:08:38 199

原创 重拾编程- 第一季 代码规范

代码规范,重构,命名

2017-12-24 20:55:32 298

原创 代码规范 : 表驱动法(if switch 真讨厌)

本文整理自代码大全和网上的一些代码,出处忘记了, 侵删表驱动法的准则使用表驱动法的关注的两个核心问题: 1 怎样从表中查询条目的问题; 2 应该在表里面存什么两个核心问题都谈到了表,那么这个’表‘是什么东西呢? 用过hash(哈希)的同学知道, 其内部是维护一个 存放地址的表格,通过hash去快速得到,那么同样我们用来存放东西就可以描述成一个表 直接访问表例子一: 将数组作为表// 下面原先的

2017-12-24 12:00:13 9853

原创 代码规范 : 防御式编程

防御式编程保护程序免遭非法输入数据的破坏垃圾进,什么都不出: 三种方法处理进来的垃圾情况检查所有来源于外部的数据的值,防止能攻击你系统的数据(sql注入命令,html注入,整数溢出,传给系统调用的数据)检查子程序所有输入参数的值 决定如何处理错误的输入数据断言断言在程序运行错误时强制退出程序,有人认为开发阶段为了检测到所有bug,就应该将打上断言, 越能让你犯错,程序上线后的bug越少错误处

2017-12-24 00:31:41 1314

原创 代码规范 : 抽象(ADT) 封装 与职责(3)

根据前面的类的抽象与封装的 基础上,引伸出的概念职责对类的职责进行拆分

2017-12-24 00:20:36 321

原创 代码规范 : 抽象(ADT) 封装 与职责(2)

根据 代码规范 : 抽象(ADT) 封装与职责(1) 的基础上,我们来看看在 程序中 , 接口, 类 , 继承, 函数 的设计3.接口(类的抽象)类的接口应该展现一样的抽象层次: 一个类仅只能实现同个级别接口(除了序列化和包裹化之外).如果某个类实现了多个抽象层次,那么应该把类组织成另一个抽象或多个抽象. 不要让抽象层次变得难以理解一定要理解类所实现的抽象是什么:为了在实现时选择正确

2017-12-23 23:06:33 399

原创 代码规范 : 抽象(ADT) 封装 与职责(1)

抽象(ADT)抽象数据类型: 是指一些数据,以及对这些数据进行操作的集合. 这些操作既向程序描述了数据是怎么样的,也允许程序的其余部分改变数据0.为什么使用抽象假设在不存在抽象的情况下, 我们进行编程 例子: 对平面给出的 四个点的八个坐标(x,y) (m,n) (j ,k ) (d,b),来得到矩形(这里特指的是周长和面积的计算)你可能会这么写, x = 1 ; y = 3

2017-12-23 21:12:54 556

原创 代码规范 : 集合处理

一下内容来自<阿里巴巴JAVA开发手册>(描述非常简陋,日后会详细补充)【强制】 关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals,就必须重写 hashCode, 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。 3) 如果自定义对象做为

2017-12-23 20:56:10 379

原创 代码规范 : 关于注释和日志

对于注释的要求第一: 能够准确反应设计思想和代码逻辑 第二: 能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。 第三: 能自解释的代码就不要用注释[javadoc]幸运的是,java里有强大的javadoc 注释工具类、类属性、类方法的注释使用 Javadoc 规范, 使用/*内容/格式,不得使用//xxx 方式所有的抽象方法(包括接口中的方法) 必须要用 Javadoc 注释.

2017-12-23 20:53:50 2279

原创 代码规范 : 高质量的子程序设计(函数)

创建子程序的正当理由降低复杂度:隐藏内部的实现细节,缩小代码规模,改善可维护性,提高正确性

2017-12-21 22:57:02 337

原创 代码规范 : 格式编排

代码规范,格式编排,使得程序自上而下的阅读,像读报纸一样方便

2017-12-21 13:31:24 995

原创 代码规范 : 控制逻辑

代码规范: 优化控制逻辑

2017-12-21 09:31:03 874

原创 代码规范 : 自解释的神话

写在前面: 好想找个女朋友,这样就可以帮我想变量名了,(玩笑脸) 计算机科学家想做的,就是将代码抽象成现实中有的事物,而命名就围绕这个想法展开.多数初学者觉得,特意为代码去取一个名字没有必要.可你该明白: “代码阅读次数远远多于编写的次数, 确保名字更侧重于阅读方便而不是编写方便” (当然,如果你认为你的程序能够满足”很好的描述了现实生活中的场景”,那么恭喜,你可以不用看着一篇文章了)基本命名一个

2017-12-20 14:19:23 1501 1

原创 无限级目录树数据结构前端实现

无限级目录树数据结构的前端实现

2017-11-14 13:40:57 7570

转载 算法与数据结构 其五 (补充)函数对象实现查找二叉树

函数对象实现二叉树这小节 就让我们来用函数对象实现二叉树等等?你不知道什么是函数对象? 好吧, 先让我们来整理清楚什么是函数对象(你不知道什么叫指针的话,下面的可以跳过) 1.函数对象目的:人们常说java中没有了指针,殊不知,java中的对象引用就是指针,有时候我们说一个对象往往指的就是这个对象的引用,也就是说基本上把对象的引用很对象等同了。 而函数对象就雷同与带指针的函数.BUT ,这做

2017-08-19 16:51:05 235

转载 算法与数据结构 其六 Avl平衡树

Avl平衡树接下来要介绍的树都是从二叉树演变而来的,Avl平衡树当然不例外。何谓平衡?原目标是树的所有左右子数的高度都相等,但是实际操作起来不现实,所以给的平衡条件是 树的每个节点的左子树和右子树的高度最多差1 那么Avl平衡树就是树的每个节点的左子树和右子树的高度最多差1 的二叉查找树。由于一科满二叉树的高度是O(logN),平衡二叉树的高度仅仅稍微大于 O(logN),所

2017-08-15 09:28:00 214

原创 算法与数据结构 其四 循环队列的实现

循环队列的实现队列:大家都懂,就想出排队先进先出麻(别说你还想插队) 循环队列是啥,就是拍一圈咯。但是要有两个指针负责头和尾,不然你都不知道怎么加入,怎么拿走。 (这张图很好诠释了什么是循环队列,恩 ∩_∩) 你需要一个头指针和一个尾指针,知道队列头和尾。if 尾指针下一个位置是头指针时 队列满;if 尾指针和头指针处于同个位置 队列空if 队列加入节点 节点变成尾

2017-08-11 21:59:56 250

转载 算法与数据结构 其五 二叉查找树

二叉查找树树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。一般根节点比左节点大比右节点小。最基本实现方式public class BinarySearchTree<E extends Comparable<? super E>>{ //节点

2017-08-10 21:58:20 184

原创 算法与数据结构 其三 栈的实现

上一小节 :算法与数据结构 其N 数组和链表 的实现这一小节就讲讲 栈的实现 什么是栈(Stack)? 栈就是一个容器(杯子?碗?随便你想叫什么都行) 先放进去(push)的数据,就只能放在容器底部,最后放进去的数据,就会在最上面。 那我们要获取数据(pop),就只能从最上面的开始拿出来。 如果你只看看,不进去(peek),就只能看到最上面的数据。 Top 就相当于指针吧,用来指向最

2017-08-09 23:04:07 187

原创 算法与数据结构 其二 数组和链表 的实现

数组和链表的实现程序 = 算法 + 数据结构 这句话道出算法和数据结构的联系 (PS:虽然从知乎听来另一句话 程序 [ ] ≠ 软件,23333)那么针对我们日常开发中,使用了别人封装好处理数据的类,是否有必要究其实现的原理,其实我觉得还是有必要的。因为在java中使用不同的集合类处理数据,虽然能达到同样的目的,但是性能方面却有所差异,同种效果的方法间的时间复杂度也不同(不知道时间复杂度是什么

2017-08-09 22:34:58 210

原创 算法与数据结构 其一 算法时间复杂度

算法时间复杂度算法是为求解一个问题需要遵循的,被清楚指定的简单指令的集合。 对于一个问题,一旦某种算法(以某种形式)被确定为是正确的,那么重要的一步就是算法所消耗的 时间、空间等资源量的问题。这小节讨论:算法复杂度,即如何在运算前估计一个程序所需要花费的时间首先理解下面两个概念:时间频度 和 时间复杂度时间频度(T(n)):一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道

2017-08-08 15:46:12 333

原创 java 设计模式 其一 单例模式

单例模式转载出处(侵删) http://www.blogjava.net/kenzhh/archive/2013/03/15/357824.html有的时候,我们在全局中,为了不制造多个实例,避免一些资源问题的产生,只需要实例一次类的对象,用于:线程池、缓存、对话框、处理偏好设置和注册表对象、日志对象、驱动程序等等。一那我们要如何控制类只能实例化一个对象? 不妨看看我们平时是怎么使用类进行实

2017-08-08 13:35:46 203

原创 java 基础之 I/O流 其四 (对象流和序列化)

对象流和序列化java语言支持一种称为对象序列化的非常通用的机制,可以将任何对象写出到流总,并在之后将其读回。 使用场景:进程之间的通讯时,对象可以和数据一样以二进制的形式在网络上传送。我的天啊~要实现这样的场景,要先了解序列化,和对象流1. 序列化什么是序列化和反序列化?: Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。为什么要

2017-08-07 21:41:19 274

原创 java 基础之 I/O流 其三 (文本输入输出)

文本输入输出上一小节讲了字节的使用,但是使用字节的操作不适合我们在日常中对文件的文本进行使用和理解,所以这节讲讲字符流的操作。保存数据时,我们可以选择文本格式PrintWrite 或 二进制格式DataOutputStream。一 . 文本格式保存:在存储文本字符串时,需要考虑字符编码。理由如下: 编码格式 内容 编码 UTF-16 “1234” 00 31 00 32 00

2017-08-07 20:42:25 271

原创 java 基础知识之I/O流 其二(基本使用)

基本使用下面我就根据代码,讲讲流的使用方式和组装1. 使用输入流读取一个文件的原始写法try{ File file = new File("dsds.dat"); //备注 :这样的路径是项目文件夹下的根目录 //将文件读入到流中 FileInputStream fis = new FileInputStream(file); //将文件流加修饰,变成能只读取特定数据的流

2017-08-07 11:24:29 185

原创 java 基础知识之I/O流 其一(概览)

概览在 java Api 中,可以从其中读取一个字节序列的对象称为输入流,而向其中写入一个自己序列的对象称为输出流。有四种I/O的种类需要考虑(文件,控制台,网络连接,内存),而且需要通过大量不同的方式与它通讯(顺序、随机访问、二进制、字符、按字等等)。而在其中,java 抽象出I/O 层次结构基础 InputStream 和OutputSrtream 基于单字节的字符 。因为面向字节流而不便于处理

2017-08-07 11:07:28 280

转载 java垃圾回收机制GC所使用的算法

java垃圾回收机制GC所使用的算法概述:垃圾回收算法分为四种:标记-清除算法,停止-复制算法,标记-整理算法,分代回收算法1,标记-清除算法原理: 如同其名字一样,算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象,在标记工作完成后统一回收所有被标记的对象。没有被标记对象使用的内存被释放。 不足: - a.效率问题:标记和清除两个过程效率都不高; - b.空间问题:标

2017-02-09 16:29:04 472

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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