- 博客(36)
- 资源 (14)
- 收藏
- 关注
原创 设计模式六大原则
设计模式有六大原则,分别是:单一职责原则;里氏替换原则;依赖倒置原则;接口隔离原则;迪米特法则;开闭原则;一、单一职责原则(Single Responsibility Principle [SRP])定义:有且只要一个原因引起类的更变。使用场景:如果一个接口业务过于庞大复杂,则可以将这个接口分离成几个小接口,每个接口负责的方法功能相近。单一职责原则要求:接口一定要做到单一职...
2019-05-24 20:01:52 623
原创 设计模式之单例模式
单利模式是确保系统中某一个类只要一个实例。单例的类图如下:代码清单:单例通用模板,饿汉式,线程安全。public class Singleton { /** * static 初始化一个实例 */ private static final Singleton singleton = new Singleton(); /** * 构造函数私有化,防止new */ ...
2019-05-24 00:39:53 183
原创 为克隆使用序列化
序列化机制为对象克隆提供了便捷方式,只要对应的类序列化即可。序列化克隆是深度克隆。 class SerialCloneable implementsCloneable, Serializable{ public Object clone(){ try{ ByteArrayOutputStream bout = new ByteArrayOutputStream(); ...
2019-05-05 08:16:24 216
原创 jsp九个内置对象,三大指令,七大动作
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception。1.PageContext(javax.servlet.jsp.PageContext):JSP的页面容器 ;2.request(javax.servlet.http.HttpServletReque...
2019-04-03 17:28:29 239
原创 spring注解
前段时间面试被面试官问到spring都有哪些注解,一时半会答出几个,感觉好尴尬,于是今天特意把spring里面的注解找出来并且给予说明。整理过程中难免有疏忽,各位如果有不同意见请反馈,部分注解没有找到说明,后期补上。注解不是全部,仅仅部分而已。org.springframework.beans.factory.annotation.Autowired:注释,它可以对类成员变量、方法及构造函数进行...
2019-04-03 16:42:19 3150
原创 把1,2,3,4,5,6,7,8,9九个数分成三组,各个数字使用一次
前几天找工作,笔试下面这道题:把1,2,3,4,5,6,7,8,9共九个数分成三组构成排列a1a2a3,a4a5a6,a7a8a9,而且每个数字使用有且仅有一次,构成的排列之比为3:2:1,求输出所有的排列组合。方法一:显然a1a2a3,a4a5a6,a7a8a9在[123, 987]内,进一步就是a1a2a3在[123,329],遍历即可public static void test1(...
2018-09-23 16:22:54 15418
原创 Spring事务
一、spring @Transactional的设置事物传播行为事务传播行为就是多个事务方法调用时,如何定义方法间事务的传播。Spring定义了7中传播行为:propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是Spring默认的选择。propagation_supports:支持当前事务,如果没有当前事务,就以非事务方法...
2018-09-18 15:34:20 203
原创 spring注解
spring注解一、组件类注解Component:普通springBean类,把普通pojo实例化到spring容器中,相当于配置文件中的;@Componentpublic class ProjectUtils { /** * 给定组织编码和计数(该学期和组织下项目个数)生成项目编码 * @param orgCode * @param count * @return ...
2018-09-18 13:58:15 182
原创 java 注解
元注解 元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。元注解有@Retention、@Documented、@Target、@Inherited、@Repeatable 5 种。@Retention Retention保留期的意思。当@Retention应用到一个注解上的时候,说明了这个注解的的存活时间。它的取值如下: Retent...
2018-09-17 13:21:46 132
原创 ioc和di
ioc控制反转是一种设计思想,是一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。在java开发中,控制反转意味着将设计好的对象交给容器控制,而不是传统的在对象内部直接控制。直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象(程序控制对象的创建);ioc是有专门的容器来创建这些对象,即由ioc容器来控制对象的创建(ioc控制对象的创建);在对象中主动控...
2018-09-17 12:14:28 159
原创 Spring Cloud应用实用随机端口
主要有两种方法: 设置server.port=0,应用启动的时候会自动的分配一个随机端口,但是在注册到Eureka的时候会一个问题:所有实例都使用了同样的实例名(如:test:demoService:0),这导致只出现了一个实例。所以,还需要修改实例ID的定义,让每个实例的ID不同,比如使用随机数来配置实例ID:server.port=0eureka.instance.instance-i...
2018-09-13 09:54:52 1172
原创 使用Springboot JDBC
在配置文件中添加以下配置spring: datasource: schema: database/data.sql sql-script-encoding: utf-8 jpa: hibernate: ddl-auto: noneschema:设置脚本的路径 sql-script-encoding:设置脚本的编码 sp...
2018-09-13 09:47:47 186
原创 启动和关闭java程序
直接kill掉进程再次启动jar包 查找pidps -ef|grep java kill -9 pidkill -9 pid再次重启java -jar demo.jar脚本执行 使用的是maven配置<plugin> <groupId>org.springframework.boot</groupId> &...
2018-09-12 18:03:16 2711
原创 springboot maven打包
war包可以分两种方式来实现: A.通过eclipse这种开发工具来导出war包; B.使用命令来完成;1、maven项目,修改pom包<packaging>war</packaging>2、打包时排除tomcat.<dependency> <groupId>org.springframework.boot</g...
2018-09-12 17:50:54 163
原创 springboot jar命令
启动jar包命令,这种方式,只要控制台关闭,服务就不能访问了。java -jar target/demo-1.0.0.jar下面使用在后台运行的方式来启动:nohup java -jar target/demo-1.0.0.jar &amp;也可以在启动的时候选择读取不同的配置文件java -jar demo.jar --spring.profiles.active=dev...
2018-09-12 17:44:21 402
原创 excel工具类ExcelUtils
excel工具类ExcelUtils本文代码来源于项目中的积累整理。public class ExcelUtils { private static Logger log = LoggerFactory.getLogger(ExcelReader.class); private final static String RSPAN = "#rspan";//合并列空格占位 ...
2018-08-29 17:20:35 1788
原创 leetcode:唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-“, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。 为了方便,所有26个英文字母对应摩尔斯密码表如下: [“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—”,”-.-“,”.-..”,”–”,”-.”,”—...
2018-04-10 16:53:26 218
原创 leetcode:单词搜索
给定一个二维面板和一个单词,找出该单词是否存在于网格中。 这个词可由顺序相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 public static boolean exist(char[][] board, String word) { char[] strs = word.toCharArray...
2018-04-08 18:01:30 613
原创 leetcode自除数
自除数 是指可以被它包含的每一位数除尽的数。 例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 还有,自除数不允许包含 0 。 给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。 public static List<Integer> selfDividingNumbers(i...
2018-04-08 17:04:00 1196
原创 leetcode:同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换最终变成 t ,则两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。思路:通过映射解决 s2t:s到t的映射 t2s:t到s的映射 如果s和t同构,那么s通过s2t找到t,t通过t2s找到s;public sta...
2018-04-08 16:21:04 282
原创 java仿照MATLAB中的reshape,实现矩阵重塑
在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。 给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。 如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。public st...
2018-04-08 15:12:44 1811
原创 和谐数组
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。思路: 1.从S找到了不重复的子数组,按照从小到大排序S[n1, n2, …, nm]; 2.从S[n1,n2,…nm]去掉部分元素,使得剩余的s[n11, n12, n21, n22, …, nm]中的任意ni1满足ni2 = ni1 + 1; ...
2018-04-08 13:51:17 2334
原创 题目:“整数替换”的解决思路
给定一个正整数 n,你可以做如下操作: 1. 如果 n 是偶数,则用 n / 2替换 n。 2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。 n 变为 1 所需的最小替换次数是多少?思路: 1. 如果 n 是偶数,则用 n / 2替换 n。当为2的幂时,降幂是最快的选择; 2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n。选择n+1或者n-1取决于n...
2018-04-08 10:26:27 1212
原创 基于PropertyPlaceholderConfigurer对properties文件加密解密
出于对安全的考虑,需要对项目里面的.properties文件中的数据进行加密,确保项目被黑客攻击后任然无法得到敏感数据。Spring3框架提供了统一加载属性文件的方法PropertyPlaceholderConfigurer,所以最好可以在这个加载之前实现对.properties文件中的属性进行加密/解密处理。配置文件中的属性最初始时敏感属性值可以在上线之前加密明文得到密文,程序加载后读取到的...
2018-04-04 11:52:28 2387 2
原创 DES加密解密工具类
转载请注明:https://blog.csdn.net/qfashly/article/details/79815134public class DESUtil { private Key key; private static final String DES = "DES"; public static final String[] KEY_ARR = { "IeJ...
2018-04-04 11:28:50 724
转载 java常见技术题
转自某位群友https://github.com/PetricHwang/coding-interview-university/blob/master/translations/README-cn.md 以下是他的内容,不代表我的观点,仅此转发了解interview-resources-zhCN本来想跳槽,搜了些互联网公司的面试题,发现自己理解都不是很深刻,默默地回去把简历关掉,潜心学...
2018-03-16 17:27:10 231
原创 岛屿数量
今晚看到群里有人发了一个面试题,看看挺有意思的,所有吧算法写下来。 题目是: 给定 1(代表陆地)和 0(代表水)的2d网格图,计算岛的数量。 一个岛屿被水包围,并且通过水平或垂直方式连接相邻的陆地而形成。你可以假设网格的所有四个边缘都在水边,统计岛的数量,如下图:Example 1: 11110 11010 11000 00000 答案: 1 Example 2:...
2018-03-13 22:49:47 1922
原创 常用的File工具类
转载请注明:https://blog.csdn.net/qfashly/article/details/79499227public class FileUtils { private static Logger log = LoggerFactory.getLogger(FileUtils.class); /** * 读取文件 * @param file...
2018-03-09 16:24:01 749 1
原创 java实现在服务器端压缩文件
转载请注明:https://mp.csdn.net/mdeditor/79499147public class CompressedFileUtils { private static Logger logger = LoggerFactory.getLogger(CompressedFileUtils.class); static final int BUFFER = 819...
2018-03-09 16:19:43 2934 1
原创 向服务器请求下载文件
转载请注明:https://blog.csdn.net/qfashly/article/details/79499082public class ResponseDownloadUtils { private static Logger log = LoggerFactory.getLogger(ResponseDownloadUtils.class); /** *...
2018-03-09 16:17:21 1047
原创 Freemarker导出Word工具类
转载请注明:https://blog.csdn.net/qfashly/article/details/79498984 工具类public class FreemarkerWordUtils { private Logger log = LoggerFactory.getLogger(FreemarkerWordUtils.class); private Configura...
2018-03-09 16:12:38 622 1
原创 以png格式保存svg图片
转载请注明:https://blog.csdn.net/qfashly/article/details/79498701 最近由于业务需要,需要将前端查询的数据在浏览器上以图片的形式展示,然后回传到后台以文件形式存储在硬盘上。/** * @Title: convertToPng * @Description: * @param svgCode 前端传回的svg字符串 * @para...
2018-03-09 15:58:33 2377
原创 将前端svg图片存为字符串,供world模板使用
转载请注明:https://blog.csdn.net/qfashly/article/details/79498524 最近由于业务需要,需要将前端查询的数据在浏览器上以图片的形式展示,然后回传到后台供导出world使用;如果将图片存为文件形式,则性能和效率太差,所以使用highcharts.js将数据渲染成图片,再使用js将svg图片传回,使用Base64将svg转换成String,供导出w...
2018-03-09 15:49:46 2769
原创 c:forEach标签的属性及实现表格跨行跨列操作
转载请注明:https://blog.csdn.net/qfashly/article/details/79498138一、c:forEach标签的属性var:String类型,迭代参数的名称。用来表示每一个迭代变量; items:要进行迭代的集合;varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息;begin:int类型,如果指定了items,那么迭...
2018-03-09 15:27:39 11453 3
原创 安装mysql5.7配置Master和Slave
安装mysql5.7, 新建数据库test。1. 将C:\Program Files\MySQL下所有的文件拷贝到E:\Program Files\MySQL_Master下,作为主数据库;2. 将C:\Program Files\MySQL下所有的文件拷贝到E:\Program Files\MySQL_Slave下,作为从数据库;3. 将C:\ProgramData\MySQL\My
2018-02-01 15:03:52 247
原创 ubuntu 分区,各区挂载点和文件类型
根分区:"/"所有未指定挂载点的目录都会放到这个挂载点下,分10GB;启动分区:"/boot"boot目录包含了操作系统的内核和在启动系统过程中所要用到的文件分100MB-200MB;交换分区:"swap"一般为内存大小的2倍;用户目录:"/home"用户的home目录分20GB;临时文件:"/tmp"临时文件目录,分2GB;文件系统:"/usr"用户安装的软件程序都在这里。就
2017-12-30 19:24:18 8012
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人