随笔分类 -  编程语言

负载均衡的简单实现
摘要:常见的负载均衡算法有:随机、轮询、哈希,带权重的随机和轮询等。这里举例简单说一下怎么实现这些算法: import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i 阅读全文

posted @ 2021-01-13 11:35 不想下火车的人 阅读(165) 评论(0) 推荐(0) 编辑

YYYY引发的跨年bug
摘要:项目中对用户的语音输入请求记录了话单,由filebeat把话单汇总到logstash,统一在logstash过滤、清晰,最后入库到elasticsearch中,通过前端绘图展示报表。今天发现展示数据不对,看了一眼话单: 今天是2020年12月29号,话单里我们已经穿越到2021年12月29号了,为啥 阅读全文

posted @ 2020-12-29 18:10 不想下火车的人 阅读(558) 评论(0) 推荐(0) 编辑

特价版线程池ThreadPoolExecutor实现
摘要:线程池的实现原理无非复用二字,类似数据库连接池,都是将一些重复创建的东西拿来重复使用。其中最关键的问题就两个:一个是怎么复用;一个是怎么回收。在数据库连接池中,一个连接的生命周期是我们可以手动控制的,相对来说容易一些。我们通过使用一个链表来持有连接并复用,超过最大连接数就回收。线程池不同,线程的生命 阅读全文

posted @ 2020-12-18 23:48 不想下火车的人 阅读(122) 评论(0) 推荐(0) 编辑

数据库连接池的一种实现方案
摘要:数据库连接池有多个开源实现,像dbcp、druid等。这里我们再一次造轮子,思路很简单:当有SQL操作(增删查改)到来时,先到池子里看一眼,如果有可用的连接,拿来用,没有就新建一个连接。连接不在新建时入池,而是在被关闭时。本来应当被系统回收的连接被放入池中复用,当累计到最大连接数时,就不再入池,直接 阅读全文

posted @ 2020-12-16 22:46 不想下火车的人 阅读(362) 评论(0) 推荐(0) 编辑

JDBC的驱动注册浅析
摘要:JDBC驱动类是一个接口——java.sql.Driver。这个接口是给实现JDBC接口的各个数据库实现的。 我们使用JDBC的时候,会有一行代码(参见Mysql数据库的JDBC查询实例或Oracle数据库的JDBC查询实例 ): Class.forName(JDBC_DRIVER); 它起到的作用 阅读全文

posted @ 2020-12-09 18:17 不想下火车的人 阅读(539) 评论(0) 推荐(0) 编辑

Mysql数据库的JDBC查询实例
摘要:之前我们使用JDBC操作过Oracle数据库(参见Oracle数据库的JDBC查询实例),这次我们来操作一下Mysql,使用Statement对象的子类PreparedStatement: 1、在pom.xml中引入mysql依赖jar包: <dependency> <groupId>mysql</ 阅读全文

posted @ 2020-12-09 17:53 不想下火车的人 阅读(734) 评论(0) 推荐(0) 编辑

偏向锁是个什么东东?
摘要:上次我们说了对象头是个什么东东?,但是从我们跑的代码输出却看不到偏向锁这个东东。为啥对象实例化出来之后,对象头里是不支持偏向的呢?其实是JVM搞的鬼,JVM虽然默认启用偏向锁,但启动后4秒内并不支持。可以通过-XX:BiasedLockingStartupDelay=0参数将JVM启动后支持偏向锁的 阅读全文

posted @ 2020-12-07 19:30 不想下火车的人 阅读(740) 评论(1) 推荐(1) 编辑

使用java命令执行java文件报错:找不到或无法加载主类 com.wlf.demo.collection.HelloWorld
摘要:IDE用惯了,手写java文件、编译、执行,搞了一堆问题,最简单的helloworld都打印不出来。 先在IDEA新建了一个项目,纯粹一个目录下建了个HelloWorld.java的文件,不是maven,不会自动编译: 编译成功,执行失败: 眼尖的同学一眼就能看到问题:创建的包路径有问题,不应该直接 阅读全文

posted @ 2020-09-26 08:39 不想下火车的人 阅读(147) 评论(0) 推荐(0) 编辑

利用文件随机读取类RandomAccessFile做断点重读
摘要:模拟通过文件读写方式对音视频流进行格式转换后,获取音频内容,并支持读取中断后再起线程读取,断开重读的关键在于随机读取文件,它支持保持一个类似游标的文件字节索引,只要每次读取都能把这个游标记录在内存中,那么就算当前的线程意外死掉,新的线程也能直接拿到游标值,按最后一次读取的位置重新开始读。直接看代码: 阅读全文

posted @ 2020-08-09 16:46 不想下火车的人 阅读(300) 评论(0) 推荐(0) 编辑

win10安装MinGW
摘要:MinGW,Minimalist GNU for Windows,windows最简化的GNU,就是一个C的编译工具集,转为windows操作系统下的C/C++开发者服务。我们从官网下载安装程序,打开官网后右边菜单栏点击Downloads: 跳往下载列表页面后,往下拉,点击安装程序下载: 最后双击该 阅读全文

posted @ 2020-07-23 07:32 不想下火车的人 阅读(9642) 评论(5) 推荐(4) 编辑

Java的SPI引入Jar包简单例子
摘要:我们把之前在一个项目中实现SPI机制的简单例子(参见Java的SPI简单实例 ),换成实际使用中的jar包引入的简单例子。一拆为三,接口一个包,实现一个包,应用一个包,哦,还得加个骨架包。我们新增一个父项目:在IDEA中点击左上角File -> 点New Project -> 点Maven -> 点 阅读全文

posted @ 2020-07-14 11:07 不想下火车的人 阅读(1742) 评论(0) 推荐(0) 编辑

Java的SPI简单实例
摘要:JDK有个ServiceLoader类,在java.util包里,支持按约定目录/META-INF/services去找到接口全路径命名的文件,读取文件内容得到接口实现类的全路径,加载并实例化。如果我们在自己的代码中定义一个接口,别人按接口实现并打包好了,那么我们只需要引入jar包,通过Servic 阅读全文

posted @ 2020-07-12 08:05 不想下火车的人 阅读(1780) 评论(0) 推荐(2) 编辑

linux上通过lighttpd上跑一个C语言的CGI小页面以及所遇到的坑
摘要:Common Gateway Interface如雷贯耳,遗憾的是一直以来都没玩过CGI,今天尝试一把。Tomcat可以是玩CGI的,但得改下配置。为了方便,直接使用一款更轻量级的web服务器lighttpd来跑,。 先把lighttpd安装一下:直接使用linux的包管理器,先安装一个epel软件 阅读全文

posted @ 2019-04-18 17:05 不想下火车的人 阅读(4810) 评论(0) 推荐(1) 编辑

java的垃圾回收
摘要:说起java的垃圾回收(Garbage Collection,GC),我们都知道是由虚拟机自动处理的,程序员无需关心要怎么动态分配内存、回收内存。我们知道一个应用会创造出很多对象,而对象是有大小的,迟早会把有限的内存吃掉。虚拟机的垃圾回收机制,目的是为了让内存空间腾出来。垃圾回收是个大工程,主要涉及 阅读全文

posted @ 2019-01-31 22:56 不想下火车的人 阅读(518) 评论(0) 推荐(0) 编辑

java指定文件编码格式
摘要:在创建文件并打印字符串时,如果不指定编码,默认是按系统的编码格式来。比如我们的linux环境中编码如下: [root@wlf ~]# locale LANG=en_US.UTF-8 LC_CTYPE="zh_CN.GBK" LC_NUMERIC="zh_CN.GBK" LC_TIME="zh_CN. 阅读全文

posted @ 2018-12-11 16:56 不想下火车的人 阅读(12173) 评论(0) 推荐(0) 编辑

使用JDK合成照片
摘要:原图(工程所在目录7098849.jpg): 头像(工程所在目录20181023201750.jpg): 开始合成(执行如下main方法): public static void main(String[] args) throws IOException { String rootPath = S 阅读全文

posted @ 2018-10-23 20:56 不想下火车的人 阅读(194) 评论(0) 推荐(0) 编辑

protobuf新增message报错:类型已存在
摘要:问题现象:在一个已有的proto文件(RecommendResponse.proto)中新增一个message(MsgList),用maven编译proto文件时报错: E:\workspace\wlf\wlf-msg-api>mvn clean install [INFO] Scanning fo 阅读全文

posted @ 2018-07-19 17:07 不想下火车的人 阅读(4556) 评论(0) 推荐(0) 编辑

jdk1.8新特性应用之Collection
摘要:之前说了jdk1.8几个新特性,现在看下实战怎么玩,直接看代码: public List<MediaInfo> getMediaInfoList(String liveType) { if (Util.isEmpty(liveType)) { return null; } List<MediaInf 阅读全文

posted @ 2018-05-30 20:48 不想下火车的人 阅读(331) 评论(0) 推荐(0) 编辑

jdk1.8新特性之方法引用
摘要:方法引用其实就是方法调用,符号是两个冒号::来表示,左边是对象或类,右边是方法。它其实就是lambda表达式的进一步简化。如果不使用lambda表达式,那么也就没必要用方法引用了。啥是lambda,参见jdk1.8新特性之lambda表达式。看实际例子: 先看函数式接口: @FunctionalIn 阅读全文

posted @ 2018-05-29 18:13 不想下火车的人 阅读(1787) 评论(0) 推荐(0) 编辑

Oracle数据库的JDBC查询实例
摘要:作为Java与数据库交互最古老的、最基础的规范,JDBC规范提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的。下面我们看一个基本的JDBC查询例子: 首先在pom.xml中加入oracle驱动包: <dependency> <groupId>com.oracle</group 阅读全文

posted @ 2018-04-28 17:31 不想下火车的人 阅读(861) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示