内容发布更新时间 : 2025/2/15 7:25:20星期一 下面是文章的全部内容请认真阅读。
ConcurrentHashMap使用segment来分段和管理锁,segment继承自ReentrantLock,因此ConcurrentHashMap使用ReentrantLock来保证线程安全。
hashMap在单线程中使用大大提高效率,在多线程的情况下使用hashTable来确保安全。hashTable中使用synchronized关键字来实现安全机制,但是synchronized是对整张hash表进行锁定即让线程独享整张hash表,在安全同时造成了浪费。concurrentHashMap采用分段加锁的机制来确保安全
D:StringBuffer是线程安全的(同步),StringBuilder是不保证线程,(每次操作一次就是安全的)
E:Properties类是Hashtable的一个子类,hashTable是线程安全的,所以properotes是线程安全的
Arrays.asList方法返回的 这个List的实现类是java.util.Arrays.ArrayList这个类(而不是java.util.ArrayList)。
JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程
依赖注入和控制反转是同一概念:
依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。
依赖注入的理念之一就是尽量减少各组件之间的相互依赖和制约。
方法的重写(override)两同两小一大原则: 方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。
數組本身就是一個對象
java中内存区域分为4类:
栈内存空间,存放引用的堆内存空间的地址 堆内存空间,存放new出来的对象
全局数据区,保存static类型属性和全局变量
全局代码区,保存所有方法的定义
Ant和Maven都是基于Java的构建(build)工具。理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷。Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。 Ant特点 ??
没有一个约定的目录结构 ??必须明确让ant做什么,什么时候做,然后编译,打包 ??没有生命周期,必须定义目标及其实现的任务序列 ??没有集成依赖管理 Maven特点 ??拥有约定,知道你的代码在哪里,放到哪里去 ??拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 ??只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情 ??拥有依赖管理,仓库管理
idea maven spring+springmvc+mybatis 出现的错误
1、出现空指针异常 可能是在获取字节流时 类没有用getLoader方法获取 字节流 xml文件表的字段名和类中的属性名没做对应
2spring注解只有在启动服务器时才能使用
3 idea建的mavenweb.xml缺少头文件声明 无法使用EL表达式 需加上
4目前404问题还没解决
5 mybatis 出现null的问题
6 数据库要加异常处理 弄不好按钮没反应 /**
* 显示付款账号 */
var paramJson1={
'cstno':'PB10001017',
'accno':'62143928000382821',
'currentBusinessCode':'10200100', windowId:currentMVC.windowId }; $.ajax({
url:'findkidid.do', type:'post', data:paramJson1, dataType:'json',
async:false,
processResponse:function(data){ var alist=data.kidaccList;
var opString='