一, java基本:
Java:
JAVA 基础知识
缓存技术(刷新机制)
多线程(并发处理): ThreadPool; thread local;
网络编程(通信)NIO
事务处理(分布式处理机制)
并发处理机制
接口与抽线类
JRE 优化
JVM: classloader, classreflect, 垃圾回收;
JMS: java 消息服务;分布式应用程序中,松耦合的分布式通信;模式:队列(一对一),主题(多对多, 发布者/订阅者); 同步(RMI只能同步)与异步; 类似于JDBC,与厂商无关的API; 消息(JMS中的一种类型对象: 报头 + 消息主题);
GUI: AWT(大多线程安全, 与平台有关,组件自动销毁); Swing(纯java写的 JFC的一部分, 以AWT为基础,支持自动销毁,线程不安全); SWT(是一个低级的GUI工具包, SWT不支持组件自动销毁,线程不安全;Jface不是java技术的标准)
Servlet 线程安全
函数被重写原理
首先弄明白JAVA中的四个特性:组合、继承、重载、重写。组合:一个类引用另一个类,而实际运行中,继承其实就是隐式的组合,也就是在子类中保存一个实例对象super,并指向父类。 所以,函数被重写的原理就是:在执行中,如需调用某方法,先在子类中找,如果没找到,则会去在父类中找,如果找到了,也就是重载了。
集合类的分类
collection(list<arrayList\linkendList\vector>set<>) map(hashMap\hashTable\weakHashTable)
set list都实现collection 三者都为接口 不可实例化
HASH的原理: hash其实就是以空间换时间 将至转成HASH值 根据数组长度取余 将余数作为该数据数组下标 如果被占用 则重新HASH+1 数组是线性结构中定位最快的
线程
线程的不同实现: 继承thread或者实现runnable
THREAD和RUNNABLE的区别和关系
thread为继承类 runnable为接口
Thread运行在父类的run方法中,Runnable运行在实现Runnable接口的子类对象run方法中。
runnable可以打破一个类只能继承一个父类的局限性且适合资源共享
thread也是实现runnable
Reflection如何使用,在什么情况下用
反射是JAVA的特性之一,能够通过getClass 获取到某一个Class对象 ,并查看该Class的基本情况;Spring 利用IOC也是反射的实现; Hibernate不就是用的反射吗 利用反射可以改变类的属性!
Java 死锁,如何解决
JAVA中死锁 这玩意儿一般原因都很复杂的 根本没有万金油式的解决方案好吗 我们能做的只能避免 慎用synchronize 多线程是尽量按顺序执行
架构
UML: OOA/OOD;
设计模式: Gof
JEE:
Hadhop: Apache 开发的分布式系统基础架构; HDFS(Hadhoop Distributed File System); MapReduce(海量数据提供计算)。
MVC:
JSP(V)+ servlet(C) + DAO(M)
JSP(V)+ struts(V) + Spring(C) + Hibernate(M)
JSP(V) + servlet(C) + Javabean(M)
SSH: struts, spring, Hibernate
Spring: Aop面向切面; IOC控制反转;即时容器也是框架;轻量级的开源框架; 不仅负责管理bean的生命周期(容器的功能), 也负责某些基础设置的搭建(国际化, 异常处理等); struts 2 与 Hibernate框架可以放到此容器中;
Struts: struts 2; web应用的MVC部分;
Hibernate: ORM; 关系映射; 数据持久层的部分;
Javascript:
Ajax:Asynochronous javascript and xml
XHR: 同步/异步 XMLHttpRequest
JQuery
others:
client程序: Applet,GUI(Swing, AWT, SWT), javabean
java ORM: Hibernate/iBates, Toplink
DB: MySQL, Oracle, SQLServer
网页架构: JSF, Struts, webwork
中间件技术: JavaEE, CORBA;
XML API: JAXP(java API for XML); DOM4j, JDOM;
Java 构建 webservice: JAX-RPC, SAAJ
轻量级应用框架: Spring,
J2EE: JNDI, JMS, JTA/JTS, JMX, javaMail
EJB: stateless/stateful session Bean; Entity Bean; MDB;
J2EE应用服务器: Weblogic, JBoss,
API: log4j, JGroups, JCache
代码生成工具: XDoclet
单元测试: JUnit/JNunit,
生成部署工具: ANT, MAVEN;
二, JAVA & C++
1, 内存管理: java简单, 比 c++易用, java 有GC; c++ 更灵活,高效;
2, 多线程: java方法简单, 锁定粗粒度(文件,或者类); c++复杂; java语言级别支持, c++11 才语言级别支持;
3, 网络编程: java 更方便,快捷;
4, java 无头文件, 无类外全局变量;
5, java不支持宏, 而是使用final定义类常量;
6, java每种结果固定长度, int 32 位, long 64 位;
7, java中午类型转换, 运行时进行 类型相容性检查;
8, java 无多重继承, 但可以继承多个接口;
9, java 无结构和联合; java 无运算符重载, 有方法重载;
10, java 无预处理功能, 但引入了import关键字;
11, java无单独函数封装的哦类中;
12, java try {..} catch() { ...} finally {...}
13, java中无默认参数一说
14, java 不支持析构函数, 增加了finalize() 函数, 做析构的事情;
15, java 不支持typedef, 不支持goto, 无delete; java 只支持应用传递;
16, java 有包的概念, package 代替c++里面的命名空间;
17, java 增加 >>> 实现无符号的右移;
18, java 内置string, 语言级支持;
19, java无作用域 :: 运算符;
20, java中所有的主类型, 只能用堆上的new创建
21, java不必提前声明方法;
22, java 对基本类型的数据成员初始化为null 或 0;
23, java 但根制, 只有一个根object
24, java 无模板 或 参数化 类型 的其他形式;
25, java 没有显示规定, 默认是 friendly, 包内的类可以使用/访问;
26, java 不存在inline 方法;
27, java提供interface 关键字, implements 关键字;
28, java提供对注释文档的 内建支持;