异常
NullpointException(空指针异常)
ClassNotFoundException(类找不到异常)
ClassCastException(类型转换异常)
IllegalArgumentException(非法参数异常)
ArithmeticException(算术异常)
NumberFormatException(数据格式异常)
IndexOutOfBoundsException(数组下标越界异常)
IllegalStateException(非法语句异常)
lastIndexOf
-1 找不到
Colloection
set是集合,所以不允许有重复值,非线性结构;list线性的;
to…
Array.toString(XXX) Object.toString(XXX) XXX.toString()
JAVA中Object类下的toString方法和Arrays类下的toString方法是什么关系?
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at
标记符“@”和此对象哈希码的无符号十六进制表示组成。
Arrays的toString方法是返回指定数组内容的字符串表示形式。
toUpperCase() U(大写) toLowerCase() L(小写)
Json
1.JSONObject
json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}
2.JSONArray
json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的
3.使用示例
JSONObject Json = new JSONObject();
JSONArray JsonArray = new JSONArray();
Json.getJSONObject();(转化)
4.使用区别
Json.put(“key”, “value”);//JSONObject对象中添加键值对
JsonArray.add(Json);//将JSONObject对象添加到Json数组中Map String,String> strmap = new JSONObject()
json就是一种特殊形式的map
Map
Map.Entry <K,V>
Hashtable <K,V>
- 键值对
- XX.getkey()
- XX.put(“”,);
序列化
将一个对象的状态(各个属性量)保存起来
将该类的对象的值存储起来,类似session、cookie、数据库的方法。
。。。
线程Thread接口
start run sleep等方法
线程实现方式: 第一种,继承该接口,可以run方法进行重写 第二种,实现Runnable接口,然后实现其run方法。
测试该线程,生成线程对象,接着调用start方法
synchronized
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
示例:
定义线程类,当生成多个线程对象访问同一个线程类中的属性,需要同步修饰此动作方法。
hashmap
是基于hashtable的(C++里面应该是这样吧),hashtable底层是数组加链表
解决冲突
2个不一样的key却产生一样的value?
How to?
Spring
1,schema命名空间,声明使用xmlns=”“或者xmlns别名=”” 方式
<标签名> <别名:标签名
2,组件扫描
context(在命名空间中有) + 基包(组件扫描对象)
3,注解开发
使用注解取代xml文件、
@`Component`取代<bean class ="">
@Component("id") 取代<bean class id>
web开发同理。。
@Repository:dao层 @Service:service层@Controller:web层
4,在xml(Spring容器)中配置
<!-- 确定使用注解 -->
<context:annotation-config></context:annotation-config>
<!-- 自动扫描指定的包 -->
<context:component-scan base-package="cn.itcast.h_annotation.b_3_0"></context:component-scan>
5.Spring体系结构
容器:BeanFactory为IOC容器,ApplicationContext为应用上下文,Core容器,EL表达式
数据:JDBC为数据库开发,ORM(整合Hibernate等框架) OXM Transaction(tx )
web:Structs(框架) AOP+IOC
6.BeanFactory与ApplicationContext的区别
BeanFactory 采取延迟加载,第一次getBean时才会初始化Bean
ApplicationContext是对BeanFactory扩展,是它的子接口,提供了更多功能
7.控制反转IOC:将配置文件作为一个容器,通过以下三种方式获取
类路径获得配置文件
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("cn/itcast/a/hello/beans.xml");
文件系统路径获得配置文件
ApplicationContext applicationContext =
new FileSystemXmlApplicationContext("F:\\workspaces\\spring\\day01\\src\\cn\\itcast\\a\\hello\\beans.xml");
使用BeanFactory(了解)
BeanFactory beanFactory =
new XmlBeanFactory(new FileSystemResource("F:\\workspaces\\spring\\day01\\src\\cn\\itcast\\a\\hello\\beans.xml"));
8.在该容器或者说配置文件中需要进行bean实例化
<!--2 第一种方式 默认构造 -->
<bean id="demo1User" class="cn.itcast.b_xmlbean.demo1.User"></bean>
相当于:User user = new User(); //直接创建实例
<!-- 第二种方式 静态工厂方法 , 没有工厂的实例对象-->
<bean id="demo2User" class="cn.itcast.b_xmlbean.demo2.Demo2BeanFactory" factory-method="getDemo2Bean"></bean>
相当于: User user = BeanFatory.getUserBean(); //通过工厂的静态方法获得需要的内容
<!-- 第三种方式 实例工厂方法
* 先实例工厂
* 通过实例工厂执行具体的方法
-->
<bean id="demo3BeanFactory" class="cn.itcast.b_xmlbean.demo3.Demo3BeanFactory"></bean>
<bean id="demo3User" factory-bean="demo3BeanFactory" factory-method="getDemo2Bean"></bean>
相当于:
BeanFactory factory = new BeanFactory(); //先创建工厂
User user = factory.getUserBean(); //在通过工厂的实例对象,执行非静态方法获得具体内容
这样子,说明创建对象的控制权交由Spring框架管理,简单说,就是创建对象控制权被反转到了Spring框架,也就是IOC思想。
9.依赖注入(建立在实例化对象的基础上,对该对象注入属性值)
属性注入
<bean id="helloService" class="cn.itcast.a.hello.HelloService">
<!—通过spring容器,给HelloService类的info属性注入“..”-->
<property name="info" value=".."></property>
</bean>
构造函数注入
<constructor-arg >
*name
*index
*ref
Spring容器两属性
- spring容器中bean元素id和name属性的区别
<bean id="helloService" class="cn.itcast.a.hello.HelloService">
<bean name="# boy " class="cn.itcast.ioc.Boy"/>
因为name属性可以相同,所以后出现Bean会覆盖之前出现的同名的Bean,总结:项目开发的时候,强烈要求用id,因为id可以表示惟一引用。
-scope作用域
* singleton 单例,只创建一个实例。默认值
* prototype 多例,每一次都创建实例
* request,request范围,request.setAttribute
* session,session范围,session.setAttribute
scope="prototype" 此时可以创建多个实例
Person p1 = (Person) applicationContext.getBean("person");
Person p2 = (Person) applicationContext.getBean("person");
MVC
springmvc结合github
https://github.com/a12590
Model—View—Controller,模型—视图—控制器模式。
在MVC中,客户端所请求的URL是先被映射到相应的Controller中,然后由Controller来处理业务逻辑,它是从Model中取数据(Model可能会去访问数据库),然后再由Controller根据业务逻辑,选择合适的View呈现给客户端。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。
Controller层是Model与View之间沟通的桥梁,可以分派用户的请求并选择恰当的视图以用于显示,同时可以解释用户的输入并映射为模型层可执行的操作。