欢迎使用CSDN-markdown编辑器

来源:互联网 发布:js获取padding的值 编辑:程序博客网 时间:2024/06/05 19:35

stringBuffer , stringBuilder,String 区别

stringBuffer char[] 线程安全 synchronized
stringBuilder char[] 线程不安全
String final char[]

能否自己定义一个 java.lang.string?jvm 里如何唯一标示一个对象

java类加载机制为代理模式,先交给其父加载器去加载,如果父加载器加载不了,则由自己加载。我们自定义的类是由系统类加载器进行加载,而它的父加载器为扩展类加载器,扩展类加载器为引导类加载器。我们定义的java.lang.String最先由引导加载器加载,而它负责加载Java核心库,但java.lang.String正是系统中的类,已经被引导加载器记载过了,所以不再加载自定义的java.lang.String。但是系统的java.lang.String没有main方法,所以出现了上面的这个异常。
引导类加载器 (bootstrap class loader):它用来加载Java的核心库,是用原生代码实现的,并不继承自java.lang.ClassLoader。
扩展类加载器 (extensions class loader):它用来加载Java的扩展库。Java虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载Java类。
系统类加载器 (system class loader):它根据Java应用的类路径(CLASSPATH)来加载Java类。一般来说,Java应用的类都是由它来完成加载的。可以通过ClassLoader.getSystemClassLoader()来或其它。
除了系统提供的类加载器以外,开发人员可以通过继承java.lang.ClassLoader类的方式实现自己的类加载器。
除了引导类加载器以外,所有的类加载器都有一个父类加载器。对于系统提供的类加载器来说,系统类加载器的父类加载器是扩展类加载器,而扩展类加载器的父类是引导类加载器。一般来说,开发人员编写的类加载器的父类加载器是系统类加载器

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: 搜索
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())

hash map, hash table ,concurrenthashmap

thread local

object wait, nofity 为何需要加锁

thread pool 使用注意点

gc, promotion failed, cms有哪些阶段,哪些是stw, 如果时间过长,如何调优

spring 有哪些扩展点

spring aop 如何判断当前使用哪种代理

java8

mysql 大分页查询如何优化

mysql 快照读,当前读

mysql RR隔离级别 为啥能避免幻读问题

考察点:

Java基础

1、Java基础-集合、数据结构

2、Java基础-多线程、锁、线程池、同步范围

3、Java基础-NIO、同步阻塞、linux 多路复用

4、Jvm - GC及区块划分 、 G1、CMS过程、GC调优

5、Jvm - 相关命令、各命令参数意义,使用经验

6、常用框架web开发框架 spring,json,guava,apache

7、页面语言 vm、ftl、js、css

数据存储

1、数据库设计-分库分表

2、SQL优化、慢查询解决方案、死锁问题处理、前缀索引

3、NoSQL使用

4、缓存使用模式

相关组件

1、Linux常见运维命令、进程、awk、cpu问题

2、HTTP协议相关、session、cookie

3、TCP/IP协议、三次握手,四次挥手、个别参数意义

4、Maven、Git

5、NGINX 常见配置、负载均衡,location、lua

6、zookeeper、etcd

7、Netty

进阶话题

1、高可用系统原则

2、分布式系统-分布式锁,id生成器,集群管理,服务发现、单点问题、负载均衡

个人编码考察:

1、编码风格

2、组件贡献

3、现场系统设计 - 权限系统,红包系统,短消息系统

4、现场编码 - 消费者模式,字符串查找

5、开源贡献

个人经历考察:

1、项目需求说明

2、主要架构

3、与其他组交互情况

4、技术细节

5、在项目组的定位

项目贡献考察:

1、难点问题解决

2、系统错误处理

3、面向失败的设计

4、项目改进的建议

作者:Doing
链接:https://www.zhihu.com/question/29800631/answer/109486025
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

J2SE基础:1. 九种基本数据类型的大小,以及他们的封装类。2. Switch能否用string做参数?3. equals与==的区别。4. Object有哪些公用方法?5. Java的四种引用,强弱软虚,用到的场景。6. Hashcode的作用。7. ArrayList、LinkedList、Vector的区别。8. String、StringBuffer与StringBuilder的区别。9. Map、Set、List、Queue、Stack的特点与用法。10. HashMap和HashTable的区别。11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码。12. TreeMap、HashMap、LindedHashMap的区别。13. Collection包结构,与Collections的区别。14. try catch finally,try里有return,finally还执行么?15. Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。16. Java面向对象的三个特征与含义。17. Override和Overload的含义去区别。18. Interface与abstract类的区别。19. Static class 与non static class的区别。20. java多态的实现原理。21. 实现多线程的两种方法:Thread与Runable。22. 线程同步的方法:sychronized、lock、reentrantLock等。23. 锁的等级:方法锁、对象锁、类锁。24. 写出生产者消费者模式。25. ThreadLocal的设计理念与作用。26. ThreadPool用法与优势。27. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。28. wait()和sleep()的区别。29. foreach与正常for循环效率对比。30. Java IO与NIO。31. 反射的作用于原理。32. 泛型常用特点,List能否转为List。33. 解析XML的几种方式的原理与特点:DOM、SAX、PULL。34. Java与C++对比。35. Java1.7与1.8新特性。36. 设计模式:单例、工厂、适配器、责任链、观察者等等。37. JNI的使用。JVM:1. 内存模型以及分区,需要详细到每个区放什么。2. 堆里面的分区:Eden,survival from to,老年代,各自的特点。3. 对象创建方法,对象的内存分配,对象的访问定位。4. GC的两种判定方法:引用计数与引用链。5. GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?6. GC收集器有哪些?CMS收集器与G1收集器的特点。7. Minor GC与Full GC分别在什么时候发生?8. 几种常用的内存调试工具:jmap、jstack、jconsole。9. 类加载的五个过程:加载、验证、准备、解析、初始化。10. 双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。11. 分派:静态分派与动态分派。(来源:面试心得与总结—BAT、网易、蘑菇街)总体来说java考察内容包括以下这些:1,面向对象的一些基本概念:继承,多态之类的2, 抽象类和接口3, 静态类,内部类4, Java集合类,同步和非同步5, Java类加载机制6, Java内存模型和垃圾回收算法7, 线程同步机制(voliate,synchronized,重入锁,threadlocal),线程间通信(wait,notify)8, 异常处理9, 多线程同步问题,生产者消费者,读者写者,哲学家就餐,用java实现10, 了解java中设计模式的思想,用了哪些设计模式,有什么好处

基础题
java线程池实现原理(不需要编程),说明原理和数据结构
ThreadLocal的应用场景、实现原理以及与Synchronize的区别
中等题
编程题:如何将如下保存在HashMap键值对{a:3, b:1, c:2, d:5}按照值有序的方式输出{b:1, c:2, a:3,d:5}。
编程题:输出两个数组中的重复数字

高级题
有一个日志文件,其中保存学生成绩数据,如zhangshan,1112200,510\nlisi,1112233,740,设计一个算法,实现输出文件按照考试成绩降序排序,要求时间复杂度是o(n)
mysql数据库的存储引擎有哪些,区别是什么,innodb引擎的索引实现原理和锁机制

实现字符串中的反序,如“i am student.” 输出“.student am i”
2.0:最直接的想法,辟出空间存下每一个单词,最后逆序输出,O(n)空间代价和时间代价。
3.0:两次翻手:先整个字符串逆序“.tneduts ma i”;再按照空格和“.”分段逆序“.student am i”,O(1)空间代价,O(n)时间代价。