JAVA
cjzcjl
吃了一碟炒鱿鱼
展开
-
一种重复命名自动更名机制
设文件名x.x,如需要保存文件的目标位置已经有x.x,则自动命名本次保存文件的名称为x(1).x;如果x(1).x也已经存在,则命名为x(2).x。如此类推,直到不再重复。原创 2022-06-09 15:44:38 · 1551 阅读 · 0 评论 -
JavaFX踩坑日记1_TableView载入数据发生java.lang.IllegalAccessException错误
最近在做一个业余PC端项目,为了尽可能跨平台,选择了JavaFX构建项目的UI逻辑。其中有一个模块需要用TableView展示数据。我按照教程:JavaFX 表视图_w3cschool实现了我的窗体后运行,出现了如下报错:Caused by: java.lang.IllegalAccessException: module javafx.base cannot access class com.bluepoint.bean.FileItem (in module com.bluepoint.bl原创 2021-11-30 13:26:56 · 2039 阅读 · 0 评论 -
【图像缩放】双立方(三次)卷积插值(Android版改写)
最近在做图片放大之后的画面处理,尝试了这种卷积插值法,原文如下:https://dailc.github.io/2017/11/01/imageprocess_bicubicinterpolation.html然后我将其工程简单地改写成了Android版本的代码(只是个Demo,用来看看效果,可能含Bug):package com.cjz.image;/** * Created b...转载 2018-12-05 16:59:44 · 871 阅读 · 0 评论 -
一种Android上基于像素对比做基本图案识别的简单粗暴办法
用户希望通过书写不规则的图形之后,能够识别出这个图案是什么,并输出同等大小的规则图形。第一步当然就是识别图案了,我用的方法原理大致分如下几步:1、将用户输入的图片长宽压缩为目标大小,如100*100像素2、和图案库中预留的几张预定大小(例如100*100像素)的基础图案的像素都进行一次对比,并分别得出用户输入的图案图像和基础图案图片的像素相似量3、输出像素相似量最大的基础图片的名字作为...原创 2018-12-14 12:03:50 · 1193 阅读 · 0 评论 -
Android图片颜色混合算法
最近写的工程其中有一步是是把两张图片根据透明度混合起来生成一张新的图片,我也完成了这个功能。原来其实比较简单,把两张图片分为顶部图片和顶部图片,取顶部图片每像素的透明度为k,那么底部每像素的透明度则需要设定为(1-k)使得加起来百分比为1。然后分割像素为红绿蓝通道,然后分别乘以对应对应的透明度再加起来成为新的红绿蓝通道,然后把红绿蓝值通过移位运算合成新像素即可。代码如下(默认像素编码为ARGB...原创 2018-12-07 13:26:31 · 1771 阅读 · 0 评论 -
使用Java写公式计算器
我的一位好友需要软件里面内置一个小插件,可以根据用户输入的简单公式引导用户进行输入和计算,所以简单地写了一个原理实现。主要用到Java字符串处理和数据结构的栈思想,难度不大但要非常细心。原理如下:1、对公式以等号为分隔符进行左右分割,然后取得公式右边字符串2、对公式右边字符串进行运算符(+、-、*、/、(、))和常数的去除,然后分割出变量名3、请求用户输入各变量的值,用用户输入值取...原创 2018-12-15 16:20:07 · 16344 阅读 · 12 评论 -
一种基于Android Bitmap和数组操作的简单卷积图像处理函数
原理来自于知乎文章:https://zhuanlan.zhihu.com/p/43738099+我的实现函数: /**使用卷积核对图像进行处理**/ private static float sharpeningEffect[] = new float[]{-1,-1,-1,-1,9,-1,-1,-1,-1};//锐化效果 private static fl...原创 2018-12-12 10:32:23 · 529 阅读 · 0 评论 -
一种简单的双层BP神经网络做图案识别的JAVA实现(识别菱形、圆形、矩形、正等腰三角形)
感谢周志华先生写的《机器学习》这本书,还有网上的资源,使得我勉强能理解简单的人工神经网络的实现方法,觉得自己在这方面真是弱爆了。先贴一下BP神经网络的实现代码:package com.test.bpNeuronNetworkVer2;/** * Created by cjz on 2018/12/19. */import java.io.File;import java.i...原创 2018-12-25 19:12:45 · 1690 阅读 · 4 评论 -
handler思想的个人简单实现2——postDelayed猜想
本文为文章《handler思想的个人简单实现》的续作。https://blog.csdn.net/cjzjolly/article/details/79386416 在平常开发过程中,常常会用到handler里面的postDelay作为一种执行延时任务的工具,其实就是UI线程循环里面塞了点“插曲”,比Timer节约一点资源。我突发奇想想试试在不看它代码实现的情况下能不能实现出类似的...原创 2019-03-30 19:16:15 · 176 阅读 · 0 评论 -
一种利用检查Socket是否能正常连接从而判断目标IP是否能连通的办法例子
package com.test.ping;import java.io.IOException;import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.Socket;import java.net.SocketAddress;import java.net.UnknownHostE...原创 2019-07-07 14:26:06 · 1662 阅读 · 1 评论 -
Java层序遍历(非递归)遍历一个目录下的所有文件的办法
最近研发的功能需要遍历所有文件,觉得网上很多递归的代码都很辣鸡,如果深度太大很容易栈溢出,我自己用队列层序遍历多叉树的办法实现了,不怕深度非常深的文件,而且代码特别简短,经验思想来源于我自己以前的练习文章:https://blog.csdn.net/cjzjolly/article/details/79386681《n叉树算法》特此纪录一下:package com.lang....原创 2019-09-20 15:06:31 · 733 阅读 · 0 评论 -
一种基于二叉树的int32排序算法
之前写一个库时用到了字典树,可以很方便地进行归类,姓名放进去的时候就会对前部分的字符逐个归类,从而在全局深搜的时候得到的字符串便是按字母排序过的有序表。 于是我突发奇想——0000、0100、0001、1000这个序列,在进入一个左子树代表0,右子树代表1的二叉树为基础的字典树,然后进行左子树为开头的深搜后,就会出现0000、0001、0100、1000的从小到大有序序...原创 2018-11-27 21:45:19 · 215 阅读 · 0 评论 -
一种颜色直接顺序置换的简单算法展示——ABGR to ARGB
/**将abgr转换为argb**/ public static int[] getFrameARGB() { int data[] = getFrame(); byte transBlue; long disTime = System.currentTimeMillis(); for(int i = 0; i &l...原创 2018-08-27 19:00:24 · 2237 阅读 · 0 评论 -
JAVA的链表个人实现(JAVA的引用其实就是隐性的指针)
package com.alist;class alist<K>{ private Object val; private alist<K> head,now,temp,next; private int length = 0; public alist() { head = now = this; } public Object get(...原创 2018-02-27 12:20:36 · 441 阅读 · 0 评论 -
JAVA时间格式化引发的血案
之前公司的app有一个业务是需要根据链表里面的时间戳判断当前的时刻是否处于某节课的课程时间范围内,然后进行课间模式和上课模式的界面切换的。然后有天突然发现有节11:20到12:00的课怎么都跳不进去,艰辛的debug别人的代码之后发现,时间判断函数收到了11:20的startTime时间参数和12:00的endTime时间参数之后,到了那节课的时候,居然不进入if判断内的代码,怀疑判...原创 2018-02-28 14:57:39 · 472 阅读 · 0 评论 -
子类继承父类后复制粘贴变量和函数引起的歧义错误
最近一直在开发一款白板APP,同事负责的部分出现了一个奇怪的BUG。操纵子类的add方法add了东西进去对象的某个表之后,getSize这个表却发现size为0,因此我试着debug一下,发现debug的时候能看到父类里面有东西的,但是之类打印却总是size = 0,于是和同事都觉得会不会其实操作着的不是同一个表。结果debugger发现两个表变量名一致但是地址不一样,仔细看了看这两...原创 2018-05-30 18:58:47 · 205 阅读 · 0 评论 -
JAVA多叉树森林的构造、内存存储、磁盘存储与层序、先序(深度)遍历
因为项目需要简历一个森林来保存图形之间的父子关系,因此建立一种多叉树作为验证模型。具体原理如下草稿所示:实现代码如下:package com.test.forest;import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.concurrent.LinkedBlo...原创 2018-06-20 10:25:08 · 1979 阅读 · 0 评论 -
一种利用JNI实现的对象序列化存储库,使得JAVA序列化对象后可以存于内存区高速读写,并且不受JVM控制以避免OOM
本工程应用于一款安卓白板程序,因有读写速度需求,传统的序列化到磁盘的方式读写速度太慢,因此想到了利用C的特性写一个高速缓存,并继承实现了自己的inputStream和outputStream,用于暂存大规模多叉树和大体积对象。本工程的序列化对象的数据均使用一个整数作为标记进行区分,有需要的朋友可以修改本工程的实现以支持字符串标记。 本工程的JNI部分: 一、首先是M...原创 2018-06-27 19:49:29 · 613 阅读 · 0 评论 -
Android开机自启动服务的写法
首先AndroidManifest.xml中<application>结点中要加入一段广播接收器接收name为"android.intent.action.BOOT_COMPLETED"的开机广播,其中"com.example.noemhost.BootBroadcastReceiver"就是让系统接受到广播之后通过反射调用的广播接收类: <!--随着安卓系统...原创 2018-08-01 16:42:16 · 9561 阅读 · 0 评论 -
使用GLSurfaceView实现涂鸦画板功能
首先需要实现一个画线工具,代码如下:package com.project.testOpenGLWithAndroidUI;import android.util.Log;import java.nio.ByteBuffer;import java.nio.ByteOrder;import java.nio.FloatBuffer;import javax.microedit...原创 2018-08-14 15:09:08 · 3032 阅读 · 6 评论 -
ARGB颜色快速取大对比度色(保留原本透明度)
项目中为了使对字体对比背景色可以产生较大差异,让字体随着背景色的变化不会出现看不清的情况,需要根据背景来更换字体颜色。设背景的颜色保存在一个ARGB int变量bgColor中,Alpha透明度、Red、Green、Blue均是255级变换(0x00~0xFF),对比色变换后颜色保存在textColor中,那么变换方式便是:int textColor = 0x00FFFFFF ^ bgCo...原创 2018-08-07 14:24:20 · 3197 阅读 · 0 评论 -
用NDK(JNI)获取触摸事件
由于安卓触摸事件的分发略显缓慢,尤其是在快速移动时点密度的降低可能会导致绘制曲线的点变得稀薄,从而增加曲线的走样程度。因此我用了JNI + Linux C + NDK做了一套直接从底层设备获取触摸设备坐标信息的库。 一、编写C文件和MakeFile:/**getevent2.c**/#include<stdio.h>#include<stdlib.h>#...原创 2018-08-17 18:02:46 · 3139 阅读 · 7 评论 -
魔改ScrollView成为安卓开发自动轮播神器
之前工作中做的APP有一个需求,就是要循环滚动轮播一堆图文。所以我就用ScrollView魔改了一下实现了这个需求,以下是Demo的运行画面,数字为0到100的TextView在自动循环轮播: 具体实现如下:纵向轮播ScrollView:package ggg.project.dfff;import android.app.Activity;import andr...原创 2018-08-20 13:09:42 · 643 阅读 · 0 评论 -
handler思想的个人简单实现
有时候为了使得多人根据同一份协议文档开发顺利,或者实现UI和业务逻辑分离,会用到handler,使用handler可以进行解耦。例如UI控制的逻辑可以由A来写,然后添加到handler列表中,等待业务逻辑通过handler管理器,发送一个对应的标记找到它来并传递参数(回调),从而间接性地运行对应的方法。互相不需要知道对方是如何实现的,等待被调用和放心发送自己的结果去让handler管理器...原创 2018-02-27 12:06:50 · 278 阅读 · 0 评论