Java的List如何实现线程安全?

Python011

Java的List如何实现线程安全?,第1张

零基础学习java可按照这份大纲来进行学习

第一阶段:Java专业基础课程

阶段目标:

1. 熟练掌握Java的开发环境与编程核心知识

2. 熟练运用Java面向对象知识进行程序开发

3. 对Java的核心对象和组件有深入理解

4. 熟练应用JavaAPI相关知识

5. 熟练应用JAVA多线程技术

6. 能综合运用所学知识完成一个项目

知识点:

1、基本数据类型,运算符,数组,掌握基本数据类型转换,运算符,流程控制。

2、数组,排序算法,Java常用API,类和对象,了解类与对象,熟悉常用API。

3、面向对象特性,集合框架,熟悉面向对象三大特性,熟练使用集合框架。

4、IO流,多线程。

5、网络协议,线程运用。

第二阶段:JavaWEB核心课程

阶段目标:

1. 熟练掌握数据库和MySQL核心技术

2. 深入理解JDBC与DAO数据库操作

3. 熟练运用JSP及Servlet技术完成网站后台开发

4. 深入理解缓存,连接池,注解,反射,泛型等知识

5. 能够运用所学知识完成自定义框架

知识点:

1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具。

2、深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为Java后台开发打下坚实基础。Web页面元素,布局,CSS样式,盒模型,JavaScript,jQuery。

3、掌握前端开发技术,掌握jQuery。

4、Servlet,EL表达式,会话跟踪技术,过滤器,FreeMarker。

5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B/S架构下的应用开发。

6、泛型,反射,注解。

7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。

8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。

第三阶段:JavaEE框架课程

阶段目标:

1. 熟练运用Linux操作系统常见命令及完成环境部署和Nginx服务器的配置

2. 熟练运用JavaEE三大核心框架:Spring,SpringMVC,MyBatis

3. 熟练运用Maven,并使用SpringBoot进行快速框架搭建

4. 深入理解框架的实现原理,Java底层技术,企业级应用等

5. 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企业项目

知识点:

1、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Struts2概述,hiberante概述。

2、Linux作为一个主流的服务器操作系统,是每一个开发工程师必须掌握的重点技术,并且能够熟练运用。

3、SSH的整合,MyBatis,SpringMVC,Maven的使用。

4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。

5、Shiro,Ztree,项目文档,项目规范,需求分析,原型图设计,数据库设计,工程构建,需求评审,配置管理,BUG修复,项目管理等。

6、独立自主完成一个中小型的企业级综合项目的设计和整体架构的原型和建模。独立自主完成一个大型的企业级综合项目,并具备商业价值

是线程安全的,但是hashtable是全部加锁的。

现在有更好的concurrenthashmap

这个是锁node的。当你读取key为某个值得时候

这个key下的value是被锁的,但是其他的node不会被影响。

这是泛型,保证List传入类型跟ArrayList传入类型一致;例如:List<String>list = new ArrayList<Integer>()

以上代码List指定类型是String,而真正传入的Integer这样编译是不会通过的。

如果List指定了泛型,那么编译就会检测,如果不定义泛型,编译通过,运行不合理值会报错。

泛型(Generic type 或者generics)是对Java语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

用法:

实际上有两种List:一种是基本的ArrayList,其优点在于随机访问元素,另一种是更强大的LinkedList,它并不是为快速随机访问设计的,而是具有一套更通用的方法。次序是List最重要的特点:它保证维护元素特定的顺序。

List为Collection添加了许多方法,使得能够向List中间插入与移除元素(这只推荐LinkedList使用)。一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和移除元素。

以上内容参考:百度百科-java列表