java基础面试题(一)
1.java中的数据类型,各占多少个字节?
2.面向对象的特性
1-封装:简单来说,封装就是把数据和操作数据的方法绑定起来,如果需要访问,可以使用已定义的接口进行访问
2-继承:从已有的类得到继承信息创建新的类的过程。提供继承信息的类称为父类(也叫超类,基类);得到继承信息的类称为子类(也叫派生类)
3-多态:允许不同的子类对同一消息做出不同的响应,也就是父类的引用指向子类的对象。而多态性又分为编译时多态和运行时多态。方法重载实现的是编译时多态(前绑定),方法重写实现的是运行时多态(后绑定)。实现多态的两件事:第一就是方法的重写(子类继承父类并重写父类中已有的和抽象方法);第二就是对象造型(父类的引用指向子类的对象)
4-抽象:将一类对象的共同特征总结出来构造类的过程。包括数据抽象和行为抽象。抽象只关注对象有哪些行为和属性,对于行为的细节并不关注
***注意:对象的特性默认情况下有3种,封装,继承,多态。如果面试官说了四种,那就加上抽象
3.访问权限修饰符public,protected,private,default(默认)的区别即访问范围
4.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
答:第一个是错的,因为1是int类型的,而s1+1的运算结果也是int类型的,需要强转(也叫下转化)才能赋值给short类型,即short s1=(short)s1+1;第二个是正确的,s1+=1相当于s1=(short)(s1+1),其中有隐含的强制转换
5.new一个对象的过程和clone一个对象的过程有什么区别?
答:new对象和clone对象的第一步是相同的,都是为了分配内存,而new是根据后面的类型进行内存的分配的,分配完内存之后才调用构造方法,填充对象中的各个域。构造方法返回后一个对象就创建成功了。同时可以将对象的地址发布到外部,在外部就可以用这个地址操作这个对象了。对于clone而言,它的分配内存是根据原对象的内存进行分配的,也就是原对象有多大内存,它就得到多大的内存,然后使用原对象中各个域填充新对象各个域,完成后clone方法返回,同样可以将这个新对象地址发布到外部,可以从外部对其进行操作了。
6.clone中的深克隆和浅克隆的区别
答:浅克隆只复制基本的数据类型,对于引用类型,只复制引用类型的地址,而引用的对象并没有复制,在新对象中修改引用类型的数据会影响原对象中的引用。
深克隆不仅复制对象本身,而且也复制它的引用指向的所有对象
7.&&和&的区别
答:&是逻辑与和按位与运算
&&是短路与运算
相同点:两者都要求 运算符两边的boolean值都是true,整个表达式的值才是true
不同点:如果&&左边的表达式是false,那么右边的表达式会直接短路,不会进行计算。&的按位与是进行二进制按位与的,参与运算的两个二进制数进行按位与,只有对应的两个二进制都为1时,结果才为1,否则为0。如:9&5
1001&0101---->0001,即9&5为1。
8. 内存中的栈(stack)堆(heap)方法区(method area)的用法
答:我们通常定义一个基本数据类型的变量,对象的引用,还有就是函数调用现场保存都使用的是JVM的栈空间,而new关键字和通过构造器创建的对象都放在堆空间。堆是垃圾收集器管理的主要区域,而现在的垃圾收集器都采用分代收集算法,所以堆空间还可以细分为新生代和老生代。堆和方法区都是各个线程共享的内存区域,用于存储已经被JVM加载的类信息,常亮,静态变量。常量池是方法区的一部分。栈空间操作起来快但是栈很小,所以平常都存在堆空间里,栈和堆的大小都可以通过JVM启动
参数进行调整。栈空间用光了会引发stackoverflowerror,而堆和常量池不足会引发outofmemmoryerror
java6开始,由于JIT技术的发展和“逃逸分析”技术的不断成熟、栈上分配等优化技术使得对象一定分配在堆上这件事变的不在那么绝对了
运行时常量池相当于Class文件常量池具有动态性,java语言并不一定要求常亮只有在编译期间才能产生,运行期间也可以将新的常量放到池中
9.java中如何跳出当前的多重嵌套循环?
答:在最外层加个标签, 然后用break 标签可以跳出多重循环了
10.String是否可以被继承?
答:String类是final类,不可以被继承的
11.数组有没有length()方法?string有没有length()方法?
答:数组没有length()方法,它有length属性,string有length()方法。在JavaScript中,获得字符串长度是根据length属性得到的
java基础面试题(一)的更多相关文章
- 经典的Java基础面试题集锦
经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...
- 非常全面的java基础笔试题
下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...
- Java基础机试题
package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert { ...
- 100道Java基础面试题收集整理(附答案)
不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...
- 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)
选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...
- 一份最贴近真实面试的Java基础面试题
这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...
- 最新28道java基础面试题-上
28道java基础面试题 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪 ...
- 28道java基础面试题-下
28道java基础面试题下 15.Java语言如何进行异常处理,关键字:throws.throw.try.catch.finally分别如何使用? 答:Java通过面向对象的方法进行异常处理,把各种不 ...
- Java基础面试题集(一)
Java基础面试题 一.面向对象编程(OOP) 7 二.常见的Java问题 7 2.1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 7 2.2.JDK和JRE的区别是什么? ...
- Java基础面试题(史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
随机推荐
- NOIP 模拟 $29\; \rm 最长不下降子序列$
题解 \(by\;zj\varphi\) 观察这个序列,发现模数很小,所以它的循环节很小. 那么可以直接在循环节上做最长上升子序列,但是循环节中的逆序对会对拼接后的答案造成影响. 没有必要找逆序对个数 ...
- 题解 P3158 [CQOI2011]放棋子
题解 本题是一个 \(DP\) 加 容斥,容斥的式子很好推,重点是如何想到和如何推出 \(DP\) 部分的式子. 因为不同种颜色的棋子不能放在同一行或同一列,所以不同种的棋子是相对独立的. 据此,我们 ...
- 管理 Python 多版本,pyenv 用起来
介绍 学习使用pyenv在本地安装多个 Python 版本,这样既不影响工作,也不影响生活~ pyenv 可让你轻松地在多个 Python 版本之间切换.它简单.不引人注目,并且遵循 UNIX 的单一 ...
- MediaWiki 语法简介
本文尚在完善中... 图片 图片官方教程 图文并茂的内容读起来总是更加舒服,让我们在wiki里引入图片. 内部图片 上传图片 点击右侧上传文件,上传文件后会获得文件名 编辑图片 文件上传后在编辑框,如 ...
- JavaScript高级程序设计学习笔记之事件
1.事件流 事件流描述的是从页面中接收事件的顺序. 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播 ...
- python打包发布自己的pip项目
原文链接:https://blog.csdn.net/Liangjun_Feng/article/details/80037315 一.注册pypi账号 网址:https://pypi.org/ 直接 ...
- ELK学习之Logstash+Kafka篇
上一篇介绍了一下Logstash的数据处理过程以及一些基本的配置功能,同时也提到了Logstash作为一个数据采集端,支持对接多种输入数据源,其中就包括Kafka.那么这次的学习不妨研究一下Logst ...
- Python习题集(八)
每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 要求:判断数组元素 ...
- Docker(23)- 注册 docker hub 的账号
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 前言 Docker Hub 是 ...
- Identity角色管理四(删除角色)
角色删除方法 [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Delete(string id) ...