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

最新文章

  1. Automysqlbackup: WARNING: Turning off multicore support, since pigz isn’t there.
  2. SPSS数据分析—单因素及多因素方差分析
  3. 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
  4. Data Abstraction
  5. [转]XML中必须进行转义的字符
  6. ActionBar隐藏修改图标和标题
  7. su Authentication failure解决
  8. Server from URL
  9. thinkinginjava学习笔记09_内部类
  10. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度
  11. Unity Input,生命周期,Light,获取组件
  12. (后端)项目中的错误之java中判断字符里面含有某些字符
  13. spring aop -包的问题
  14. CBAM: 卷积块注意模块
  15. 【Zookeeper】源码分析之服务器(四)之FollowerZooKeeperServer
  16. chfn是用来改变你的finger讯息
  17. Docker(二十三)-Docker使用pipework配置本地网络
  18. ld链接器的工作原理及链接顺序(转)
  19. jsoncpp 构造空数组
  20. Linux系统更改/关闭防火墙

热门文章

  1. shell入门-sed-1
  2. ps查看进程
  3. 21. 从一道CTF靶机来学习mysql-udf提权
  4. Linux下ping加上时间戳
  5. adnroid 启动是没有标题栏
  6. 微信小程序-获取当前城市位置
  7. Linux系列教程-----Linux安装centos6.8
  8. PHP连接 redis
  9. go语言web开发框架_Iris框架讲解(六):Session的使用和控制
  10. CF 980D Perfect Groups(数论)