Java基础
- switch能否用string做参数
- object有哪些公用方法:equals和==,hashcode,clone,wait,notify等
- String、StringBuffer与StringBuilder的区别。
- try catch finally,try里有return,finally还执行么?
- Excption与Error包结构。
- Override和Overload的含义与区别。
- Interface与abstract类的区别。
- Static class 与non static class的区别。
- foreach与正常for循环效率对比。
- 反射机制
- String类内部实现,能否改变String对象内容,String源码
- Java1.7与1.8新特性。
- java集合框架的结构
- list,set,map接口
- 哪些是线程安全,哪些不安全
- hashmap能否用null作为键或值
- hashmap源码
- 快速失败与安全失败
- arraylist,linkedlist底层实现区别,如何扩容
- treemap,hashmap,linkedhashmap区别和特点,底层实现的区别
- 如何解决不安全的集合的安全性问题
- 强软弱虚四种引用,java的四种引用的区别
- java内存分区,JVM分区,分别解释
- java的个内存分区在什么情况下内存溢出
- java垃圾回收机制,垃圾收集算法特点及工作在哪一代,分代收集策略,如何判断一个对象该被回收了,java对象实现如何自救,java的垃圾收集器,内存分配与回收及分配担保
- java的类加载机制,类加载的5个步骤,类加载器
- 线程生命周期
- java如何使用多线程(runnable和Thread)
- stop,resume,suspend的缺点
- 终止线程有哪些方法
- 守护线程
- synchronize关键字和wait,notify,notifyAll
- lock与condition,Java中的几种不同锁
- 线程死锁情景
- 消费者生产者模型
- volatile关键字,是否保证原子性,优缺点
- ThreadLocal的特点和使用
- 单例模式和多线程
- SimpleDateFormat的安全性问题
- java的并发容器包Concurrent。阻塞队列,CopyOnWriteList等
- ConcurrentHashMap的源理
- java的线程池原理和自带的四大线程池
- Executor框架
- 垃圾回收器的分类及优缺点
- synchronized和锁区别
- HashMap && HashTable && ConcurrentHashMap
- volatile关键字的原理
- Java有几种不同的编码格式各有什么特点不同、file、线程安全、overload和override、JAVA内存机制、垃圾回收怎么实现
- 九种基本数据类型的大小,以及他们的封装类。
- Switch能否用string做参数?
- equals与==的区别。
- Object有哪些公用方法?
- java的四种引用,强弱软虚,用到的场景。
- Hashcode的作用。
- ArrayList、LinkedList、Vector的区别。
- String、StringBuffer与StringBuilder的区别。
- Map、Set、List、Queue、Stack的特点与用法。
- HashMap和HashTable的区别。
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
- TreeMap、HashMap、LindedHashMap的区别。
- Collection包结构,与Collections的区别。
- try catch finally,try里有return,finally还执行么?
- Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。
- Java面向对象的三个特征与含义。
- Override和Overload的含义去区别。
- Interface与abstract类的区别。
- Static class 与non static class的区别。
- java多态的实现原理。
- 实现多线程的两种方法:Thread与Runable。
- 线程同步的方法:sychronized、lock、reentrantLock等。
- 锁的等级:方法锁、对象锁、类锁。
- 写出生产者消费者模式。
- ThreadLocal的设计理念与作用。
- ThreadPool用法与优势。
- Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。
- wait()和sleep()的区别。
- foreach与正常for循环效率对比。
- Java IO与NIO。
- 反射的作用于原理。
- 泛型常用特点,List<String>能否转为List<Object>。
- 解析XML的几种方式的原理与特点:DOM、SAX、PULL。
- Java与C++对比。
- 内存模型以及分区,需要详细到每个区放什么。
- 堆里面的分区:Eden,survival from to,老年代,各自的特点。
- 对象创建方法,对象的内存分配,对象的访问定位。
- GC的两种判定方法:引用计数与引用链。
- GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?
- GC收集器有哪些?CMS收集器与G1收集器的特点。
- Minor GC与Full GC分别在什么时候发生?
- 几种常用的内存调试工具:jmap、jstack、jconsole。
- 类加载的五个过程:加载、验证、准备、解析、初始化。
- 双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。
- 分派:静态分派与动态分派。
- 泛型相关知识,比如能否List<Object> = new ArrayList<String>; 或者List<String> = new ArrayList<Object>;为什么可以或者不可以。
- ConcurrentHashMap和HashTable的区别。
- Jvm 自动内存管理、如何实现对象的自我救赎?
- violate起什么作用?
- 熟不熟jvm,说一下Jvm的自动内存管理?
- 语言基础,String类可以被继承吗?为什么?
- Final能修饰什么?(当时我说class、field、method,他说还有吗?然后又叫我不要在意,后来回想起,应该是问到我在参数里面要不要用final,接下来是因为匿名内部类)
- Java中有内存泄露吗?(先说本质,再结合handler+匿名内部类)当时如何分析的?
- Oom是如何解决?
- 除了软引用还知道什么引用?
- Jvm自动内存管理(什么时候触发gc)?
- Jvm中软、虚引用的区别
- Java nio的认识
- Java对象的引用方法
- Java GC机制
- HashMap && HashTable && ConcurrentHashMap
- 多线程同步
- Synchronized && Reentrantlock
- 线程池有几种用法?newFixedThreadPool是怎么执行的?--coreSize与maxSize
- 内存泄漏和内存溢出
- 除了handler,子线程与UI线程还有几种通信方式?(runOnUIThread、post)
- 启动Service的两种方式?startService和bindService的区别?对Binder的了解
- Rxjava在使用的时候和传统代码有什么区别
- 强引用和弱引用同时引用一个对象是否会被回收
- 自旋锁和syn关键字的区别
- volatile关键字的原理,我画了个工作内存和主内存的图
- 方法加syn和syn一个对象有什么区别
- 说下接口和抽象类的区别,在你项目中哪些地方用到了接口和抽象类?
- 说下泛型,用到的集合类,说的hashMap,说一下底层的实现,如果你要往hashMap插入一个数,详细说一下插入的具体流程,如果出现hash冲突,怎么解决?
- java多线程用的多么?怎么加锁?怎样停止一个线程?
- java线程的各种状态
- 线程同步
- hashmap与hashtable区别
- jvm栈
- gc算法
- java的多态,继承,封装,还有private protected public default的意义
- volitate的实现原理(说到了内存屏障)
- 软引用和弱引用
- 创建弱引用的时候,构造方法传入一个ReferenceQueue,作用是什么
- 共享变量的线程安全(自旋锁和synchronized区别)
- 抽象类与接口的区别。
- 集合类有哪些?
- ArrayList和LinkedList的区别
- Java的垃圾回收机制有了解过吗?
- GC的算法。
- Java的引用类型。
- Java中对哪个知识用的比较熟练,对你在客户端开发中作用最大。我说Collections。他就问ArrayList和LinkedList的区别是什么?底层实现是什么?
- HashMap和Map的区别,底层实现是什么?
- 多线程了解不?我说还好。他说两个进程同时要求写或者读,能不能实现?如何防止进程的同步?
- Object中有哪些公有方法 ps:clone();toString();wait();notify();getClass();finalize();equals();hashCode();
- HashMap和HashTable的区别
- JVM结构,内存分配,内存管理,GC
- java锁机制,线程同步
- java四种修饰符(private,protected,public,default)的特点
- 静态内部类和非静态内部类的特点和区别
- jvm分区,GC(基本上后续所有地方面试都问了,基础中的基础)
- volatile和Synchronized区别
- 原子性、可见性的概念
- 进程与线程的区别
- 线程池的概念、好处、常见的线程池举例
- Callable和Runnable的区别
- HashMap的内部原理
- ConcurrentHashMap原理
- 线程池构造函数传参意义,手写代码实现线程池,继承方式,不能用现成的
- hashmap底层实现原理,如何处理溢出
- 从单例引到static的用法,对成员,对方法的作用,包括初始化的过程。然后问一个static对象只初始化一次需要怎么做?
- arraylist和hashmap的原理及区别
- listview的原理,底层实现
- 插件化开发原理以及在项目中应用
- ImageLoader中内存分几级?这个我说lrucache和diklrucache,面试官告诉我不对
- arraylist和hashmap的实现
- react-native相关开发技术
- 阻塞队列知道吗?blockingQueue。
- arrayBlockingQueue和linkedBlockingQueue的区别?
- arrayBlockingQueue的实现?
- 如果要你自己实现arrayBlockingQueue怎么做?
- classLoader? 如何打破双亲委托?
- 回到单例,synchronized关键字的作用。怎么实现的。
- 有哪些锁,blabla我说了一大堆。
- 你说的这么多锁有什么区别?各自的应用场景是什么?
- 线程池怎么调度的知道吗?
- volatile的内存语义怎么解释,禁止重排序是如何保证的?
- 什么是多态?
- Java反射怎么使用?讲到类加载的Class怎么调用类的所有属性和方法,Android里面通过反射调用私有api。
- hashMap,hashTable,currentHashMap底层实现
- 乐观锁与悲观锁。怎么实现乐观锁
- 接口和抽象类的区别是否可以实例化
-
多线程安全实现方式,synchronized和lock,信号量的介绍线程池具体原理
-
Java相关知识(问的很细)
-
Xml解析(问的很细)
-
图片压缩(问得很细)
-
文件上传下载(问的很细)
-
Servlet的相关知识(问的很细)
-
Session相关知识(问的很细)
-
数据结构对一个基本有序的数组应该采用什么方式进行排序,对一个乱序的数组应该采用什么方式排序能快速找到前n个数?为什么?
-
Java和JavaScript的区别
-
虚拟机相关知识
-
接口和抽象类
-
介绍一下restful框架(问了是哪个博士写的,那篇文章看了吗,真可怕)