Java面试

第5章 Java程序设计基本概念
5.1 JVM
ClassLoader
1.基本概念
与C、C++程序不同,Java程序并不是一个可执行文件;
独立类文件组成;
这些类文件并非全部装入内存,而是根据程序需要逐渐载入;


ClassLoader包括bootstrap classloader(启动类加载器);
ClassLoader就是在JVM运行时加载Java核心的API,以满足Java程序最基本的需求;
其中包括用户定义的ClassLoader;


两个ClassLoader:
一个是ExtClassLoader,来加载Java的扩展API;/lib/ext中的类;
AppClassLoader,它是用来加载用户机器上的CLASSPATH设置目录中的Class;


没有指定ClassLoader的情况下,自定义的类就由ClassLoader进行加载;


2.加载流程
run--JVM start--run bootstrap classloader;
该ClassLoader加载Java核心API;
最后,AppClassLoader加载CLASSPATH目录下定义的Class;


3.Method
1)loadClass(String name,boolean resolve);


2)defineClass()


3)findSystemClass()


4)resolveClass()


5)findLoadedClass()


6)findClass()


7)getSystemClassLoader()


8)forName()


5.2 i++


5.3 类型转换


5.4 程序结构


5.5 运算符


5.6 异常
throw--Throwable
Error/Exception


分析产生异常的代码,不把大量代码块丢进try


设置多个异常抛出点;


成员
变量
全局变量 
局部变量
final、finally、finalize
1.final
修饰符
成员   值/引用
方法



2.finally
异常处理模型的补充


3.finalize()
在垃圾收集器将对象从内存中清除出去之前必要的清理工作;


5.7 反射(Reflection)
反射是一种能力;
指程序访问、检测和修改它本身的状态或行为的一种能力;
操作本身的能力;


计算机中的反射;
光学中的反射;


自描述与自控制;


第6章 传递与引用
Java不用关心如何操作这个“指针”;


传递的一定是值或引用的副本;


第8章 Java内存管理
Java不要求程序员显示的分配内存和释放内存;
垃圾收集器的技术;
gc();


Java内存管理就是对象的分配和释放问题;
new申请内存;
对象在堆(Heap)


第9章 面向对象
如果说传统的过程式编程语言是以过程为中心、以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动;
过程式:程序=算法+数据;
面向对象:程序=对象+消息;


对象=属性+行为;


类--模板;
对象--实例;
分类;


第13章 设计模式
Singleton模式的主要作用是保证在Java应用程序中,一个类Class只有一个实例存在;


MVC模式
Model是应用对象;
View屏幕上的表示;
Controller定义用户界面对用户输入的响应方式;


13.3 软件工程
先进行;
开放性,依从主流技术标准;
安全性;
与现有系统的兼容性,异种系统之间的互连;
技术的成长性;
应用系统开发工具;


三层次/多层
二层


第14章 操作系统
多用户:容许在同一时间有很多人使用同一部机器,只要使用者都有自己的终端(terminal);


多任务:为了使更多程序可以一同运行,这个特点叫做多任务;


第15章 数据库和SQL语言
第一范式:原子最小,不可再分;
第二范式:非key属性依赖key;
第三范式:非key属性不传递依赖key;


transaction


第16章 计算机网络及分布式系统


第17章 J2EE技术
Spring
(Inverse of Control,IOC)控制反转
(Dependency Injection,DI)依赖注入
控制反转是对组件对象控制权的转移,从程序代码本身转移到了外部容器,通过容器来实现对象组件的装配和管理;
注入类型:接口注入、设置注入、构造子注入;
Sping是IOC的容器;


依赖注入,在运行期由容器将依赖关系注入到组件中,就是在运行期间,由Spring根据配置文件,将其他对象的引用通过组件提供的setter方法进行设定;
Sping是一个DI容器,其设计哲学是提供一种无侵入式的高扩展性框架;


Spring大量引入了Java的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了核心组件BeanFactory,以作为其依赖注入机制的实现基础;


org.Springframework.beans包括了核心组件的实现类,
核心中的核心为BeanWrapper和BeanFactory类;
对于Spring而言,是关键所在;
通过在配置文件中加以设定,就可以在运行期动态的创建对象并设定其属性;


1)提供的是管理业务对象的方法;






17.2 Hibernate
理解为一个中间件;
负责把Java的SQL语句接收并发送到数据库;
数据库返回来的信息由Hibernate接收后直接生成一个对象传给Java;


.cfg.xml文件
.hbm.xml文件


1.cfg.xml
作用,连接数据库;
驱动:driver
数据库url
username
password


<Hibernate-configuration>
<session-factory>
<property name="connection.driver_class">...</property>
<property name="connection.url">...</property>
<property name="connection.username">...</property>
<property name="connection.password">...</property>
<property name="dialect">...</property>


<mapping resource=".hbm.xml">
</session-factory>
<Hibernate-configuration>


2.hbm.xml
<Hibernate-mapping>
<class name="" table="">
<id name="" column="">
<generator class="increment"></generator>
</id>
<property name="name" column="name"></property>
</Hibernate-mapping>


Hibernate缓存机制


1.DataSource
2.Connection pooling
3.transation
4.result


第18章 Java中的Web设计
18.1 JSP
1.forward和redirect


18.2 Servlet
init()
service()
destroy()


XML

DOM与SAX解析XML技术

posted @ 2018-03-17 17:13  DedoChen  阅读(119)  评论(0编辑  收藏  举报