- 博客(30)
- 收藏
- 关注
原创 Java8 Stream流式编程
Stream介绍(摘抄)Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。JDK8新特性。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。Stream有以下特性及优点:无存储。Stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O
2021-01-23 15:13:38
486
原创 基于Spring AOP自定义注解拦截Controller方法
文章目录开篇 - 前奏正文 - 间奏配置处理自定义注解java中元注解解释方法拦截器实现类使用结尾 - 尾声感悟 - 高潮开篇 - 前奏最近项目后台针对报表查询进行优化,为了避免打开页面慢的问题,新增首次加载不返回数据的需求。由于后台报表较多,如果每个方法添加判断修改量较大且代码重复,故采用自定义注解的形式处理。后台前端使用Datatables插件进行实现,每次表格渲染插件会自动传递参数draw,初始draw=1,没次加载值递增。Datatables是一款jquery表格插件。它是一个高度灵活的工
2021-01-19 22:20:39
2739
原创 记录服务器CPU占用率飙升原因排查过程
文章目录描述定位进程定位线程定位代码位置结语描述记录一次最近公司服务器CPU占用率过高原因排查过程。定位进程通过Linux自带命令top 查看当前占用CPU最高的进程,记录进程号。通过top -p pid 查看指定pid进程CPU占用情况。定位线程输入命令 H 或 shift+h 查看进程内所有线程CPU占用情况。定位代码位置定位占用CPU最高的线程PID为15153 ,通过JDK自带命令jstack获取进程号为7643进程的堆栈调用信息。执行jstack 7643 > /tm
2020-11-27 11:04:21
1985
原创 初识ForkJoin框架
文章目录写在前面概述常用API详解ForkJoinPool线程池任务执行实现类案例注意事项写在最后写在前面最近工作中遇到优化单线程处理一个大任务性能优化的问题,我们首先想到肯定是多线程并行执行,那么又该如何拆分子任务并均匀分配给每个线程执行呢?也许我们只听过fork/join框架思想并未实战演练,更不了解JDK1.7+为我们提供ForkJoin相关类的API该怎么用。接下来就让我们一探究竟吧~~概述Fork/Join框架核心思想:它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果
2020-11-23 09:57:41
282
原创 Windows 10 安装Ubuntu 20.04 LTS子系统
Windows 10 安装Ubuntu 20.04 LTS子系统写在前面1. 打开 `开发者选项`2. 开启Linux子系统功能3. 安装Ubuntu系统4. 初体验5. 安装软件6. 常用功能结语写在前面日常开发过程中,我们经常会用到Linux,而目前大部分开发机都使用的是Windows系统,而微软给Win10提供了一些Linux子系统的安装使用。有了Linux我们写一些脚本就可以在本地进行运行了,无需在虚拟机或远程进行调试,极大提高了开发效率。对于热爱Linux系统的朋友也提供了一个很好的选择
2020-08-08 20:49:09
10564
3
原创 设计模式之工厂模式
写在前面: 来源:工厂模式主要思想建立于现实世界中的工厂制造模式,计算机界大牛们经过不断的揣摩出了适合软件开发的设计模式思想。 定义:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。 意义:平时我们创建对象时,直接使用关键字new即可创建对象,但是对于整个软件设计开发,若使用工厂进行创建对象,虽然在开发阶段我们多做了一些工作,但会给系统带...
2019-09-08 16:26:47
159
原创 java日期与cron表达式互转工具类
问题:java日期与cron表达式互转工具类代码如下import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * @Author Guixing * @Date 2019/3/20 11:19 * @Description */public cl...
2019-03-20 11:34:09
6580
2
转载 Java 操作临时文件创建与删除
在 Java 的 File 类中,有一个 createTempFile(String prefix,String suffix),调用它后,会在系统默认的临时文件目录中创建一个临时文件。prefix 表示文件名。suffix 表示文件的后缀,形如 “.tmp”,注意这里需要包含 “.”final File htmlFile = File.createTempFile("temp", "....
2019-03-06 14:14:29
3264
原创 面试必会之HashMap源码分析
声明:本文章原出处为https://mp.weixin.qq.com/s/vRvMvNktoDSQKMMlnj5T0g,本人觉得写的很详细,分享出来,共同学习!简介HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。1.8版本的HashMap数据结构:为什么有的...
2019-03-05 11:37:21
157
原创 SpringBoot整合CXF框架开发
在开发过程中遇到了一些使用webservice开发的需求,后查阅资料学习,可上手开发。在学习过程中实现了个小demo,为了养成良好的总结习惯(我还没这”坏习惯“),特意写了个小呆萌,记录一下搭建过程。 首先导入必需jar(pom.xml) <?xml version="1.0" encoding="UTF-8"?><project xmlns="ht...
2019-01-17 15:30:17
1210
2
原创 springboot整合cxf框架启动报错
异常信息:***************************APPLICATION FAILED TO START***************************Description:Parameter 1 of constructor in org.springframework.boot.autoconfigure.web.servlet.error.ErrorMv...
2019-01-17 14:32:37
5545
原创 Linux下安装Zookeeper
在linux上安装zookeeper首先上传zookeeper压缩包 使用tar -zxvf 解压压缩包 切换到zookeeper目录内 新建data文件夹 mkdir data 切换到conf目录下,编辑zoo-example.cfg文件将datadir值修改为data所在目录(指定数据存储位置) 将zoo-example.cfg修改为zoo.cfg 切换到bin目录,执行sh ...
2019-01-08 14:55:22
146
原创 Mybatis注解开发之@Results
写在前面:在使用mybatis注解开发的时候,数据库返回的结果集和实体类字段不对应,我们就需要手动指定映射关系; 一种是使用在xml文件中指定resultMap,指定id,下面需要的直接引用id就可以; 另一种在使用注解开发的时候,我们只能通过注解@Results来指定对应关系了,那么注解只能每个方法用到了都得复制一遍@Res...
2019-01-08 14:45:23
4697
原创 Jackson中的ObjectMapper对象的使用详解
写在前面:开发中经常用到json和对象的相互转换,下面将列出FastJson中ObjectMapper对象的API的使用一、maven工程中pom导入<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databin...
2019-01-07 11:42:09
5468
3
原创 Arrays.asList()不能使用add和remove方法的原因
今天无意中测试了一下数组转集合的jdk封装好的工具类Arrays,意外发生了。。。代码如下: public static void main(String[] args) { Integer[] i = {128,12,1}; List<Integer> list = Arrays.asList(i); list.add(123...
2018-10-31 16:21:41
3024
2
原创 Mysql性能优化
Query优化的基本思路和原则1. 优化更需要优化的Query; 高并发低消耗(相对)的Query 对整个系统的影响远比低并发高消耗的Query 大2. 只取出自己需要的Columns; 对于任何Query,返回的数据都是需要通过网络数据包传回给客户端,如果取出的Column 越多,需要传输的数据量自然会越大,不论是从网络带宽方面考虑还是从网络传输的缓冲区来看,都是...
2018-09-14 16:28:11
142
原创 java实习面试题总结
基础篇String、StringBuffer和StringBuilder的区别 Array、ArrayList和LinkedList区别 HashMap和Hashtable的区别 HashMap和ConcurrentHashMap的区别 HashMap实现原理及扩容机制 常见数据结构 运行时异常和编译时异常的区别 面向对象的三大特征,并解释 面向对象与面向过程的区别 重载和重...
2018-08-15 09:54:19
729
1
原创 求字符串子串数
问题描述:给定字符串求字符串的子串个数解决思路:假设字符串str="abcdef";求子串可以看成将该字符串分割成不同的字符串,需要两个分隔符即可实现。a|bc|def 设字符串长度为n,第一个分隔符有n+1种放法,第二个有n种放法。由于两个分隔符互换位置结果相同,所以需要折半,再加上空串所以个数为:n(n+1)/2+1。...
2018-06-26 11:01:45
2577
原创 文件夹下的文件内容拷贝到一个文件
解决问题:将一个文件夹下以.java结尾的文件拷贝到a.txt文件中(源码拷贝)代码实现:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;im...
2018-06-25 20:43:48
200
原创 金额转换问题
问题描述:阿拉伯数字转换为中国传统的形式例如:1001->壹仟零壹元代码如下:public class ConvertTest { private static char[] data = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; private static char[] units = {'元','拾','佰','仟','万','拾',...
2018-06-22 14:06:50
404
原创 进制转换(十进制->二进制、八进制、十六进制)
问题描述:通用进制转换方法抽取代码如下:public class Tansform { public static void main(String[] args) { trans(100, 4, 15); //转16进制 trans(16, 3, 7); //转8进制 trans(16, 1, 1); //转2进制 } /** * 十进制转换 * @param n...
2018-06-20 17:04:20
192
原创 Linux下Tomcat的安装
安装Tomcat步骤如下: ①导入tomcat压缩文件②解压③启动tomcat:/etc/local/src/java/tomcat/bin/startup.sh④配置防火墙:vim/etc/sysconfig/iptables(由于只可在本地访问所以配置防火墙)在文件中添加A INPUT -m state –state NEW -m tcp –dport 8080 -jACCEPT重启防火墙:s...
2018-05-06 15:17:54
111
原创 Linux下安装jdk配置java环境变量
安装及配置如下:①导入jdk压缩文件(在xshell中使用rz导入sz下载,若该命令不可用使用yum install lrzsz安装该包)查看现有的jdk版本:rpm -qa | grep -i java卸载:rpm -e –nodeps 文件名称②解压:tar-zxvf jdk.tar③在/etc/profile(系统环境变量)或~/.bash.profile(用户环境变量)文件最后中添加jdk...
2018-05-06 15:16:01
190
原创 Linux下安装Mysql
安装Mysql步骤如下:①解压mysql包,查看已安装的mysql:rpm -qa | grep -i mysql②卸载已安装mysql:yum remove 文件名③使用yuminstall MySQL-*rpm安装已经解压好的mysql文件启动mysql服务:service mysql start关闭mysql服务:service mysql stop④设置mysql密码:/usr/bin/m...
2018-05-06 15:11:13
141
原创 在Linux下安装Redis
Redis安装步骤:1)安装redis编译的c环境,yum install gcc-c++2)将redis压缩包上传到Linux系统中3)解压到/usr/local下 tar -xvf redis-2.6.16.tar.gz-C /usr/local4)进入redis-2.6.16目录使用make命令编译redis5)在redis-2.6.16目录中使用make PREFIX=/usr/loca...
2018-05-06 15:08:40
130
原创 Redis常用操作
Redis五种数据类型 string/hash/list/set/sortedset查看所有键:keys *string: 增:set key value 删:del key 改:set key value 查:get keyhash: 增:hset key key1 value1 hset key key2 value2 删:hdel key key1 删除整个hash:del key 改:h...
2018-05-06 14:47:31
176
原创 阿里云服务器部署tomcat服务器无法访问
问题:Linux下安装完tomcat7,启动正常,日志无错误,防火墙也关了但就是访问不了tomcat首页 。解决方法:到阿里云找到服务器的实例,添加一组入方向的安全组规则(协议类型:自定义TCP 端口范围:22/8081 授权类型:地址段访问 授权对象:0.0.0.0/0 ),然后浏览器一刷新,立马就好了。 ...
2018-04-27 19:40:49
490
原创 八皇后问题(经典算法-回溯法)
问题描述: 八皇后问题(eight queens problem)是十九世纪著名的数学家高斯于1850年提出的。问题是:在8×8的棋盘上摆放八个皇后,使其不能互相攻击。即任意两个皇后都不能处于同一行、同一列或同一斜线上。 可以把八皇后问题扩展到n皇后问题,即在n×n的棋盘上摆放n个皇后,使任意两个皇后都不能互相攻击。思路: 使用回溯法依次假设皇后的位置,...
2018-04-25 09:33:43
1383
原创 合唱团
题目描述有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值...
2018-04-14 20:54:55
137
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人