简单总结一下我认为身为一个程序员关于集合,线程,ssm小框架脱口而出的基本概念
集合:
Iterable --- collection --- list --- linkedlist 链表实现 查改慢,增删快 线程不安全
--- arraylist 数组实现 查改快,增删慢 线程不安全
--- Vector 数组实现 线程安全
----set --- hashset 无序不重复 去重原理:重写hashcode和equals方法
---- treeset 有序不重复 实现comparable,comparator接口
map--- hashMap 都是键值对 线程不安全
--- hashtable 线程安全
反射:
--- arraylist 数组实现 查改快,增删慢 线程不安全
--- Vector 数组实现 线程安全
----set --- hashset 无序不重复 去重原理:重写hashcode和equals方法
---- treeset 有序不重复 实现comparable,comparator接口
map--- hashMap 都是键值对 线程不安全
--- hashtable 线程安全
反射:
反射基于类模版
获取类模版有3种
1,类名.class
2,对象名.getClass()
3,Class.forname("全类名")
获取类模版有3种
1,类名.class
2,对象名.getClass()
3,Class.forname("全类名")
如何用反射的方法实例化一个类?
Class c = 。。。。。;
c.newInstance(); 实例化一个类。
Constructory c = c.getDecalaredConstructor(aa,a,a)
c.newInstance() 通过构造函数实例化一个类。
Class c = 。。。。。;
c.newInstance(); 实例化一个类。
Constructory c = c.getDecalaredConstructor(aa,a,a)
c.newInstance() 通过构造函数实例化一个类。
Method m = c.getDeclaredMethod(xx,xx,xx)
m.invoke(); 使用反射调用一个方法。
m.invoke(); 使用反射调用一个方法。
//使用反射的方法获得类中的方法 给方法赋值取值。
Field f = c.getDecalaredField(x,x,x)
f.set
f.get
线程
实现线程有两种方式
1,继承Thread
2,实现runable接口
1,继承Thread
2,实现runable接口
启动线程的方法
1,run 顺序执行
2,start 并行执行
1,run 顺序执行
2,start 并行执行
注意:不存在真正的并行执行。
sleep() 线程休眠 Thread类下的静态方法 不释放锁 一旦休眠进入阻塞状态
wait() 线程等待 Object类下的静态方法 释放锁 线程等待后进入就绪状态 只能放在有synchinoized修饰符下的方法或块下使用。需要notify方法来通知执行。
wait() 线程等待 Object类下的静态方法 释放锁 线程等待后进入就绪状态 只能放在有synchinoized修饰符下的方法或块下使用。需要notify方法来通知执行。
json
json是一种数据传输格式。
json是一种数据传输格式。
json的类型:
model
model
{"name":"aaa","age",18}
list
[{"name":"aaa","age",18},{"name":"aaa","age",18}]
map
{"list1":[{"name":"aaa","age",18},{"name":"aaa","age",18}],"list2":[{"name":"aaa","age",18},{"name":"aaa","age",18}]}
mybatis介绍
是一个持久层的orm框架
orm是什么? object relational mapping 对象关系映射。
特点:轻量,小巧,简单,易学。
是一个持久层的orm框架
orm是什么? object relational mapping 对象关系映射。
特点:轻量,小巧,简单,易学。
mybaits 有哪些配置文件?
1,核心配置文件
提问:mybaits-config.xml 和 application.xml 哪个是mybaits的核心配置文件?
回答:哪个是mybaits的核心配置文件不由配置文件名称决定。由文件里的内容决定
核心配置文件里的元素都有哪些?
<configuration> 负责连接mysql
提问:mybaits-config.xml 和 application.xml 哪个是mybaits的核心配置文件?
回答:哪个是mybaits的核心配置文件不由配置文件名称决定。由文件里的内容决定
核心配置文件里的元素都有哪些?
<configuration> 负责连接mysql
properties 有三中用法
1,properties 用resource 获取属性文件
2,properties 的子元素 property key value 的方式定义数据库连接信息。
3,即有resource,又有 property 时有优先级,resource的优先级高于property
1,properties 用resource 获取属性文件
2,properties 的子元素 property key value 的方式定义数据库连接信息。
3,即有resource,又有 property 时有优先级,resource的优先级高于property
settings 设置全局配置 log4j 自动映射aotumappin...
typealiaes 设别名
<typealias 指定一个类,并为这个类设置别名。 alias用来设置别名 type 指定类的全类名。
package 直接指定报名 该包名下的类,的类名就是别名
<typealias 指定一个类,并为这个类设置别名。 alias用来设置别名 type 指定类的全类名。
package 直接指定报名 该包名下的类,的类名就是别名
environments
transactionManager
datasource
environment
mappers 映射器
注意事项:核心配置文件中的元素顺序要按顺序,否则会报错。
2,sql映射文件
有哪些元素
mapper 有 namespace属性 指定dao接口的全类名。
CRUD insert delete select update
resultMap 如何处理 一对一,一对多。
一对一:association 支持内部嵌套,意思就是association中可以有association 或者collection
一对多:collection 支持内部嵌套
一对多:collection 支持内部嵌套
如何复用association和collection result?
将association和collection中的resullt 写到一个新的resultMap中 id=xxx 。用association和collection中的resultMap属性=xxx
spring
介绍:是一个轻量级的框架。是一个容器,可以整合别的框架。
spring核心概念:
IoC/DI 控制反正/依赖注入
什么是控制反转:将组建对象的控制器从代码本身转移到外部容器。
依赖注入:将类的创建和使用分开。
什么是控制反转:将组建对象的控制器从代码本身转移到外部容器。
依赖注入:将类的创建和使用分开。
IoC的设计模式:简单工厂。
Aop:面向切面编程、面向方面编程。
特点:完全解耦。设计模式动态代理,
动态代理的两种方式,jdk,cglib
jdk方式的动态代理:要求有接口
cglib,不需要接口,但是需要jar包(如果用的spring,spring集成了cglib的jar包)
特点:完全解耦。设计模式动态代理,
动态代理的两种方式,jdk,cglib
jdk方式的动态代理:要求有接口
cglib,不需要接口,但是需要jar包(如果用的spring,spring集成了cglib的jar包)
aop,要有
切面,
切点
前置,后置,环绕,异常增强。
使用aop有2种方式,1种是配置文件的方式,另一种是注解方式。======(注解方式一会讲)
ioc也有两种使用方式 1,注解,2,配置文件。
springmvc
什么是springmvc?
基于spring的框架
model2的框架。
处理请求和页面的框架。
mvc分别是什么意思?
model view Controller
模型试图控制器
model view Controller
模型试图控制器
springmvc配置文件中的常用元素有哪些
1,包扫描 context:compont-scan
2,注解驱动 mvc:annotation-driven
3,静态资源管理器 mvc:resource
4,试图解析器 resolveViewxxx 定义视图的前后缀
1,包扫描 context:compont-scan
2,注解驱动 mvc:annotation-driven
3,静态资源管理器 mvc:resource
4,试图解析器 resolveViewxxx 定义视图的前后缀
使用@AspectJ注解实现aop
步骤,
1,在spring配置文件中添加context命名空间和约束。
xmlns:context="http://www.springframework.org/schema/context"
1,在spring配置文件中添加context命名空间和约束。
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/context/spring-context.xsd
2,<!-- 包扫描 -->
3,<!-- 开启aop注解驱动 -->
<aop:aspectj-autoproxy />
注意:aspectj需要jdk5.0以上版本才能使用
<aop:aspectj-autoproxy />
注意:aspectj需要jdk5.0以上版本才能使用