java小知识总结

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();

要理解上面的为何可以这么使用,需要理解两个问题:

  1. RequestContextHolder为什么能获取到当前的HttpServletRequest
  2. HttpServletRequest是在什么时候设置到RequestContextHolder

对于第1个问题,熟悉ThreadLocal的人应该很容易看出来这个是ThreadLocal的应用,这个类的原理在上一篇博文(ThreadLocal原理)有讲到,其实很类似上篇博文文末提到的UserContextHolder。

第2个问题应该属于spring-mvc的问题,这个是在spring-mvc执行时设置进去的
参考网址https://www.jianshu.com/p/80165b7743cf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 面向对象 抽象:关注属性和行为,不关注行为的细节继承:让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可...
    wangxiaoda阅读 2,854评论 0 0
  • 作者:闭关写代码 链接:https://www.nowcoder.com/discuss/3244 来源:牛客网 ...
    MrWang915阅读 2,523评论 0 0
  • https://www.jianshu.com/p/a07d1d4004b0 源问题集合 Java基础 1、Li...
    mualex阅读 8,589评论 3 81
  • 文/ Worktile 邵智康 在企业发展的巨流河里,无论商业环境如何发展与变迁,行业竞争如何残酷而激烈,对于无数...
    西门吹那啥阅读 3,304评论 0 5
  • 六六是一位很接地气的作家,她的每一部作品都能反应一些社会现象,笔下的人物,情绪饱满,心理强烈。《蜗居》是她2007...
    爱在指边流过阅读 4,386评论 0 0

友情链接更多精彩内容