![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 62
大猪猪吃虎虎
暨南大学在读Java领域开发者,擅长构建系统平台框架
横向对测试/前端等领域都有涉及。
展开
-
【二叉树】如何构建一个包含大量随机数节点的二叉树测试用例
今天笔者在测试有关二叉树的测试用例时,发现一点一点给节点添加孩子操作十分繁琐,于是写了一个自动生成二叉树测试用例函数,供大家参考。原创 2023-11-10 21:45:17 · 391 阅读 · 0 评论 -
Java关于由子类构造器生成的父类对象的反射问题
Java中由子类构造器生成的父类的getclass.getName不是父类的类名而是子类的类名,原创 2023-11-09 16:01:34 · 127 阅读 · 0 评论 -
Java语言级别8不支持本地枚举和语言级别 ‘8‘ 不支持 内部类中的 static 声明
在JDK1.8中,enum枚举类中不能在@Test注解下的方法中创建,也不能在类中类中创建,只能在类中创建(包括测试类)。原创 2023-11-08 15:37:39 · 903 阅读 · 1 评论 -
invoke方法传参String数组问题——wrong number of arguments
今天笔者在使用invoke方法的时候,发现报了一个这样一个错:“wrong number of arguments”,在网上冲浪寻找答案后才发现,是传递Sring[]准备了一个Tan类,其中创建了一个方法fun,需要传入String[]数组参数。原创 2023-11-05 15:16:03 · 384 阅读 · 0 评论 -
java.io.FileNotFoundException: D:\桌面\file3 (拒绝访问。)
今天笔者使用FileInputStream输入流的时候,向里面添加了(new File(“D://桌面//file3”)的File文件参数),最后不管怎样运行都会出现报错信息。修改为new File(“D:\桌面\file3\c.txt”)即可。FileInputStream只能读取的文件而不是文件夹。即把new File(“D:\桌面\file3”)创建文件File即可解决问题。原创 2023-11-04 13:36:01 · 452 阅读 · 0 评论 -
如何为一个Type类赋值
今天我在写代码的时候遇到一个神奇的类——Type,虽然说我们都心知肚明这个类代表着什么(字面意思嘛,很好理解),但是实操起来却无从下手,就如何对Type类进行赋值,我也是一头雾水,好在我专门了解了一下,下面是简单的对Type类赋值的语句。原创 2023-11-04 12:56:40 · 136 阅读 · 0 评论 -
listFiles()为null原因
今天笔者在对File文件进行listFiles方法调用时,发现报错返回空指针异常,下面是列举的可能出现的错误的原因。原创 2023-11-02 20:58:16 · 773 阅读 · 1 评论 -
Javassist讲解1(介绍,读写字节码)
javassist 使Java字节码操作变得简单,它是一个用于在Java中编辑字节码的类库;它使Java程序能够在运行时定义一个新类,并在JVM加载类文件时对其进行修改与其他类似的字节码编辑器不同,javassist提供了两个级别的API:源代码级别和字节码级别如果用户使用源级API,他们可以在不了解Java字节码规范的情况下编辑类文件。整个API仅使用Java语言的词汇设计,甚至可以以源代码的形式指定插入的字节码,Javassist会即时的进行编译。原创 2023-11-01 20:36:12 · 199 阅读 · 1 评论 -
如何正确在循环中使用Rondom构建测试用例
我们都知道,在测试代码时候,可以暴力使用Random函数产生大量值构建测试用例,但我最近在循环中使用这个函数时,遇到一个坑,希望大家了解一下避免跟我犯同样的错误。提示:以下是本篇文章正文内容,下面案例可供参考。原创 2023-10-31 09:47:45 · 29 阅读 · 0 评论 -
Java反射获取私有内部类实例
今天笔者在获取一个类中的私有内部类实例的时候,用(获取外部类->获取内部类->构建内部类构造器->内部类构造器实例化)思路时,发现行不通,最后发现解决办法是在获取内部类的构造器时(无论有参或无参)都要在参数列表中加上外部类.class ,下面我用错误与正确例子对比加深大家的理解提示:以下是本篇文章正文内容,下面案例可供参考由于成员内部类的对象的创建依赖于外部类对象,持有指向外部类对象的引用,所有在反射构造成员内部类的时候一定要获取构造器再调用构造器的newInstance方法,原创 2023-10-30 19:49:48 · 134 阅读 · 0 评论 -
Java反射获取内部类方法
Java 通过反射可以获得内部类,包括内部类属性信息和方法。创建了一个类Yest,其中有成员内部类A,A中有方法fun。由图可知抽象类中调用反射可以获取到私有方法。原创 2023-10-24 23:10:16 · 835 阅读 · 2 评论 -
Java每日笔试题错题分析(7)
5. HashMap可以存null键和null值,不保证元素的顺序恒久不变,它的底层使用的是数组和链表,通过hashCode()方法和equals方法保证键的唯一性。成员变量的引用在堆区,因为成员变量的所属对象在堆区,所以它也在堆区,局部变量的引用在栈区,因为它不属于某一个对象,在调用时才被加载,所以在栈区。成员变量的引用在堆区,因为成员变量的所属对象在堆区,所以它也在堆区,局部变量的引用在栈区,因为它不属于某一个对象,在调用时才被加载,所以在栈区。HashTable线程安全。HashTable线程安全。原创 2023-10-20 20:33:12 · 153 阅读 · 1 评论 -
Java集合框架继承关系图(Collection)
下图展示了集合框架中各个类的继承情况原创 2023-10-20 18:50:06 · 118 阅读 · 1 评论 -
Random与random的区别
Rondom和raodom都可以表示随机数,下面是详细讲解提示:以下是本篇文章正文内容,下面案例可供参考。原创 2023-10-20 10:47:18 · 181 阅读 · 1 评论 -
Java每日笔试题错题分析(6)
题目中"admin"指向堆内存字符串常量池里admin的地址,而String类的方法都是通过创建新的对象也就是new String()的方式返回的,因此userId.toLowerCase()指向的是这个字符串对象在堆内存中的地址。,输出结果将变为true。本题考查==的含义,对于两个引用变量,只有他们指向同一个引用时,==才会返回true。本题考查==的含义,对于两个引用变量,只有他们指向同一个引用时,==才会返回true。原创 2023-10-16 20:31:28 · 73 阅读 · 1 评论 -
Java每日笔试题错题分析(5)
题中父类可以调用子类重写的方法,但不能调用子类新增的方法,因此语句b.bark()出错,由于b中无bark方法,因此会报编译错误。静态初始化:int array[]=new int[]{element1,element2…静态初始化:int array[]=new int[]{element1,element2…或int array[]={element1,element2}或int array[]={element1,element2}4.初始化子类的普通成员变量和代码块,再执行子类的构造方法。原创 2023-10-15 18:10:52 · 112 阅读 · 1 评论 -
2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023)
【代码】2023全国大学生软件测试大赛开发者测试练习题99分答案(ScapegoatTree2023)原创 2023-10-12 23:04:48 · 2979 阅读 · 1 评论 -
Java每日笔试题错题分析(4)
而超出这个范围则新建一个对象。1,字符串在java中存储在字符串常量区中 2,判断的是对象引用是否是同一个引用,判断字符串相等要用equals方法 首先判断a==MESSAGE 同一份字符串常量在内存中只有一份,因此是同一地址,返回true 再次比较(b+c)==MESSAGE 这相当于 new String(b+c)==MESSAGE 这里new了一个String对象,所以返回false。==比较引用,equals比较值,因为a,b都在常量池,因此他们是同一个引用,而c,d在堆中,他们也是同一个引用。原创 2023-10-12 17:41:18 · 91 阅读 · 0 评论 -
2023全国大学生软件测试大赛开发者测试练习题满分答案(PairingHeap2023)
【代码】2023全国大学生软件测试大赛开发者测试练习题满分答案(PairingHeap2023)原创 2023-10-11 21:58:44 · 2217 阅读 · 9 评论 -
Java反射获取抽象类方法属性问题讲解
Java 通过反射可以获得抽象类的任何修饰符(包括private,public,protected)属性信息和方法。创建了一个抽象类Person,其中有私有属性name和私有方法declare()。由图可知抽象类中调用反射可以获取到私有方法。由图可知抽象类中调用反射可以获取到私有属性。创建匿名内部类(相当于直接继承了)原创 2023-10-11 21:43:18 · 459 阅读 · 1 评论 -
Java子类继承父类私有方法属性问题讲解
创建了一个父类Person,其中有私有属性name和私有方法fun()。Java 父类私有方法和私有属性不能被子类继承。由图可知子类中调用反射不可获取到父类私有方法。由图可知子类中调用反射不可获取到父类私有属性。创建子类Doctor继承父类Person。原创 2023-10-11 19:46:19 · 748 阅读 · 1 评论 -
Java每日笔试题错题分析(3)
这道题容易误选答案A,实际上应该是正确答案是C,因为在1000毫秒后,线程是处于就绪态,也就是还需要检查是否有资源允许现在的线程继续运行,若不满足则继续等待,即等待时间可能等于1000毫秒或者大于1000毫秒。4的二进制为100(前面的0省略),7的二进制位111,即100&111= 100,在计算机中1表示真,0表示假,最左边一位1&1=1,最右边一位0&1=0,所以输出4。选项A中由于类B是默认修饰符,则B类的构造器修饰符应该是default,C中调用父类的方法应该使用super()而不是this()原创 2023-10-11 15:54:54 · 81 阅读 · 1 评论 -
Java每日笔试题错题分析(2)
在三目运算符java开发的环境下可以简单理解为双目运算符的类型转换问题(便于理解),如果定义的两个变量共同参与三元运算符的后双目运算,那么返回的结果就是范围更大(精度更高)的类型,在java中常见的数据类型其范围从小到大(精度由低到高):byte<short<char<int<float<double,当类型相同时候,返回该类型。:图中99.9的类型为double 型比9的类型short更高,因此9应该转化为更高类型的double型9.0,即答案为9.0。3、访问权限不能更低,可以更高。原创 2023-10-10 20:34:24 · 115 阅读 · 1 评论 -
Java每日笔试题错题分析(1)
null是false后仍然会继续判断后面的表达式,而B中不会继续判断,同理,C同A,D同B,因此,选择AC。1、&&(与):前后两个操作数都为true,返回true,先计算左边的操作数,若左边为true,直接返回false,根本不会计算后面的操作数。1、&&(与):前后两个操作数都为true,返回true,先计算左边的操作数,若左边为true,直接返回false,根本不会计算后面的操作数。1、ArrayList实现了List接口,而LinkedList同时实现了List接口和Queue接口。原创 2023-10-09 14:46:49 · 100 阅读 · 1 评论 -
方法内改变形参引用影响实参问题详解
由图中我们可以看到,在main函数创建了一个新的ArrayList对象,并调用了print函数实现了对该对象进行修改和使其指向新建对象的操作,那么最后对象al应该是什么呢?我们由图中调试结果可以看到,最终al对象只有1,2两个值,说明函数print成功修改了al对象,而却无4的值,说明函数中无法修改形参引用的修改。原创 2023-10-07 16:47:46 · 134 阅读 · 1 评论 -
Eclipse如何打开debug变量窗口
点击other,找到Variables并点击。最后调试代码,调试后如图所示,点击Java。最后可以显示出这个Variables变量区。原创 2023-09-20 16:43:57 · 1694 阅读 · 1 评论 -
JUnit测试进阶(Mock测试)
Mock测试在对程序模块进行测试时,通过替换与待测方法协作的对象,来实现待测代码与其他代码的隔离。值得注意的是,Mock只为测试提供服务,因此替换模块并不需要实现任何程序逻辑,只提供一个用于模仿被替换方法的空客。原创 2023-09-17 17:57:49 · 593 阅读 · 1 评论 -
Junit单元测试异常处理方法
开发者在进行Java编程时会对程序中的异常进行处理。一般的,可以发生异常的方法内添加 try/catch/finally 等处理语句,在方法内部解决异常;也可以使用throw / throws 语句交由方法上一层进行解决。因此,在单元测试也应当考虑方法抛出异常的情况,对异常的处理也应当纳入单元测试框架中。JUnit提供了多种异常处理的机制,以帮助测试者验证需要处理的异常代码,本篇文章我们主要来探讨一下JUnit处理异常的方法。原创 2023-09-16 19:06:22 · 1421 阅读 · 1 评论 -
Java异常处理(详解)
如同大多数现在现代编程一样,Java语言有着健壮的异常处理机制,将控制权从出错点转移给强壮的错误处理器,这篇文章为大家主要讲解Java的异常处理机制。尽管Java已经预定义了许多异常类,但有时还需要定义自己的异常。编写自定义异常类实际上是一个继承API标准异常类,用新定义的异常类处理信息覆盖原有信息的过程。下面讨论一个例子。原创 2023-09-15 20:32:42 · 458 阅读 · 1 评论 -
Java中父子对象的相互转换问题
继承关系使一个子类继承父类的特征,并且附加一些新特征。子类是它父亲的特殊化,每个子类的实例也是它父亲的实例,但反过来不成立,因此,子类对象和父类对象在一定条件下也能相互转换,这种类型转换一般称为对象转换和造型(casting)。对象转化也有自动转换和强制转换之分。原创 2023-09-12 20:16:03 · 3089 阅读 · 1 评论 -
Java方法重载,方法覆盖,方法隐藏的区别
今天笔者在复习Java方法继承的问题时候,发现这个出现了方法重载,方法覆盖,方法隐藏这三个名词,于是我决定好好区别一下他们。我首先创建的一个父类 Father和继承父类的子类 Son。原创 2023-09-11 20:52:23 · 126 阅读 · 1 评论 -
Java类中成员变量初始化顺序
我们知道Java中对象初始化可以使用初始化块,静态初始化块,默认值初始化和构造函数,那么他们的顺序是什么呢用默认值给静态变量赋值,然后执行静态初始化块为static变量赋值用默认值给实例变量赋值,然后执行初始化块为实例变量赋值最后使用构造方法初始化静态变量或者实例变量。原创 2023-09-11 18:53:35 · 63 阅读 · 1 评论 -
Java常用核心类(Object终极父类,Math类,基本类型包装类)注意事项
今天笔者在复习Java常见核心类知识点时,发现一些比较需要特别留意的地方,决定分享给大家了解一下。原创 2023-09-11 15:49:54 · 57 阅读 · 2 评论 -
Java如何通过暴力反射获取私有成员变量
我们都知道,当一个类的成员变量或者方法的访问属性设置为私有时,类外的方法是无法访问的,只能通过方法内部的成员方法访问,那么如果类中没有访问私有成员变量或者私有成员方法的共有方法,还可不可以暴力强制访问私有的成员呢?答案是有的,我们需要通过反射来实现。然后再调用变量的禁止检查访问控制函数setAccessible(true),最后调用变量的get方法,参数为对应的cat对象实例,即可访问到私有变量num的值。如图,创建了一个Cat类,其中声明了私有变量num和私有方法drink()和私有构造函数。原创 2023-09-11 00:00:00 · 357 阅读 · 3 评论 -
Java内部类讲解
Java语言允许在一个类的内部定义另一个类(接口,枚举和注解),这种类称为内部类或者嵌套类,如下所示//成员变量和方法、class InnerClass{ //一个内部类的定义//成员变量和方法Java语言允许使用内部类是增强两个类之间的联系,并可以使程序代码清晰,简洁有多种类型的内部类,大致可以分为成员内部类,局部内部类,匿名内部类和静态内部类,下面讨论一下这几种内部类的定义和使用。原创 2023-09-10 17:58:09 · 46 阅读 · 2 评论 -
JAVA高级技术入门(单元测试,反射,注解,动态代理)
public @interface 注解名称 {public 属性类型 属性名() default 默认值;特殊属性名:value如果注解中只有一个value属性,使用注解时,value名称可以不写!!注意序号1和序号2作用相同就是判断类上,方法上,成员变量上是否存在注解,并把注解里的内容解析出来代理类通常会持有一个委托类对象,代理类不会自己实现真正服务,而是通过调用委托类对象的相关方法,来提供服务,所以其实我们调用的还是委托类的服务,但是中间隔了一个代理类。原创 2023-09-10 00:04:28 · 404 阅读 · 2 评论 -
IDEA中Debug测试的基本使用
Debug是用来追踪代码,通常在程序运行中出现异常的时候启动debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化,通常我们也可以启动Debug模式来跟踪代码的运行流程去学习三方框架的源码。原创 2023-09-09 11:55:18 · 755 阅读 · 2 评论 -
关于Java类名首个字母命名的规范
IDEA中测试类中无法找到需要的类的解决方案原创 2023-09-08 17:17:08 · 395 阅读 · 2 评论 -
idea创建新文件自动生成作者信息注释
首先打开idea设置,找到编译器->文件和代码模板->include。这种注释用/** + enter快捷键便可以打出来。然后输入自己想要的初始化字段信息即可。这里是笔者的 初始化信息代码。下面是修改后创建文件的效果。原创 2023-09-07 15:49:40 · 460 阅读 · 2 评论 -
list.toString如何去掉[]和逗号
list.toString如何去掉[]和逗号原创 2023-09-04 22:16:12 · 653 阅读 · 2 评论