![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小工具
李先森LeeCode
这个作者很懒,什么都没留下…
展开
-
网络:Java用Netty实现一个群聊服务器与群聊客户端
记录一下实现代码,写得很粗糙,先启动1个服务端,然后起1到多个客户端,每个客户端先控制台输入聊天昵称,然后可以在聊天室发送消息。退出时输入特定字符 “bye” 即可退出群聊。服务器会显示所有聊天过程(包括系统信息)。客户端在线时也能收到所有聊天信息(包括系统信息)。大概如下:下面是代码:1、Maven依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all<原创 2020-08-07 23:14:33 · 508 阅读 · 0 评论 -
多线程:Java两个线程,一个打印A-Z,另一个打印1-26,输出结果:A1 B2 C3 ...... Z26
最近看到一个题,很有意思,就是在Java里实现两个线程,一个线程打印字母,也就是 ABCD … Z,另一个线程打印数字,也就是 1234 … 26。但是这两个线程需要交替打印:第一次字母线程先打印A,然后数字线程打印1,第二次字母线程先打印B,然后数字线程打印2 … 一直到最后一次,字母线程打印Z,数字线程打印26。得到如下结果(为了美观,我在数字后面多打印了一个空格):A1 B2 C3 D4 E5 F6 G7 H8 I9 J10 K11 L12 M13 N14 O15 P16 Q17 R18 S19 T原创 2020-08-02 19:34:46 · 4219 阅读 · 2 评论 -
经验:在Maven项目中,打包时指定 main class 的配置(亲测有效)
Maven打包的时候,是不是经常会出现 “没有主清单属性” 的报错?以下的配置,放在 pom.xml 最后的 中,就能自定义main函数所在的类,然后打包了:<build> <finalName>JarPackageFileName</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</grou原创 2020-07-22 11:20:09 · 15827 阅读 · 3 评论 -
Nginx:我的Nginx学习笔记
Nginx是什么?Ngnix是高性能的HTTP和反向代理服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达50000个并发连接数Nginx的内容:正向代理:需要在客户端配置代理服务器进行指定网站的访问反向代理:暴露的是代理服务器的地址,隐藏了正式服务器的IP地址负载均衡:增加了服务器的数量,然后将请求分发到各台服务器上,将原先请求集中到的单个服务器上的情...原创 2020-01-18 22:02:44 · 342 阅读 · 0 评论 -
算法:输入一个四则运算的算术表达式字符串,计算出表达式的结果(逆波兰表达式)
算法的实现思路:将算术表达式转换为逆波兰表达式,然后根据逆波兰表达式的法则计算结果1、因为我们支持小数,所以需要小数的包装类。当然,Java已经有包装类了,我们用Double类2、自定义一个操作符类,也就是+ - * / ( ),可以认为是以上操作符的包装类/** * 逆波兰表达式的操作符及其工具的包装类 * @Author: LiYang * @Date: 2019/9/7 23:5...原创 2019-09-08 03:07:05 · 6739 阅读 · 1 评论 -
算法:通过普利姆(Prim)算法,求出图的最小生成树
请看如下的示例图,该图有 V1-V7 七个顶点,每个顶点之间的距离如图所示:如果上面的图为七个城市的地理分布图,城市间相连的边上的数字为城市间的距离。我们要在这七个城市里面架设电线,使得每一个城市都在电网之中,怎么样架设电线,可以使得所使用的电线最短呢?这就是图论里面的最小生成树的问题,今天我们用普利姆(Prim)算法,来求得电线架设的方案。话不多说,精髓全在代码和其间的注释里,可复制到ID...原创 2019-09-09 01:29:09 · 4830 阅读 · 0 评论 -
多线程:Java里的所有线程都全部执行完毕后,代码再往下继续执行的控制方法(CountDownLatch类的用法示例)
在Java的多线程中,有的时候我们需要等某些多线程的方法全部都执行完毕后,才继续往下执行。这个该怎么控制呢?用CountDownLatch类。这个类是java.util.concurrent包里面,也即是Java的并发工具包,这个包里面有很多多线程的工具类,在多线程编程中很有用。下面就是一个CountDownLatch类的一个用法。比如我们有五个人(五个线程),他们都赶往同一目的地,但是我们不知...原创 2019-09-11 00:38:53 · 7968 阅读 · 3 评论 -
算法:通过迪杰斯特拉(Dijkstra)算法,求出图中任意顶点到其他顶点的最短路径
请看如下的示例图,该图有 V1-V7 七个顶点,每个顶点之间的距离、路径走向如图所示:假设这是一幅地图,我们很多时候都需要搜路径,比如从家到公司的路线图(也就是说,家是一个点,公司是另一个点)。上图的各个点可以想象成分岔路口。当然,如果你不在分岔路口,你在某条路上,也可以理解为你在一个有两条路的分岔路口上,也就是向前行或者向后退。由于有单行道的存在,所以有的路是只能单向通行的(本示例图全部为单...原创 2019-09-11 23:45:40 · 21379 阅读 · 0 评论 -
算法:中国象棋中"马"的最少步数走法和不重复周游走法的实现(利用图论算法中的BFS和DFS)
之前发布了许多的图论算法的例子,今天我们结合中国象棋中马的走法,来实践一下图论算法中的BFS(涉及Dijkstra算法)和DFS算法为什么用中国象棋的马的走法来做例子呢?因为大家都多多少少知道中国象棋,也知道马走斜日象飞田,车走直线炮翻山。马在中国象棋棋盘上的斜日走法,确实值得拿来作为图论算法的例子。以下的算法没有蹩脚马的限制,马只要不出棋盘,可以随便在棋盘上走斜日如何在程序中记录中国象棋棋盘...原创 2019-09-17 02:31:56 · 3265 阅读 · 0 评论 -
算法:通过图论算法的深度优先搜索DFS,递归回溯求解 "旅行售货员" 问题(又叫 "巡回售货员" 问题)
“旅行售货员” 问题,又叫 “巡回售货员” 问题,也是图论算法里面的一个经典的问题。就像那些挑着担子沿街叫卖的小商贩,他们每天从家里出发,将所有小区转一遍,然后又回到自己的家,结束一天的售卖。不同的路线可能会让小商贩走的路程,或者说花的时间和精力不一样。小商贩们当然也希望走最短的路线,就能走遍所有小区,然后回到家中。请看以上示例图,比如这是五个城市,也可以理解为五个小区,意思都一样。售货员的家...原创 2019-09-17 15:09:27 · 2780 阅读 · 0 评论 -
算法:微信拼手气红包的红包金额分配算法的Java实现
微信拼手气红包,大家都体验过吧,多的就不说了,直接上代码:import java.util.*;/** * 微信红包金额分配 * @Author: LiYang * @Date: 2019/9/7 13:33 */public class RedPacketPuzzle { /** * 微信拼手气红包金额分配方案(输出结果为分,一分钱的分) * @pa...原创 2019-09-07 14:19:53 · 2911 阅读 · 1 评论 -
Java IO相关的一些常用方法集锦
0、将文件读取为字符串/** * 将文件读取为整个的字符串 * @param filePath 文件路径 * @return 文件内容的字符串 * @throws IOException */public static String readFileToString(String filePath) throws IOException { //读文件的BufferedRea...原创 2019-07-10 11:42:26 · 208 阅读 · 0 评论 -
SpringBoot: SpringBoot里面创建导出Excel的接口
在Web项目中,难免需要导出Excel这样的功能,后端接口怎么实现呢,Controller代码在下面,复制到项目的Controller中即可使用:首先加入Excel的依赖,本例中我们用apache的poi:&amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;gt;org.apache.poi原创 2018-10-11 15:50:23 · 41217 阅读 · 18 评论 -
PostgreSQL: PostgreSQL数据库使用踩坑记录
0、数据库依赖可以这样写:&amp;amp;amp;amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;amp;amp;amp;gt;org.postgresql&amp;amp;amp;amp;amp;amp;amp原创 2018-10-19 10:26:28 · 3043 阅读 · 0 评论 -
SpringBoot: 加入定时任务调度工具类
SpringBoot,加入定时任务调度工具类,写好后项目已启动,就能够按照设定的时间规则,定期进行方法的执行,而且只需要按照以下例子创建一个新类就行,其他的地方不用动都可以。注:cron表达式是描述定时规则的表达式,可参考在线cron表达式:http://cron.qqe2.com/import org.springframework.context.annotation.Configurati...原创 2018-10-30 15:23:44 · 880 阅读 · 0 评论 -
多线程: Java使用ThreadPoolExecutor类执行多线程并发任务
import java.util.concurrent.*;/** * 线程池测试类 */public class ThreadPoolTest { /** * 多线程的任务类 */ static class Task implements Runnable{ //线程id private int id;...原创 2018-11-01 21:35:26 · 3225 阅读 · 0 评论 -
JQuery 开发心得记录
0、JQuery里面的Ajax,模板一般是这样写的://封装参数var param = {};param.username = "zhangsan";param.age = 18;//发送Ajax异步请求$.ajax({ type: "GET/POST……", url: "www.baidu.com", data: pa原创 2018-12-13 16:14:01 · 204 阅读 · 0 评论 -
WireMock踩坑记录
0、如果启动Wire Mock后没有反应,比如没有生成__file和mappings文件夹,则可能路径不对,启动的时候需要指定参数–root-dir,后面接Jar包的路径,启动后就可以生成这两个文件夹,然后在文件夹里面加入文件,重启后也要加入这个参数,才能正确找到,并启动成功:java -jar C:\WireMock\wiremock-standalone-2.20.0.jar -port 9...原创 2019-01-24 14:06:30 · 2659 阅读 · 3 评论 -
Git操作踩坑记录
0、如果远程建立了新分支,而本地git又获取不到,则用以下方法更新(远程为origin),更新后就可以看到远程分支了:git remote update origin原创 2019-02-18 10:24:43 · 161 阅读 · 0 评论 -
Joke: 让Java报StackOverFlow、OutOfMemory错误的简单代码实现
package pri.liyang.joke;/** * 让Java报StackOverFlow、OutOfMemory错误的简单代码实现 * Author:李小白 */public class ErrorGenerate { /** * 执行后会报StackOverflowError错误的方法 */ public void SOF(){ ...原创 2018-08-12 23:32:36 · 1151 阅读 · 0 评论