Java要点日常记录(持续更新中...)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ip_JL/article/details/81835542

springmvc的多例问题:

    springmvc默认是单例模式, 不会每次都new, 效率更高.

integer和int类型的区别:

    ①integer默认值为null, int默认值为0

    ②integer是包装类, 有多种跟其他类型值的转换方法, 比如:toString

    ③在项目中要接收一个数据, 且需要判断该数据是否用户有输入值的, 那么此时

    在用户没有输入值的情况下, integer展示的是null(表明用户没有输入该值), 而int展示的是0(无法判断用户是否有输入该值)

对springIOC/DI的理解

    IOC(Inversion of Control, 控制反转) /DI(Dependency Injection, 依赖注入)

    注意以下几点:

    * 谁依赖于谁?:应用程序依赖于IOC容器;

    * 为什么需要依赖?:应用程序需要IOC容器来提供对象需要的外部资源;

    * 谁注入谁?:IOC容器注入应用程序某个对象,应用程序依赖的对象;

    * 注入了什么?:注入某个对象所需要的外部资源(包括对象、资源、常量数据)

    IOC和DI之间的关系:

    它们是同一个概念的不同角度描述,由于”控制反转”概念比较含糊, 相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IOC容器配置依赖对象”。

MyBatis中的映射问题:

    一对多的ResultMap使用collection

    多对一的ResultMap使用association

集合之间的区别:

    Collection 是对象集合, 有两个子接口List和Set

    List: 可以通过下标来取得值,值可以重复, List是有序的(按照插入的顺序)

    ArrayList实现类(线程不安全): 由数组实现的 List ,并且实现了可变大小的数组。它允许所有元素,包括 null 元素.

    LinkedList实现类(线程不安全): 允许null元素, 有其他额外的方法, 如addFirst(), addLast(), getFirst(), getLast(), removeFirst(), removeLast(), insertFirst(), insertLast()

    Vector是线程安全的.

    Set: 只能通过游标进行取值, 值不能重复, 最多允许一个null元素, Set是无序的(但是会按照内部排序)

    HashSet实现类(线程不安全): 存入 HashSet 的对象必须定义 hashCode().

    Map: 键值对集合 

    HashMap(线程不安全),可以存储 null值和null键

Hibernate的”悲观锁””乐观锁”机制:

    悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。

    乐观锁大多是基于数据版本(Version)记录机制实现。即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个“version”字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据.

释义:

    Nginx是一个高性能HTTP反向代理服务器

    WebService是一个平台独立, 低耦合, 自包含的基于可编程的web的应用程序

    jsp中”request.getContextPath()”和”${pageContext.request.contextPath}”

<%

    String path = request.getContextPath();//等于${pageContext.request.contextPath}

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<%=basePath%>

上传文件时注意:

  1. 依赖表单
  2. 表单的请求方式为post
  3. 表单中必须要有file类型的input
  4. 表单的enctype=”multipart/form-data”

struts2中ognl对静态变量和静态方法的调用:

    如果是对静态方法的调用, 则必须在struts的配置文件中做相应的配置: 调用的方式为@类的全路径@[静态变量或静态方法]

    开启ognl对静态方法的调用:

    <constant name=”struts.ognl.allowStaticMethodAccess” value=”true”/>

    对静态变量的调用可以直接调用:

    <s:property value="@java.lang.Integer@MAX_VALUE"/>

    <s:property value=”@java.lang.Math@abs(-100)”/>

WebService生成客户端代码的命令:

    wsdl2java -d . -p [包名].stub [wsdl的地址]

向mysql中添加数据出现中文乱码问题:

    

(待续...)

猜你喜欢

转载自blog.csdn.net/ip_JL/article/details/81835542