源码

java源码阅读LinkedList

。_饼干妹妹 提交于 2020-03-01 12:17:48
1类签名与注释 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable 双向链表实现了 List 和 Deque 接口。 实现所有可选列表操作,并允许所有元素(包括 null )。 请注意,此实现不同步。 如果多个线程同时访问链接列表,并且至少有一个线程在结构上修改列表,则 必须 在外部进行同步。 (结构修改是添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这通常通过在自然封装列表的对象上进行同步来实现。 如果没有这样的对象存在,列表应该使用 Collections.synchronizedList 方法“包装”。 这最好在创建时完成,以防止意外的不同步访问列表: List list = Collections.synchronizedList(new LinkedList(...)); 这个类的 iterator 和 listIterator 方法返回的迭代器是故障快速的:迭代器创建之后,除了自己的remove和add方法外的任何方法改变了集合的结构,迭代器会抛出 ConcurrentModificationException异常。 注意

【源码阅读】dbutil包中的BeanProcessor类

孤者浪人 提交于 2020-03-01 12:07:45
BeanProcessor通过名字就可以知道,该类是用来处理Bean类(JavaBean)的,它的作用是将数据库中的记录转化为对应的Bean对象。 下面先看一下该类的类图: 该类有三个成员变量:我们重点来看两个Map类型的变量: 1、primitiveDefaults:该变量的主要作用是保存Java基本数据类型的Class与其默认值的对应关系,然后当SQL语句get方法返回NULL值的时候就用从该Map中获取相应的默认值,下面的静态代码块用来初始化该Map: static { primitiveDefaults.put(Integer.TYPE, Integer.valueOf(0)); primitiveDefaults.put(Short.TYPE, Short.valueOf((short) 0)); primitiveDefaults.put(Byte.TYPE, Byte.valueOf((byte) 0)); primitiveDefaults.put(Float.TYPE, Float.valueOf(0f)); primitiveDefaults.put(Double.TYPE, Double.valueOf(0d)); primitiveDefaults.put(Long.TYPE, Long.valueOf(0L)); primitiveDefaults.put

LNMP架构搭建---源码编译MYSQL,PHP,nginx

你。 提交于 2020-03-01 12:04:56
LNMP架构搭建—源码编译MYSQL,PHP,nginx 文章目录 LNMP架构搭建---源码编译MYSQL,PHP,nginx 1.什么是LNMP? 2.LNMP的工作原理 3.MYSQL数据库的源码编译 4.PHP源码编译 5.nginx的源码编译 1.什么是LNMP? LNMP = Linux+Nginx+Mysql+PHP LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx中的PHP是以fastcgi的方式结合Nginx的,可以理解为Nginx代理了PHP的fastcgi。 LNMP和LAMP唯一不同是指提供web服务的是Nginx而不是Apache :在Apache中,PHP是作为一个模块存在的。 而在Nginx中,PHP是作为一个独立服务存在的,这个服务叫做php-fpm. ;Nginx直接处理静态请求,动态请求会转发给php-fpm. 2.LNMP的工作原理 浏览器发送http request请求到服务器(Nginx) 服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序) PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。

Think in Java源码编译与安装

大城市里の小女人 提交于 2020-03-01 08:51:03
Think in Java 源码编译与安装 1:将你的下载的源码解压到c:\TIJ4\code目录中 2:安装JDK se5 最好是 jdk SE5 否则,需要修改源码中所有的build.xml中 equals arg1="1.5" 改成 equals arg1="1.6". 我用的是jdkse6放在:C:\Program Files\Java\jdk1.6.0_29 3:下载并安装ant自动脚本编译工具放到目录C:\Program Files\apache-ant-1.8.4 4:下载需要的库文件:javaw.jar,xom.jar,swt.jar,javassit.jar 我们把它放到c:\TIJ4\libraries\中 现说说具体安装和配置: [1]JDK SE5的下载地址 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase5-419410.html 它的安装很简单,只须把下载的文件解压缩,然后,我们拷贝到C:\Program Files\Java\ 就好了。比如我的是:C:\Program Files\Java\jdk1.6.0_29 [2]ant的下载地址 http://ant.apache.org/bindownload.cgi 下载

ArrayList源码剖析

喜夏-厌秋 提交于 2020-03-01 08:28:56
ArrayList源码剖析 1.源码剖析: public class ArrayList < E > extends AbstractList < E > implements List < E > , RandomAccess , Cloneable , java . io . Serializable { private static final long serialVersionUID = 8683452581122892189 L ; //序列版本号 private static final int DEFAULT_CAPACITY = 10 ; //初始容量为10 private static final Object [ ] EMPTY_ELEMENTDATA = { } ; //Object数组,用来实例化不带容量大小的构造函数 指定ArrayList容量为0时,返回空数组 private transient Object [ ] elementData ; //保存ArrayList中元素的数组 private int size ; //元素个数 ArrayList实际大小 public ArrayList ( int initialCapacity ) { //ArrayList带容量大小的构造函数 super ( ) ; if (

看看Spring源码(二)——bean实例化

故事扮演 提交于 2020-03-01 06:11:59
本文出于我的独立博客: Geeekr 首先来看一段代码,看过上一节的朋友肯定对这段代码并不陌生。这一段代码诠释了Spring加载bean的完整过程,包括读取配置文件,扫描包,加载类,实例化bean,注入bean属性依赖。 public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prepareRefresh(); // Tell the subclass to refresh the internal bean factory. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); // Prepare the bean factory for use in this context. prepareBeanFactory(beanFactory); try { // Allows post-processing of the bean factory in context subclasses. postProcessBeanFactory

源码安装Mysql

痴心易碎 提交于 2020-03-01 05:56:31
ncurses-devel是cmake的依赖包 安装配置工具cmake [root@nginx~]# rpm -q mysql mysql-server mariadb mairadb-server [root@nginx~]# yum -y install ncurses-devel cmake 创建运行用户 [root@nginx~]#useradd -M -s /sbin/nologin mysql 解包,配置,编译,安装 [root@nginx~]# tar xf mysql-5.7.24.tar.gz -C /usr/src/ [root@nginx~]# cd /usr/src/mysql-5.7.24/ [root@nginx mysql-5.7.24]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc&& make && make install -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //数据库程序安装目录 -DDEFAULT_CHARSET=utf8 //指定字符集编码

jsp大文件传输断点续传源码

为君一笑 提交于 2020-03-01 04:42:34
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 public class FileInf { public FileInf(){} public String id = "" ; public String pid = "" ; public String pidRoot = "" ; /** * 表示当前项是否是一个文件夹项。 */ public boolean fdTask = false ; // /// 是否是文件夹中的子文件 /// </summary> public boolean fdChild = false ; /** * 用户ID。与第三方系统整合使用。 */ public int uid =0; /** * 文件在本地电脑中的名称 */ public String nameLoc = "" ; /** * 文件在服务器中的名称。 */ public String nameSvr = "" ; /** * 文件在本地电脑中的完整路径。示例:D:\Soft\QQ2012.exe */ public String pathLoc = ""

一个密码锁加密应用项目源码

早过忘川 提交于 2020-03-01 04:10:15
源码ToolWizAppLock,一个密码锁应用,加密你的应用,照片,视频文件。 在生活中,你有没有担心过手机里的某些应用被别人偷看,比如微信聊天记录、短信、照片? 你是否担心一些重要图片,视频等重要资料被偷窥? 有了密码锁,您只需将不想被别人查看的应用在我这里锁住,设置好密码,就可以高枕无忧了! 您只需将重要的图片,视频等文件在我这里加密,再也不怕被别人窃取你的隐私了! 源码下载: http://code.662p.com/view/11470.html <ignore_js_op> 详细说明: http://android.662p.com/thread-6313-1-1.html 来源: oschina 链接: https://my.oschina.net/u/2479524/blog/514056

CentOS下安装rails,遇到no such file to load -- zlib错误...

a 夏天 提交于 2020-02-29 22:32:52
ubuntu下可以使用apt-get来取得缺失zlib1g-dev。在CentOS下可以编译ruby源码包里自带的zlib解决问题。首先进入到ruby的源码文件夹中 cd ext/zlib ruby ./extconf.rb make sudo make install 可以解决问题 来源: oschina 链接: https://my.oschina.net/u/617354/blog/121628