(二) java深入源码级

哪些情况下的对象会被垃圾回收机制处理掉?

首先,要判断怎样的对象是没用的对象。这里有2种方法:
1.采用标记计数的方法:
给内存中的对象给打上标记,对象被引用一次,计数就加1,引用被释放了,计数就减一,当这个计数为0的时候,这个对象就可以被回收了。当然,这也就引发了一个问题:循环引用的对象是无法被识别出来并且被回收的。所以就有了第二种方法:
2.采用根搜索算法:
从一个根出发,搜索所有的可达对象,这样剩下的那些对象就是需要被回收的
判断完了哪些对象是没用的,这样就可以进行回收了

讲一下常见编码方式?

不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必须经过一次翻译,把它翻译成英语。这个翻译的过程就是编码。所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸道,但是这就是现状,这也和我们国家现在在大力推广汉语一样,希望其它国家都会说汉语,以后其它的语言都翻译成汉语,我们可以把计算机中存储信息的最小单位改成汉字,这样我们就不存在编码问题了。
计算中提拱了多种翻译方式,常见的有 ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等

utf-8编码中的中文占几个字节;int型几个字节?

UTF-8编码是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。
类型 大小
int 4个字节
char 2个字节
byte 1个字节
short 2个字节
long 8个字节
float 4个字节
double 8个字节

静态代理和动态代理的区别,什么场景使用?

https://www.cnblogs.com/micrari/p/5639084.html

Java的异常体系

http://blog.csdn.net/junlixxu/article/details/6096266

谈谈你对解析与分派的认识。

修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法?

Java中实现多态的机制是什么?

https://www.cnblogs.com/crane-practice/p/3671074.html

如何将一个Java对象序列化到文件里?

https://www.cnblogs.com/ScarecrowAnBird/p/7800785.html

说说你对Java反射的理解

http://blog.csdn.net/piaoyi493279486/article/details/45624257

说说你对Java注解的理解

https://www.zhihu.com/question/47449512?sort=created
https://www.cnblogs.com/nobounds/p/5433416.html

说说你对依赖注入的理解

说一下泛型原理,并举例说明

Java中String的了解

https://www.cnblogs.com/xiaoxi/p/6036701.html

String为什么要设计成不可变的?

不可变对象天生就是线程安全的

Object类的equal和hashCode方法重写,为什么?

http://blog.csdn.net/shiyanming1223/article/details/6893401
https://www.cnblogs.com/expiator/p/6064974.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值