Java
文章平均质量分 53
KogRow(接毕设和大作业版)
这个作者很懒,什么都没留下…
展开
-
关于SARD漏洞数据集的预处理
SARD漏洞数据集构建原创 2022-11-03 13:35:12 · 1980 阅读 · 4 评论 -
qdox获取java类文件中方法体代码
qdox读取类方法原创 2022-11-03 11:53:01 · 446 阅读 · 0 评论 -
把Java代码解析为抽象语法树的Python库:javalang用法分析
最近在研究抽象语法树的编码,需要使用Python的Javalang库解析Java源代码为抽象语法树,记录一波该库的一些用法。原创 2021-11-18 16:13:18 · 6468 阅读 · 20 评论 -
A Novel Neural Source Code Representation ased on Abstract Syntax Tree译文
一种基于抽象语法树的新型神经网络源代码表示摘要:开发用于分析程序的机器学习技术备受关注。一个关键问题是如何很好地表示代码片段以便后续分析。传统的基于信息检索的方法往往把程序当作自然语言文本来处理,可能会遗漏源代码的重要语义信息。最近的研究表明,基于抽象语法树( AST )的神经网络模型能够更好地表示源代码。然而,AST的规模通常较大,现有模型容易出现长期依赖问题。本文提出了一种新的用于源代码表示的基于AST的神经网络( ASTNN )。与现有的工作在整个AST上的模型不同,ASTNN将每个大AST分割成一翻译 2021-11-16 16:23:00 · 730 阅读 · 0 评论 -
Java代码审计学习笔记
此处仅作代码分析,不涉及环境配置及工具使用。0x00 反序列化带来的安全问题0x01 反射基础知识反射是Java核心特征之一,反射允许运行中的Java程序获取自身的信息,并且可以操作类或对象的内部属性。通过反射在运行时获得程序或程序集中每一个类型的成员和成员的信息, 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的原创 2021-10-11 15:34:54 · 400 阅读 · 4 评论 -
ArrayList+HashSet实现HashMap
直接上代码:package Test;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;/** * Hash-based Map */public class HAMap<K, V> implements Iterable<K> { /** * Represents a key-va原创 2020-06-07 01:03:22 · 642 阅读 · 1 评论 -
Java实现带权并查集Weighted Quick Union Disjoint Sets
我们使用父数组和权值策略将较小树的根连接到较大树的根 ○如果连接(p,q)中的树的大小相等,则通过将 p 的根连接到 q 的根来断开连接。原创 2020-05-17 08:54:23 · 1129 阅读 · 3 评论 -
Java使用数组实现双向循环队列
ARDeque在本实验中,我们将使用an array实现dequeo在前两次作业中,我们使用链表实现了deque我们还将使用泛型,以便deque可以存储任何类型的对象o array的起始大小/长度必须为4o使用resizing:在本节课讨论的数组加倍和数组减半 删除前,如果已满则加倍大小 删除后,如果大小小于或等于四分之一,则将大小减半o使用循环数组,...原创 2020-05-04 14:53:21 · 1498 阅读 · 0 评论 -
Java实现带头节点的双向循环队列(链表)
Deque●queue 是一种数据结构,您可以在前面添加一个新项,然后在后面删除一个项,这样第一 个项进入就是第一个项退出(FIFO)。 ●在这个实验中,我们将创建一个更通用的数据结构,称为 deque,是双端队列的缩写。●在一个 deque 中,您可以添加和删除两端的项(无论是其前端还是后端)。○在本实验室,您将完成包括添加和删除在内的许多方法。●此外,您必须使用通用类型,以便可...原创 2020-04-19 12:23:29 · 1900 阅读 · 4 评论 -
Java递归作业之数组链接
1. Iterative Square Mutate MyList 迭代完成 void iterSquareMutList(MyList list)方法。该方法修改list,以便其所有元 素都是平方的。使用循环。循环使用 while 只要列表不为空 则将值平方 随后将列表移动到 list.next2.Recursive Square Mutate MyList 递归完成 void r...原创 2020-04-10 11:14:57 · 1035 阅读 · 0 评论 -
记录Java递归作业之解决特殊子集求和问题
1.跳过相邻数字的子集求和问题:给定一个整数列表,我们想知道是否有可能选择 某些整数的子集,从而使子集中的整数递归地累 加到给定的和。我们还希望,如果选择一个整数作为求和,则必 须跳过列表中该整数旁边的整数,而不是选择该 整数作为求和。不要使用任何循环。上代码:package SkipSum;import java.util.ArrayList;import...原创 2020-03-27 14:17:43 · 926 阅读 · 4 评论 -
记录某次Java递归作业
1.CheckSubstring给定一个输入字符串、一个非空的子字符串 subs 和一个非负数 n。递归计算并返回 true, 前提是当且仅当字符串中出现至少n个sub副本 (可能有重叠)时,才返回 true。tips:禁止使用循环(不要在代码的任何地方写 for 后者 while、do while)禁止使用任何正则表达式和方法,例如 matches、 split, repla...原创 2020-03-18 12:50:56 · 557 阅读 · 0 评论 -
Java中replaceFirst及replaceAll方法报错PatternSyntaxException: Unexpected internal error near index 1解决办法
今天遇到的,我的字符串里包含形如D:\aaa\bbb的子串,我需要将其中的反斜杠\替换为其他字符。开始我这样写:str.replaceAll("\\","target");报错:Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index ...原创 2020-01-12 21:56:03 · 1101 阅读 · 0 评论 -
Java大整数类BigInteger实现模重复平方算法
RSA的核心计算就是计算a^e mod m,其中,a,e可随机生成,m为大整数。常规使用的int和long无法表示超大整数,因此使用Java的BigInteger来实现计算a^e mod m:public static BigInteger mod(BigInteger a,BigInteger e,BigInteger m) { BigInteger kex = new BigIn...原创 2019-12-06 16:57:33 · 344 阅读 · 2 评论 -
Java中函数参数是值还是对象的问题
首先,Java中的函数传参只有值传递,不存在其他的形式如果是传递基本数据类型,那没什么好说的,传的是值。如果是传递的对象,传递的也是值,这个“值”是该对象的引用的副本,本质上是一个内存地址。举例如下:public static void main(String[] args) { String s = "aaa"; change(s); System.out.print原创 2017-08-30 21:33:05 · 595 阅读 · 0 评论 -
关于HashMap的总结
1.HashMap中的负载因子:负载因子越大,表明填满的元素越多,则hash冲突机会越大,查找效率低负载因子越小则数组越稀疏,查找效率高,但是造成空间的浪费。默认为0.75,如果机器内存紧张,对查找速度没有要求可以将负载因子设置大一些,如果机器内存足够,对查找速度要求高则将负载因子设置小一些。当发生hash冲突时,新增的Entry中的key若比较为false,则新增的Entry添加原创 2017-08-31 00:12:29 · 293 阅读 · 0 评论 -
MacOSX配置java_home找不到.bash_profile 文件的解决办法
今天给一台苹果机器装maven,网上的教程说需要配置java_home,按照网上的提示,首先cd,然后ls -a,发现咦居然没有.bash_profile文件,既然没有,那就在当前目录下vim .bash_profile,进入编辑模式之后输入export JAVA_HOME=$(/usr/libexec/java_home)export PATH=$JAVA_HOME/bin:$PATH原创 2018-01-18 19:58:54 · 5155 阅读 · 0 评论 -
POI在sax模式下读取xlsx报错 Characters larger than 4 bytes are not supported解决办法
使用的POI版本为3.14在sax模式下读取一个20万行的xlsx报错:org.apache.xmlbeans.XmlException: java.io.CharConversionException: Characters larger than 4 bytes are not supported: byte 0xb1 implies a length of more than 4 byt...原创 2019-03-24 14:51:06 · 2065 阅读 · 0 评论 -
Lucene读取xlsx并根据关键词对内容进行全文检索
此处的xlsx是数据量达到20万行的大文件。上jar包截图:思路:通过POI在SAX模式下将xlsx逐行读取并装入内存。在内存中为List<list<Object>>拿到装进内存中的list之后,使用lucene的代码如下:package Tools;import java.io.File;import java.util.LinkedL...原创 2019-03-24 15:02:48 · 508 阅读 · 0 评论 -
课程设计:Java编写的基于KNN算法的手写数字识别软件
0x00 概述本软件是使用Java语言编写的PC端图形界面程序,也支持命令行形式运行主要功能为识别用户在软件内绘板上手写的数字同时也支持使用给定的训练集批量识别符合本软件定义格式的手写数字(该功能仅支持命令行形式使用)0x01 设计逻辑:分为图形显示模块、KNN算法模块、图形格式转换模块。图形显示模块:效果如下:用户在左上角空白的绘板里手写数字,点击“识别”,右...原创 2019-09-20 16:15:09 · 309 阅读 · 0 评论 -
Java代码中启动和关闭OpenOffice4服务(windows下)
OpenOffice4的启动和关闭和之前的版本不太一样,其中,在开启环节的命令和前版本有差异。在关闭环节,需要关闭soffice.exe和soffice.bin直接上代码/***关闭代码**/public static void shutdownOpenOfficeService() { try { Process pro = Runtime....原创 2019-10-10 10:39:06 · 2388 阅读 · 12 评论 -
知识点集锦
并发编程:1.CopyOnWriteJVM:1.强引用、软引用、弱引用、虚引用2.CMS收集器原理3.分代策略和GC算法4.JVM调整堆大小的参数算法:1.二分查找2.时间复杂度的计算原创 2017-08-21 20:26:09 · 239 阅读 · 0 评论