JavaSE之Java基础(3)
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
JavaSE之Java基础(3)的更多相关文章
- Java匹马行天下之JavaSE核心技术——Java基础语法
Java基础语法 一. 认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...
- 【JavaSE】Java基础·疑难点汇集
Java基础·疑难点 2019-08-03 19:51:39 by冲冲 1. 部分Java关键字 instanceof:用来测试一个对象是否是指定类型的实例. native:用来声明一个方法是由与 ...
- JavaSE之Java基础(2)
6.java8新特性 Lambda表达式 接口的默认方法与静态方法 方法引用 重复注解 扩展注解的支持 Optional类 Stream API Date Time API JavaScript引擎N ...
- JavaSE之Java基础(1)
1.为什么重写equals还要重写hashcode 首先equals与hashcode间的关系是这样的: 1.如果两个对象相同(即用equals比较返回true),那么它们的hashCode值一定要相 ...
- JavaSE之Java基础(5)
21.简述正则表达式及其用途. 在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. 22.Java ...
- JavaSE之Java基础(4)
16.String.StringBuilder和StringBuffer的区别 String类是final的,不可变,StringBuilder和StringBuffer可变: 大部分情况下的执行效率 ...
- java基础(一章)
java基础(一章) 1. java是一种面向对象的高级编程语言. 2. java包括: javase(java基础) ...
- JavaSE学习总结(一)——Java基础
一.Java是什么 Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.Java 是一项用于开发应用程序的技术,可以让 Web 变得更有意思和更实用.有许多 ...
- JavaSE入门学习7:Java基础语法之语句(下)
继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...
随机推荐
- TCP/IP以及Socket对象基本
1 OSI七层模型概念介绍 物理层:数据以比特的方式进行传递,典型的设备是集线器.该层主要规定了设备的电压或者端口等等一些列物理层面上的规定 数据链路层:该层数据以帧的方式进行传递,主要是两个 ...
- 由hibernate配置cascade而导致的软件错误,并分析解决此问题的过程
本文与上一篇文章的软件背景相同,是一个安装部署的工具,这个工具会生成整套系统部署用的xml文件. 这个工具中有一个“克隆”功能,当安装包有新版本后,可以克隆之前的xml版本,并在其基础上做少许修改来适 ...
- windows 服务器安装python及其基本库
步骤如下: 一.安装python软件: 1.进入windows服务器,从网址下载 python-3.5.4-amd64软件 到桌面: 2.在软件点右键,再“”以管理员身份运行“”,输入管理员密码: 3 ...
- Spring Boot 高效数据聚合之道
项目地址和示例代码: https://github.com/lvyahui8/spring-boot-data-aggregator 背景 接口开发是后端开发中最常见的场景, 可能是RESTFul接口 ...
- 10.Redis未授权访问漏洞复现与利用
一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等 ...
- C# 写 LeetCode easy #20 Valid Parentheses
20.Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...
- centos运行netcore error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
Error: Another program is already listening on a port that one of our HTTP servers is configured to ...
- Docker基本用法
基本操作命令 列举镜像 # docker images 列举容器 # docker ps 运行容器 # docker run -t --name ubuntu -i ubuntu:14.04 /bin ...
- 我的省选 Day -5
Day -5 时间载着我们,一天又一天,呼啸而过. 已经记不清今天是Day 负几了,总之还有不到一个星期就要去参加选拔赛了. 写一下今晚做NOI2009的心路历程. T1题意有点绕,但很快看出是个二分 ...
- 帝都Day4(3)——还是数据结构
可并堆 左偏树中 dist[x]=dist[rs[x]]+1 合并的时候,把权志较大的根作为根节点,把这棵树右子树和另一棵树合并. 说明白点:(上图描述有点问题) 设x表示根权值较大的左偏树,y表示根 ...