EverythingAboutJava
1 GC gabage collection 垃圾回收
Java垃圾回收机制
2 Reader 和 InputStream的区别
Reader用于读取Unicode编码的字符
InputStream的区别用于读取ASCII字符和二进制数据
3 == 和 equals的区别
equals用于比较内容是否相等
== 如果比较基本类型,是比较值是否相等,比较对象的变量类型,引用是否指向同一引用
4 String s = "aa" + "bb"编译器会做什么优化?
String s = "aabb";
如果是String s = "aa" + bb; //bb也是一个字符串
jdk1.4 new StringBuffer().append("aa").append(bb).toString();
jdk1.5 new StringBuilder().append("aa").append(bb).toString();
5 String、StringBuffer与StringBuilder之间区别
http://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html
6 Java有哪些基本数据类型?String是不是基本数据类型?
Java有8种基本数据类型
boolean char byte short int long float double 整数长度固定,且没有无符号类型
String是标准库的类
7 如果在hashCode中返回常量1,会有什么结果?
在HashMap中,所有这个类的对象都会出现hash冲突,从而使HashMap的查找性能降低为线性级别
8 char型变量能不能存储一个中文汉字,为什么?
可以,因为Java内部使用UTF8
9 HashMap 和 HashTable的区别
http://www.cnblogs.com/langtianya/archive/2013/03/19/2970273.html
10,一个Java对象作为Map的key时需要满足的前提条件是什么?
该对象需要重载hashCode和equals方法
11,什么是Java序列化?如何实现Java序列化?
序列化是一种处理对象流的机制:将对象的内容流化,可以对流化后的对象进行读写操作,
也可以将流化后的对象传输于网络之间。
序列化的实现: 实现Serializable接口,该接口没有需要实现的方法,只是为了标注
该对象是可被序列化的。然后使用一个输出流构造一个 ObjectOutputStream对象,
接着使用该对象的writeObject(Object obj)方法就可以将参数obj的对象写出。
12,interface 和 abstract class的区别
interface 是一种 约定关系
abstract class 体现一种继承关系
13,如果A和B对象循环引用,是否可以被GC
可以
14,多态的实现
一,子类重写父类的方法 ,用父类的引用,引用不同的子类,这样调用同样的方法,就会根据子类对象
的不同而表现出不同的行为。
二,在同一个类重,重载同一个方法名来实现多态。
15,多态的例子
比如微信支付和 支付宝支付,对于通向的支付接口,根据具体对象,可以表现出不同的行为。
16,面向对象和面向过程的区别?
面向过程是以事件为中心的编程思想
面向对象以对象为中心,关注对象的行为。
17,重载和重写
重载发生在同一个类中,方法名相同,调用参数的不同。
重写发生在父类和子类之间, 根据不同的子类确定调用的具体方法。
18,里氏替换,任何时候都可以用子类型替换掉父类型
19,面向接口编程,因为抽象类型可以被它的任何一个子类型代替
20,
Java堆内存
http://www.importnew.com/19593.html
21,
JVM 优化经验总结
https://www.ibm.com/developerworks/cn/java/j-lo-jvm-optimize-experience/index.html
22,
两种异常 checked exception 和 runtime exception
https://www.nowcoder.com/test/question/done?tid=7924845&qid=22460#summary
23,
跟我学SpringMVC目录汇总贴、PDF下载、源码下载
24,
深入浅出 JIT 编译器
https://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/
25,
dubbo学习笔记(一) dubbo入门Hello dubbo
26,
mybatis 官方文档
http://www.mybatis.org/mybatis-3/zh/index.html
27,
线上应用故障排查之一:高CPU占用 查看线程
28,
转-Tomcat 8 安装和配置、优化
29,
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
31,Java NIO
Java NIO:NIO概述
32,字段类型不同,导致索引用不上
mysql 关联查询 索引不起作用原因记录
33,
sql之left join、right join、inner join的区别
34,CountDownLatch
浅谈Java中CountDownLatch的用法
35,
浅谈Java中CyclicBarrier的用法
36,Future
Java并发编程:Callable、Future和FutureTask
37,Java并发框架
Java线程池ExecutorService
ExecutorService线程池
Java多线程之ExecutorService
ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池
38,
java观察者模式介绍
39,
Java 单例模式详解
java double check lock
40,ES的特点
强大的横向扩展能力
自动发现
天生分布式
集成语义分析
41,
Linux中TCP连接过程状态简介
http://www.cnblogs.com/ggzss/archive/2011/09/25/2190404.html
42,
osi 模型 tcpip网络模型
43,Linux命令的理解
可执行的二进制文件,脚本
44,查看CPU的使用状态
top或者 cat /proc/stat
45, 类的静态语句块,仅在类被加载时执行一次
46,加载驱动方法
三,添加系统属性
System.setProperty("jdbc.drivers", "com.MySQL.jdbc.Driver");
47,
关键词 xml, soap WSDL
48,ResultSet跟普通数组不同,索引从1开始,而不是0
49,volatile 只保证可见性, 不保证原子性
50,线程调度算法是平台独立的
51,前台线程结束,程序就会终止,不会管后台线程。
52, class的方法可以与class同名,有返回值方法,没有返回值就是构造函数
53,
&在逻辑运算中是非短路逻辑与,在位运算中是按位与
54,
java中可以有多个重载的main方法,只有public static void main(String[] args){}是函数入口
55,
子类实例化时,总要先调用父类的构造函数,如果没有显示调用,系统就会 隐式调用父类的无参构造函数 ,而如果父类没有无参构造函数,就会编译报错。
56,HashMap使用 链表法解决冲突
57,Statement -> PreparedStatement -> CallableStatement
58,final变量必须初始化,或者以某种方式初始化。
59, == 高于 三目用算符, 三目用算符从右到左计算。
boolean b=true?false:true==true?false:true;
b的结果是false
60,静态块,在类加载时执行一次,
构造块,每次创建对象都执行一次。
静态块》main》构造块》构造方法
61,
62,内部类,在声明时需要 Outer.inter a,
对于非静态内部类,需要有外部类的对象才能new, 静态内部类则不需要。
63,
64,
JAVA语言的下面几种数组复制方法中,哪个效率最高? System.arraycopy
65,
floor : 意为地板,指向下取整,返回不大于它的最大整数 ceil : 意为天花板,指向上取整,返回不小于它的最小整数 round : 意为大约,表示“四舍五入”,而四舍五入是往大数方向入。Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11而不是-12。
66,
Swing 比 AWT 速度慢
67,方法区所有线程共享
68,
鲁棒性 robust 健壮性
69,
对象序列化为何要定义serialVersionUID的来龙去脉
70,
Java transient关键字使用小记
71,
java序列化java.io.Externalizable (也是转过来的)
Externalizable也是序列化接口,继承了Serializable
72,Copy-On-Write
http://ifeve.com/java-copy-on-write/
73, 数据库面试题
https://zhuanlan.zhihu.com/p/23713529
74
Spring 事务机制详解
https://my.oschina.net/xianggao/blog/84237
http://opiece.me/2016/03/18/spring-transactional-introduce/(Spring事务配置及事务的传播性与隔离级别详解)
75 查看SQL执行效率 explain
http://blog.csdn.net/mengxianhua/article/details/8771993
数据库查询优化技术
76,Java对象实例化过程。
1,如果类没有加载,先加载类到内存中,HotspotJVM采用双亲委托模型。在类加载时,会给(1)静态变量分配内存空间并初始化,然后(2)执行静态方法块。
2,在堆内存中,给对象分配空间,并对实例变量做默认初始化null。
3,执行 非静态方法块,也叫构造块, 在构造块中可以初始化实例变量。
4,执行对应的构造函数。
5,将堆内存地址返回给引用变量,结束。
http://blog.csdn.net/piaojun_pj/article/details/5888104 (java实例化对象的过程)
http://www.cnblogs.com/SkyGood/p/3941942.html (一个对象的实例化过程【重点】)
注:非静态构造块可以看成是构造函数的一部分,是在所有构造函数最前面执行的。 这样实例的初始化就简化为:首先 默认初始化实例变量,再调用构造函数。
77,类加载-双亲委托模型
JDK默认的三种classloader:bootstrap loader -> ext class loader -> app class loader
1,看该类是否已经加载过,如果加载过直接返回。
2,如果没有加载过 就调用父类加载器去加载,如果没有父类,那就调用 bootstrap 类加载器去加载, 如果者两者都失败了, 最后才调用自身的加载器。
http://www.tuicool.com/articles/rqaQJj (深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题)
78, 用redis实现 分布式可重入锁
http://12131896.blog.51cto.com/12121896/1858517 (Java 实现基于Redis的分布式可重入锁)
79,LRU(最近最少使用)
LRU java实现
80,
Java监控工具、调优、调试辅助函数
81,动态代理
http://www.cnblogs.com/flyoung2008/archive/2013/08/11/3251148.html (彻底理解JAVA动态代理)
http://www.jianshu.com/p/6f6bb2f0ece9 (代理模式及Java实现动态代理)
82,日志收集系统
几十条业务线日志系统如何收集处理? (flume)
83,redis连接池 用到了 commons-pool
Jedis连接池的使用
84,
Apache commons-pool对象池原理分析
85,
EverythingAboutJava的更多相关文章
随机推荐
- 有关rip路由协议相关知识以及实例配置【第1部分】
有关rip路由协议相关知识以及实例配置[第一部分] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从 ...
- java properties 对list的支持
经测试,原生的properties 对 list 不支持. 参考样例如下: id=1 id=2 具体代码如下: java.util.Properties prop = new Properties() ...
- 温故而知新——map
map :关联式容器,使用时是以属性值对的方式进行使用,例如:<key,value>.map key值唯一,相同的key值插入时只会保留一个.除此之外,map的特点还包括:1.map底层 ...
- [译]Selenium Python文档:四、元素定位
要定位一个页面中的元素有多中策略和方法.你可以根据实际情况选择其中最为合适的.Selenium为定位页面元素提供了下面的这些方法: find_element_by_id(使用id) find_elem ...
- Angular4.0.0正式版发布
来源于angular4.0.0发布时的公告,译者:niithub 原文发布时间:Thursday, March 23, 2017 翻译时间:2017年3月24日 angular4.0.0正式版现在可以 ...
- MVC学习笔记3 - JsRender
许多发展平台减少代码和简化维护,使用模板和 HTML5 和 JavaScript 也不例外. JsRender 是一个 JavaScript 库使您可以一次定义一个样板文件结构,并使用它来动态地生成 ...
- ubuntu-terminal快捷键
常用快捷键功能:Tab 自动补全 Ctrl+a 光标移动到开始位置 Ctrl+e 光标移动到最末尾 Ctrl+k 删除此处至末尾的所有内容 Ctrl+u 删除此处至开始的所有内容 Ctrl+d 删除当 ...
- Androidstudio2.0.0汉化教程及汉化包。
()Eric为大家带来Androidstudio2.0.0的简单汉化教程,许多小伙伴喜欢使用中文版的AS那么没有中文的AS只能靠自己汉化取得更好的体验. 第一步下载AS2.0.0汉化包,我有链接给大家 ...
- nosql使用感受
最近一个项目尝试了使用ssdb(一个类似于redis的数据结构数据库),主要感受有几点: 优势 nosql的无模式在修改和插入时很方便,不需要预先新建表或者修改表结构来新加字段,只需要代码里面使用就行 ...
- 老李分享:adb发送的指令都有哪些
老李分享:adb发送的指令都有哪些 这两天在poptest上课的时候,我们邀请了业内技术牛人为我们的学员讲解手机自动化方面的知识,每天大家都很踊跃,要学习到晚上11点多才能,有的学员跟我说都累傻了 ...