Java编程
文章平均质量分 68
在编攻城狮
在编攻城狮
展开
-
Java图片压缩/加密处理实践
1.结合多年的金融场景项目经验,讲解了图片加密、图片压缩、图片转换的业务处理过程;2.重点讲解了基于coobird:thumbnailator的图片压缩实现逻辑,非常实用和高效;原创 2023-06-26 18:53:14 · 1576 阅读 · 0 评论 -
Java二进制及中文转码和校验
1.结合多年的项目经验,从Java基本数据类型char/byte讲起,介绍了char、二进制之间的关系,尤其是二进制和十六进制、二进制和Base64之间的转换;2.介绍了文件魔数和协议魔数,并提供了相关实现和比较时的注意事项;3.介绍了UTF-8对应的unicode关系;在GB18030-2022国标实行前,重点讲解了中文转换的实现及验证逻辑、中文字符乃至中文名字校验的实现及验证过程;原创 2023-06-23 21:45:53 · 1329 阅读 · 0 评论 -
我的书单(持续更新)
我的2020年书单编号书名作者完成度完成次数完成时间1大型网站技术架构:核心原理与案例分析李智慧100%22020/01/252020/03/012Effective JavaJoshua Bloch100%12020/03/053从零开始学架构,照着做,你也能成为架构师李运华80%0-4分布式服务架构原理与实践李林...原创 2020-03-06 16:46:04 · 517 阅读 · 0 评论 -
Windows下Kafka集群环境搭建及代码验证
导读一、背景二、分析三、步骤四、验证五、总结六、参考一、背景kafka应用场景很多,比如:日志收集、消息系统、大数据流式处理等;项目中刚好需要消息中间件、Spark流式处理,所以非常有必要深入了解下kafka原理与运行机制;二、分析先搞清楚Kafka的部署结构(物理结构):kafka由Kafka中间件(独立安装部署)、生产者、消费者三部分组成;Kafka中间件支持集群安装部署,生...原创 2019-10-30 15:01:36 · 941 阅读 · 1 评论 -
KeyTool证书生成与OpenSSL转换
导读一、证书生成方式二、证书工具安装及使用1. KeyTool安装2. OpenSSL安装三、证书生成过程四、总结一、证书生成方式使用Java JDK自带的KeyTool工具;使用OpenSSL生成;二、证书工具安装及使用1. KeyTool安装JDK自带的KeyTool是随着JDK安装的。只要配置好JDK环境变量,KeyTool就可正常使用;2. OpenSSL安装鉴于...原创 2019-10-30 08:29:20 · 675 阅读 · 0 评论 -
解决Springboot打包时,带入java源文件的问题
解决Springboot打包时,带入java源文件的问题一、问题二、定位问题三、解决方案四、收获总结五、参考资料一、问题无意反编译基于springboot打出的jar包时,发现jar包中包含了java源文件代码。二、定位问题分析了下执行打包的命令是mvn clean install,这中间实际执行的maven插件较多,如下图所示。进一步定界,发现是classes目录下有java源码所...原创 2019-09-20 09:52:55 · 1824 阅读 · 0 评论 -
Java Web国际化及乱码解决方案
一、背景项目过程中,难免需要提示中文或者英文提示信息,有了国际化,方便切换;实际项目中,一般都不允许直接把中文提示信息写在代码中,避免其他国家程序猿看不懂(国际化公司和开源项目涉及),也容易招来其他国家的恶意攻击。比如菊花公司把中文写在代码中就算成非常严重的违规。二、目标在项目中引入简单易用的国际化框架,方便同事使用。三、步骤Java SDK自带国际化API:java.uti...原创 2019-09-27 11:20:23 · 2027 阅读 · 1 评论 -
Controller与Filter如何交替使用
Java Web中Url请求(Springmvc/Springboot中一般使用Controller)会被Filter拦截,如果要做Url跳转该怎么办?如果要部分情况下Url跳转,部分情况下响应值该怎么办?如果全部响应值,又需要Url跳转又该怎么办?本文就是讲述如何做上述几种业务场景下的处理过程原创 2019-09-28 16:11:43 · 1795 阅读 · 0 评论 -
获取今天0时0分0秒时间戳的方法
一、背景项目中经常会涉及时间的处理及持久化,而时间是有时区和夏令时的;而Web项目中,客户端(浏览器操作系统)有1套时区和夏令时,服务端(操作系统)也有,数据库还有,java也有。他们记录的时间显示出来,与用户想看到的不一定匹配;基于上述2点考虑,时间必须统一到一个地方处理:就在Java后端处理,其它地方全部使用UTC跟后台交互;展示时,再转成对应时区的时间处理。二、问题解决上...原创 2019-09-30 10:44:42 · 8000 阅读 · 1 评论 -
Vue.js实战——H5拍照迁移至Android App_14
一、目标 1、解决从纯H5开发且带拍照功能的App迁移至Android平台时,保证拍照和裁剪功能正常; 2、解析实现过程中碰到的各种问题;二、实现效果 为了达成上述目标,先大体介绍下思路: 1)Android平台下支持h5的input拍照标签,但是需要在Android侧对拍照过程做一些特殊处理才能正常获取到此拍照图片; 2)Android平...原创 2019-04-14 22:05:57 · 657 阅读 · 0 评论 -
Gradle使用初体验
gradle编译cas经验总结原创 2017-04-21 00:45:32 · 514 阅读 · 0 评论 -
生产者消费者问题
生产者和消费者问题是操作系统中的一个经典问题:生产者在生产时,消费者只能等待;消费者在消费时,生产者也只能等待,前提是他们必须共享一个资源。现在模拟生产者和消费者分别同时向一个果篮装水果和取水果的过程。限制条件如下:1)果篮最多装12个水果2)生产者每次生产的水果数量为随机值,默认1-7,最大值可由生产者自己设定;3)生产策略为:当生产的水果过量时,必须等待过量的水果全部装原创 2012-05-22 22:54:22 · 1261 阅读 · 0 评论 -
卒的移动问题(JAVA)
一、问题描述:1、在部分的象棋棋盘(都是方格,大小可从键盘输入)中,假设卒只能向下或者向右移动,且卒在原点A(0,0)位置,求卒移动到棋盘最大的终点位置B(m,n)的所有路径数;2、约定B点不同于A点;二、思路:1、通过排列组合方法解题;2、通过面向对象构造模型解;我选择使用Java语言实现第二种。1、第一次直接使用迭代实现,发现效率极其低下,在棋盘较大原创 2013-05-14 00:21:34 · 1975 阅读 · 0 评论 -
五子棋落子游戏
题目要求:假设已有15*15的五子棋棋盘(0-14),黑白子对下,现要求能够实现落子接口:1)落子成功时,如果当前颜色的棋子胜利(有5子连成一条线),黑子胜利返回2,白子胜利返回3,没有人胜利时,返回落子成功1;2)黑白子顺序混乱、或者重复落子等异常返回-1;分析:1、需要实现保存所下所有棋子的数据;2、在1前提下,能够判定所下棋子是否有5个子在一条直线上(2条原创 2013-05-17 01:41:22 · 9732 阅读 · 21 评论 -
营救公主(Java实现A*算法解决迷宫问题)
很早就听说过A*算法,据说在寻路径时,是一种比较高效的算法。但是一直没有搞清楚原理。这段时间刚好有个营救公主的例子:题描述 :公主被魔王抓走了 , 王子需要拯救出美丽的公主 。 他进入了魔王的城堡 , 魔王的城堡是一座很大的迷宫 。 为了使问题简单化 , 我们假设这个迷宫是一个 N*M 的二维方格 。 迷宫里有一些墙 , 王子不能通过 。 王子只能移动到相邻 ( 上原创 2013-05-20 01:40:51 · 8385 阅读 · 4 评论 -
中缀式转后缀式工具类实现
我们经常用到的表达式叫中缀式,如:1+2,a+b*c;还有另外一种表达式叫后缀式,叫逆波兰式。原理我就不赘述了,网上很多介绍。现在写了个Java中缀式转后缀式的工具类,现分享源码如下:操作符常量接口:/** * * 操作符常量接口:主要为了保存常量 * * @author dobuy * 修改时间: 2013-5-22 * */public i原创 2013-05-24 00:36:46 · 1928 阅读 · 1 评论 -
蜂窝小区最短距离实现 (数学归纳法+广度优先算法)
题目描述:如图:由正六边形组成的蜂窝小区中,每个正六边形的编号也如图所示。求任意2点间的距离。(规定最大编号不超过100000)分析:1、求2点间的距离,第一印象就想到了广度优先算法(广度优先算法简单介绍:如图中的1点找编号为9的点时,可以第一次广度优先找到第二圈的所有元素,第二圈的元素再广度优先可以找到了9号点,所以必有一点可以从1点到9点,且距离为2)。但广度优先算原创 2013-05-28 00:32:21 · 19922 阅读 · 17 评论 -
炸金花大小比较算法(Java版)
炸金花大小比较算法,实现算法特点:1)采用面向对象方式实现,分别构造牌面值的对象(枚举)、牌的花色对象(枚举)、玩家三张牌的类型(枚举,如豹子、同花顺等)、一张扑克牌对应的对象(一张牌有一个牌面值属性、一个花色属性)、玩家对象(玩家有3张扑克牌,牌的类型属性);2)主要是通过Java Comparable 接口的compareTo实现比较功能,很方便对玩家手中的牌进行排序(调用Collections.sort方法实现),同事避免了很多if else 比较;原创 2014-06-17 00:10:07 · 29955 阅读 · 2 评论 -
判断凸多边形并排序算法
在平面直角坐标系中,给定一个点序列,判断这些点是否能够构成凸多边形,并且按照顺时针方向输出这些点。其他要求:1.输出的起始的为距离原点最近的点,如果多点距离原点相等,取其中任一点即可;2.如果有3个或者以上点在一条直线上,输出"ERROR";输入输出格式要求:1.输入为用逗号分隔的10进制整形数字序列的字符串形式,两两组成一个坐标点,如:"0,0,1,0,1,1原创 2016-04-17 23:01:34 · 8369 阅读 · 2 评论 -
线程顺序控制:四个线程A、B、C、D向四个文件写入数据。要求A线程只写入A,B线程只写入B……
四个线程A、B、C、D向四个文件写入数据。要求A线程只写入A,B线程只写入B……最终达到的效果:A.txt内容为: A B C D A B C D……B.txt内容为: B C D A B C D A……C.txt内容为: C D A B C D原创 2012-05-31 00:06:45 · 4320 阅读 · 0 评论