如来 • 卷一 : Java 基础

前言: 2017.04 月份,朋友推荐了一份面试题给我看,后面在简书上也搜索到了一样的题,发表时间是2016年,比我拿到的早,我把题目和我做的答案贴出来,答案有不完整的,和大家一起完善一下.

1.实例方法和静态方法有什么不一样?

静态方法是所有实例共享的,可以不创建实例调用,存放在 xxx区

实例方法需要创建对象,通过对象引用才能调用,存放在 xxx区

2.Java 中的异常有哪几类,分别怎么使用?

编译时异常和运行时异常

3.常用的集合类有哪些?比如 List 如何排序?

4.ArrayList 和 LinkedList 内部的实现大致是怎样的?他们之间的区别和各自的适用场景是什么?

5.内存溢出是怎么回事?

OOM Error  :  PermGen space  永久区的大小不够,  加载不了那么多的jar 和 class

OOM Error  :  Java heap space  堆空间  ,  创建了太多对象,在垃圾回收之前已用满了,两个思路:  一个是查看程序是否存在重复创建对象;  二是启动时加大堆空间  Xms(初始) ,  Xmx(最大)

OOM Error  :  unable to create new native thread

创建的线程数过多,超出了系统限制  Linux  使用  ulimit -u  查看

给虚拟机分配的内存过大,

6.ClassLoader 有什么用?

类加载器  : BootstrapClassLoader  -- jre    ;  extension classloader  扩展类    app classloader  应用类  customer classloader  自定义加载器

使用了双亲委托模型 ,  app  -> extension -> bootstrap

7.== 和 equals 的区别?

== 对基本数据类型,进行的是值的比较  , 对于引用类型,只在引用地址一致时为true

equals 是对象进行比较  , Object中是 ==  ,可进行重写自定义 equals

8.hashCode 方法的作用?

在 Map 读取时,会根据hashCode值进行散列,  需要注意 hashCode 冲突,选择合适的属性进行散列

9.Object 类中有哪些方法?列举三个以上.

clone

toString

equls    hashCode

getClass

notify  notifyAll  --  有什么作用?

10.NIO 是什么?适用于何种场景?

相对标准的IO 基于字节流和字符流进行操作的,NIO 是基于通道 Channel  和 缓冲区(Buffer) 进行操作,数据从 Channel 读取写到 Buffer ,  或者从Buffer 读取,写入Channel

服务器  web  java 后端  : Tomcat ,  Jetty  ,Netty

文件读写  :  FileChannel

11.HashMap 数据结构、扩展策略,Hash 冲突攻击如何防范,如何实现线程安全的 HashMap?

结构:  数组加链表  :  java8 中链表长度超过8 时, 会改成平衡树实现

扩展: resize  ,  当超过loadfactor 因子时,默认 0.75  ,  触发扩展,rehash , 将旧的元素迁移到新的

hash collision attack :  修改hash 非随机算法,  限制post 参数个数,大小  ,  防火前检测异常请求

使用 ConcurrentHashMap  :  CHM 实现采用了 segment 锁  ,  8 之后采用的 CAS 技术

哈希冲突解决方法:  链表法(java 当前实现),建立公共溢出区 , 开发定址法(? 不明白)

12.JVM 内存结构,GC 算法,CMS、G1 的原理

13.NIO 模型, select/epoll 的区别,多路复用的原理

14.Java 中一个字符占多少个字节,扩展问int,long,double占多少字节

一个字符占 2 个字节

int  4 个字节

long  8 个字节

double 16 个字节

15.创建一个类的实例都有哪些办法?

new 关键字

Class 类的 newInstance 方法

使用 Constructor 类的 newInstance 方法

使用 clone 方法

使用反序列化

16.final/finally/finalize 的区别?

17.LinkingBlockingQueue 与 ArrayBlockingQueue 的区别,他们的使用场景?

18.Session/Cookie 的区别?

cookie 数据保存在客户端,session 数据保存在服务器端

结合 session id 来说 , cookie 可以临时(或保存若干时间) 服务器的 session id

19.String/StringBuffer/StringBuilder 的区别,扩展再问他们的实现?

String  -- 字符串常量池  ,内部使用 char[]  ,  是 final 类,  subString  replace  会创建新的String

StringBuilder  --  使用在字符串拼接场景,不用重复new String 对象,append 底层采用了 System.copyarray ,不发生内存拷贝

StringBuffer  --  相比StringBuilder  是一个线程安全的类,操作加上了锁

20.Servlet 的生命周期?

21.如何用 Java 分配一段连续的 1G 的内存空间? 需要注意些什么?

没有一个确定行的思路

分配直接内存:  ByteBuffer  allocateDirect()  底层调用 DirectByteBuffer  ?

需要注意什么  ?

22.Java 有自己的内存回收机制,但为什么还存在内存泄露问题呢?

内存回收机制,不能回收掉未被应用使用到的对象.  如创建一些  static map  list  ,  而不注意管理集合中的对象,就容易导致内存泄露

联系回收算法: 可达性分析算法  , 经过至少两次标记不可达,  f-queue 队列中 ,  Finalizer 线程

23.Java 里面用对象作为 Key 需要注意些什么? 如何实现 hashCode?

24.Java 关键词的发音: synchronized  volite

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

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,622评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,236评论 11 349
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,098评论 0 62
  • 集合框架: 1)特点:存储对象;长度可变;存储对象的类型可不同2)Collection(1)List:有序的;元素...
    Demo_Yang阅读 1,258评论 0 4
  • 丫头,今天是 你十七岁的生日,祝你生日快乐! 半夜的时候你给我发来了你写给自己的生日贺词,妈妈看到你这封信的时候,...
    胡泉_hq阅读 180评论 1 3