1、内部匿名类
Aa$Bb, Bb是Aa的内部类,若内部类要建对象:
Aa.Bb cs=new Aa().new Bb();要new两次。
2、最基本的连接sqlserver数据库
public class A1 {
public void ff(String a,String b,String c) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=jjs", "sa", "123");
PreparedStatement pr = con.prepareStatement("insert into txl(bh,xm,dh) values(?,?,?)");
pr.setString(1, a);
pr.setString(2, b);
pr.setString(3, c);
pr.execute();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
3、BIO NIO AIO的区别
BIO与NIO一个比较重要的不同,是我们使用BIO的时候往往会引入多线程,每个连接一个单独的线程;而NIO则是使用单线程或者只使用少量的多线程,每个连接共用一个线程。
BIO是同步阻塞IO,一个连接一个线程。
NIO是同步非阻塞IO,一个请求一个线程。
AIO是异步阻塞IO,一个有效请求一个线程。
可以看下这个网址:https://blog.csdn.net/ty497122758/article/details/78979302
和这个https://www.cnblogs.com/ygj0930/p/6543960.html
4、Map<k,v>保证k不重复的方法
1、在k中重写hashcode()方法和equals方法
2、在k类中实现(implements)Comparable类,并重写compareTo()方法,判断返回值,为0时不能添加到集合中去,非0时可以填加进去。
5、Colections 对集合进行操作
这个类可以对集合进行操作,是静态的,方法也是静态的,可以对集合内元素进行排序,反转排序,也可以给字符串按首字母排序。
6、AOP 和IOC
引入IOC的目的:(1)脱开、降低类之间的耦合;(2)倡导面向接口编程、实施依赖倒换原则; (3)提高系统可插入、可测试、可修改等特性。
控制反转,也称为依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中
什么是AOP?
面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面
1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面
面向切面编程(aop)是对面向对象编程(oop)的补充,
面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。
AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,
是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。
IOC总结
优点:
1通过IOC容器,开发人员不需要关注对象是如何创建的,同时增加新类也非常方便,只需要修改配置文件即可实现对象的热插拔。
1IOC容器可以通过配置文件来确定需要注入的实例化对象,因此非常便于进行单元测试
缺点:
3对象是通过反射机制实例化出来的,因此对系统的性能有一定的影响。
4创建对象的流程变得复杂。
参考网址:https://blog.csdn.net/qq_38006047/article/details/80797386
7、# [ResponseBody 和 @RequestBody 的作用
@Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。
参考网址:https://blog.csdn.net/ff906317011/article/details/78552426
8、【Spring】RequestContextHolder简析
在Web开发中,service层或者某个工具类中需要获取到HttpServletRequest对象还是比较常见的。一种方式是将HttpServletRequest作为方法的参数从controller层一直放下传递,不过这种有点费劲,且做起来不是优雅;还有另一种则是RequestContextHolder,直接在需要用的地方使用如下方式取HttpServletRequest即可,使用代码如下:
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
要理解上面的为何可以这么使用,需要理解两个问题:
- RequestContextHolder为什么能获取到当前的HttpServletRequest
- HttpServletRequest是在什么时候设置到RequestContextHolder
对于第1个问题,熟悉ThreadLocal的人应该很容易看出来这个是ThreadLocal的应用,这个类的原理在上一篇博文(ThreadLocal原理)有讲到,其实很类似上篇博文文末提到的UserContextHolder。
第2个问题应该属于spring-mvc的问题,这个是在spring-mvc执行时设置进去的
参考网址https://www.jianshu.com/p/80165b7743cf