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基础面试题(一)的更多相关文章

  1. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  2. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  3. Java基础机试题

    package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert {   ...

  4. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  5. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...

  6. 一份最贴近真实面试的Java基础面试题

    这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...

  7. 最新28道java基础面试题-上

    28道java基础面试题 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪 ...

  8. 28道java基础面试题-下

    28道java基础面试题下 15.Java语言如何进行异常处理,关键字:throws.throw.try.catch.finally分别如何使用? 答:Java通过面向对象的方法进行异常处理,把各种不 ...

  9. Java基础面试题集(一)

    Java基础面试题 一.面向对象编程(OOP) 7 二.常见的Java问题 7 2.1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 7 2.2.JDK和JRE的区别是什么? ...

  10. Java基础面试题(史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

随机推荐

  1. NOIP 模拟 $23\; \rm 题$

    题解 \(by\;zj\varphi\) 考虑 \(\rm DP\) 设 \(dp_{k}(S)\) 表示前 \(k\) 个人来后 \(S\) 集合中的苹果都存在的概率是否大于 \(0\) 考虑倒着转 ...

  2. jenkins+docker部署java项目

    jenkins + maven + jdk + docker + docker register + dockerfile jenkins插件 # 安装插件 SSH # 配置 系统设置-> SS ...

  3. 基于taro封装底下浮动弹窗组件

    先看效果图: jsx: import Taro, { Component } from '@tarojs/taro' import { View, Image } from '@tarojs/comp ...

  4. 经典树与图论(最小生成树、哈夫曼树、最短路径问题---Dijkstra算法)

    参考网址: https://www.jianshu.com/p/cb5af6b5096d 算法导论--最小生成树 最小生成树:在连通网的所有生成树中,所有边的代价和最小的生成树,称为最小生成树. im ...

  5. Socket编程 Tcp和粘包

    大多数程序员都要接触网络编程,Web开发天天和http打交道.稍微底层一点的程序员,就是TCP/UDP . 对程序员来说,Tcp/udp的核心是Socket编程. 我的浅薄的观点---------理解 ...

  6. asp.net mvc 传值

    视图的查找 asp.net MVC 不需要用using 释放资源

  7. win10下安装mysql5.7-建议安装-自定义位置

    所需文件: 文件名字:mysql-installer-community-5.7.13.0.msi 开始安装: 01:勾选: 02:选择下一步 03:选择Custom安装 04:选择下一步 05:选择 ...

  8. sizeof()和 strlen()的区别 --- 个人笔记

    在学习C语言和linux的时候,遇到了一些常见问题.题目,有些很简单,有些容易出错,本人水平有限,未免会出错,今天有时间,就将以前做的笔记,一一拿出来,写写blog. sizeof()和 strlen ...

  9. Web应用安全防护-WAF

    web应用开发中不可避免需要考虑web应用的安全问题,那么常见的安全风险包含哪些呢? Web应用常见的安全风险 在web应用开发中可能存在以下的安全风险: 安全风险Top 10 A1:2017-注入 ...

  10. 读《深入理解java虚拟机》小结

    之所以学习 jvm ,是因为在学习多线程相关知识时,对 volatile 关键字理解的不够透彻,总有种似懂非懂的感觉.于是通过在网上各种资料的查阅,最终将 volatile 和 jvm 联系上了,本身 ...