JavaSE
文章平均质量分 56
RuiW_97
测试小白进阶ing
展开
-
一文弄懂Java值传递和引用传递
首先确定:Java是值传递。 那么值传递和引用传递的具体区别是什么呢? 首先看比较官方的定义: 值传递:是指在调用方法时将实参复制一份传递到方法中,这样当方法对形参进行修改时不会影响到实参。 引用传递:是指在调用方法时将实参的地址直接传递到方法中,那么在方法中对形参所进行的修改,将影响到实参。 可以分析出两点区别: 传递时有没有对实参进行复制 对形参进行修改是否会影响到实参 实参与形参 实参:传入方法的参数 形参:定义方法时括号里的参数,是实参传入方法的桥梁 public class Example原创 2021-08-17 16:43:05 · 361 阅读 · 0 评论 -
Java类初始化顺序(代码测试)
Java类的初始化顺序为 静态变量/静态代码块—main()方法—非静态变量/代码块—构造器 代码验证: public class LoadClassTest { private static int a = 1;//静态变量 private int b = 2;//成员变量 static { System.out.println("静态变量a=" + a); System.out.println("我在静态代码块里"); System.o原创 2021-06-16 16:09:49 · 85 阅读 · 0 评论 -
try-catch-finally执行顺序
异常处理方式之一:try-catch-finally 格式 try{ //可能出现异常的代码 }catch(异常类型1 变量名){ //处理异常的方式1 }catch(异常类型2 变量名){ //处理异常的方式2 }catch(异常类型3 变量名3){ //处理异常的方式3 } ... finally{ //一定会执行的代码 } 说明: try代码块中有异常时,会根据异常类型进入相应的catch。 finally可选,如果有finally,那finally中的代码一定会执行。 问题:如果tr原创 2021-06-03 16:52:37 · 190 阅读 · 0 评论 -
Java多态之左右
学习Java的人都很熟悉多态。 多态即事物的多种状态,比如人,分男人女人,也可以分学生老师等。 多态的实现: 继承(类 / 实现接口) 重写 向上转型 所谓向上转型即由子到父。父类引用指向子类对象。Person p = new Student(); 那么Person类和Student类有自己的变量和方法,如果子类有重写的方法,或子类没有父类的方法,或父类的方法私有,在编译和运行时都会出现什么情况呢? 以下面代码为例: public class Main{ public static void m原创 2021-05-26 15:45:26 · 122 阅读 · 0 评论 -
Java基础—重载与重写的区别
意义 重载:是同一个类中对多个同名方法根据传参不同进行不同逻辑处理。 重写:是在子类对父类方法进行改造,方法的返回值类型、方法名、方法形参都必须相同,内部逻辑不同。 发生阶段 重载:编译期 重写:运行期 发生范围 重载:同一个类 重写:子类 方法的异常类 重载:可以修改 重写:子类方法抛出的异常类范围比父类的更小或相等 从访问权限修饰符 重载:可以修改 重写:子类方法的访问权限比父类的更大或相等 参数列表 重载:可以修改 重写:必须相同 7.返回类型 重载:可以修改 重写:如果父类方法的返回类型是void.原创 2021-03-15 19:53:10 · 59 阅读 · 2 评论 -
易错!!String 类 与 常量池
一、String对象有两种创建方式: //第一种 String str1 = "a"; //第二种 String str2 = new String("a"); 两种方法是有差别的。 第一种方式是在常量池中取对象:先检查字符串常量池中有没有"a",如果字符串常量池中没有,则创建一个,然后 str1 指向字符串常量池中的对象,如果有,则直接将 str1 指向"a"; 第二种方式是直接在堆内存空间创建一个新的对象。 再如: String str3 = "a"; str1 与 str3 都指向常量池中的原创 2021-02-18 22:18:37 · 112 阅读 · 0 评论 -
数组与list相互转化 java
list 和 数组 之间的相互转化: list 转为 数组:List<String> testList = new ArrayList<String>(){{add("aa");add("bb");add("cc");}}; 使用for循环 //初始化需要得到的数组 String[] array = new String[testList.size()]; //使用for循环得到数组 for(int i = 0; i < testList.size();i++原创 2020-12-02 22:06:34 · 214 阅读 · 0 评论 -
Java 控制台操作
Java Scanner类 用于获取用户输入 语法:Scanner s = new Scanner(System.in); next()与nextLine()区别: next() : 一定要读到有效字符结束输入 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。 next() 不能得到带有空格的字符串。 总之就是遇到空格停止扫描 nextLine(): 以Enter为结束符,也就是说 nextLine()方法返回原创 2020-11-27 16:24:41 · 822 阅读 · 0 评论 -
HashMap
HashMap知识整理 Map实现类之一:HashMap 所有的key构成的集合是Set:无序的、不可重复的。所以,key所在的类要重写:equals()和hashCode() 所有的value构成的集合是Collection:无序的、可以重复的。所以,value所在的类要重写:equals() 一个key-value构成一个entry 所有的entry构成的集合是Set:无序的、不可重复的 HashMap 判断两个 key 相等的标准是:两个 key 通过 equals() 方法返回原创 2020-11-03 20:11:04 · 461 阅读 · 0 评论