JavaSE之Java基础(3)
2024-08-29 23:58:36
11、什么是值传递和引用传递?
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用被传递给方法中对应的形式参数,方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
12、数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?
区别:
- 数组的大小是固定的,列表的大小是动态变化的;
- 数组在声明的同时必须进行实例化(至少得初始化数组的大小),列表可以只是先声明,之后再进行实例化;
- 数组可以存储基本类型和对象类型,列表只能存储对象类型(存储基本类型要用包装类);
- 数组只能存储同一类型的数据,列表可以存放不同类型的数据(在没有声明泛型具体类型的情况下);
使用选择:
- 如果想要保存一些在整个程序运行期间都会存在而且不变的数据,可以使用一个全局数组;
- 如果只是单纯想要以数组的形式保存数据,而不对数据进行增加、删除等操作,只是为了方便进行查找的话,可以使用ArrayList,如果需要对元素进行频繁的移动或删除,或者是处理超大量的数据,使用ArrayList就不合适了,因为它的效率很低,可以选择使用LinkedList。
13、你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?
大O符号描述了当数据结构里的元素增加的时候,算法的规模或性能在最坏的情况下有多好。
比如数组的插入时间复杂度为O(N),空间复杂度为O(1);链表的插入时间复杂度为O(1),空间复杂度为O(1)。
14、String是最基本的数据类型吗?
不是,String是引用类型;String类是final的,不能被继承,不能被修改;
Java的基本类型只有八个:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2字节)、boolean。
15、int 和 Integer 有什么区别
- int是Java的基本类型,Integer是int的包装类,是引用类型;
- int的默认值为0,Ingeter的默认值为null。
java在编译Integer i = 128的时候,被翻译成Integer i = Integer.valueOf(128),而valueOf()函数会对-128到127之间的数进行缓存,如果在缓存中,就不会新建一个对象,否则,新建一个对象;
同样适用于Byte、Short、Integer、Long、Character,其中Character缓存的是0到127之间的数;
public class Java8Tester {
public static void main(String args[]) {
Integer i1 = ;
Integer i2 = ;
System.out.println(i1==i2);
}
} //结果为:true
public class Java8Tester {
public static void main(String args[]) {
Integer i1 = ;
Integer i2 = ;
System.out.println(i1==i2);
}
} //结果为:false
int类型和Integer类型比较,会把Integer自动拆箱为int再去比,所以,只要值相同,两者就是相同的。
public class Java8Tester {
public static void main(String args[]) {
Integer i1 = 99999;
int i2 = 99999;
System.out.println(i1==i2);
}
} //结果为:true
最新文章
- Automysqlbackup: WARNING: Turning off multicore support, since pigz isn’t there.
- SPSS数据分析—单因素及多因素方差分析
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
- Data Abstraction
- [转]XML中必须进行转义的字符
- ActionBar隐藏修改图标和标题
- su Authentication failure解决
- Server from URL
- thinkinginjava学习笔记09_内部类
- CSS 圣杯布局升级版---多个固定宽度一个自适应宽度
- Unity Input,生命周期,Light,获取组件
- (后端)项目中的错误之java中判断字符里面含有某些字符
- spring aop -包的问题
- CBAM: 卷积块注意模块
- 【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer
- chfn是用来改变你的finger讯息
- Docker(二十三)-Docker使用pipework配置本地网络
- ld链接器的工作原理及链接顺序(转)
- jsoncpp 构造空数组
- Linux系统更改/关闭防火墙