2019-01-02今日内容

面试题

1.Java的堆和栈的区别?

堆:(对象)
引用类型的变量,其内存分配在堆上或者常量池(字符串常量、基本数据类型常量),需要通过new等 方式来创建。 堆内存主要作用是存放运行时创建(new)的 对象。(主要用于存放对象,存取速度慢,可以运行时动态分配内存,生存期 不需要提前确定)
栈:(基本数据类型变量、对象的引用变量)
基本数据类型的变量(int、 short、 long、 byte、 float、 double、 boolean、 char等 )以及对象的引用变量,其内存 分配在栈上,变量出了作用域就会自动释放。

  1. 堆内存: 存储的是数组和对象(其实数组就是对象),凡是new建 立的都是在堆中,堆中存放的都是实体(对象), 实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以 用,所以 堆是不会随时释放的,但是会被当成垃圾,Java有 垃圾回收机制不定时的收取。
  2. 栈内存: 栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局 变量,所以方法先进栈,然后再定义变量,变量有自己的作用域,一旦离开作用域,变量就会 被释放。栈内存的更新速 度很快,因为局部变量的生命周期都很短。
  3. 1、栈内存存储的是局部变量而堆内存存储的是实体。
    2、栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短。
    3、栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃 圾回收机制不定时的回收。 4、new创 建的对象存在于堆中,局部变量存在于栈中。在堆中定义的对象会在栈中存其的首地址,方便快速访问。

2.for和增强for哪一个遍历list集合更快,为什么

增强for的底 层是用迭代器实现,Iterator 主要性能开销在next方 法体,其一:对记录集进行检测,如果在迭代的过程 中,记录集有被修改,会抛出异常;其二:next方 法体内有try...catch 方法体,这也会影响性能,JVM不 能对 try...catch 块内的代码进行优化。而for因 为不管数据被中途修改,也不进行异常处理,所以更快一些

3.JDK、JRE和JVM是什么

JDK是整个JAVA的 核心,包括了Java运 行环境JRE,一堆 Java工 具(javac/java/jdb 等)和Java基 础的类库(即Java API 包括rt.jar) 。在JDK的安装目 录下有一个名为JRE的 目录,里面有两个文件夹bin和 lib, 在这里可以认为bin里 的 就是jvm,lib中 则是jvm工作所 需要的类库,而jvm和 lib和 起来就称为jre
JRE是 运行基于Java语 言编写的程序所不可缺少的运行环境,并不是一个开发环境,所以没有包含任何开发工具 (如编译器和调试器),只是针对于使用Java程 序的用户。
JVM就是我们常说的java虚 拟机,是一种用于计算设备的规范,它是整个java实 现跨平台的最核心的部分,所有的 java程 序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并 不直接与机器的操作系 统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行

4.什么是值传递和引用传递

对象被值传递,意味着传递了对象的一个副本。因此,就算是改变了对象副本,也不会影响源对象的值。
对象被引用 传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象所做的改变会反映到所有 的对象上。

5.异常处理的时候,finally代码块的重要性是什么

无论是否抛出异常,finally代 码块总是会被执行。就算是没有catch语 句同时又抛出异常的情况下,finally 代码块仍 然会被执行。最后要说的是,finally 代码块主要用来释放资源,比如:I/O缓冲区,数据库连接 。

6.代码中如何实现多态

实现多态主要有以下三种方式:

  1. 接口实现
  2. 继承父类重写方法
  3. 同一类中进行方法重载

7.switch中能否使用string做参数

在jdk 1.7之 前,switch只 能支持byte, short, char, int或者其对应的封装类以及Enum类 型。从jdk 1.7之 后 switch开 始支持String。

8.基本数据类型有哪些

byte:Java中 最小的数据类型,在内存中占8位(bit), 即1个字节,取值范围‐128~127 ,默认值0
short :短整型,在内存中占16位,即2个 字节,取值范围‐32768~32717 ,默认值0
int: 整型,用于存储整数,在内在中占32位,即4个 字节,取值范围‐2147483648~2147483647, 默认值0
long: 长整型,在内存中占64位,即8个 字节‐263~263 ‐1,默认值0L
float :浮点型,在内存中占32位,即4个 字节,用于存储带小数点的数字(与double的 区别在于float类 型有效小数点 只有6~7位 ),默认值0
double :双精度浮点型,用于存储带有小数点的数字,在内存中占64位 ,即8个字节,默认值0
char: 字符型,用于存储单个字符,占16位,即 2个字节,取值范围0~65535 ,默认值为空
boolean :布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、 false) ,默认值false

9.说说你对于static关键字的理解

Static可以修饰内部类、方法、变量、代码块
Static修 饰的类是静态内部类
Static修 饰的方法是静态方法,表示该方法属于当前类的,而不属于某个对象的,静态方法也不能被重写,可以直 接使 用类名来调用。在static方 法中不能使用this或 者super关 键字。
Static修 饰变量是静态变量或者叫类变量,静态变量被所有实例所共享,不会依赖于对象。静态变量在内存中只有一份 拷贝,在JVM加 载类的时候,只为静态分配一次内存。
Static 修饰的代码块叫静态代码块,通常用来做程序优化的。静态代码块中的代码在整个类加载的时候只会执行一 次。 静态代码块可以有多个,如果有多个,按照先后顺序依次执行。

10.JAVA多态的实现原理

A.抽象的来讲,多态的意思就是同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是 函数调 用)
b.实现的原理是动态绑定,程序调用的方法在运行期才动态绑定,追溯源码可以发现,JVM 通过参数的自动转型来找到 合适的办法

11.内部类与外部类的调用

a) 内部类可以直接调用外部类包括private 的成员变量,使用外部类引用的this.关 键字调用即可
b) 而外部类调用内部类需要建立内部类对象

12.什么是拆装箱

拆箱:把包装类型转成基本数据类型
装箱:把基本数据类型转成包装类型

流程图

jmyp.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,262评论 11 349
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,794评论 0 10
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,707评论 0 11
  • 每一代人,都有每一代人的使命和追求,每一代人都或许有每一代人的际遇和挣扎乃至宿命。 2035年的我还是那个满心欢喜...
    徐小晫阅读 971评论 2 8
  • 感谢简书举办了这个接力活动,能跟一帮志同道合的朋友,一起玩写作游戏的感觉真的很棒,也充实了我们的生活,非常感谢,以...
    辛馨阅读 175评论 0 0