FastDFS分布式文件系统

Ubuntu下FastDFS分布式文件系统配置与部署

白宁超

2017年4月15日09:11:52

摘要: FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合中小文件(建议范围:4KB < file_size <500MB),对以文件为载体的在线服务,如相册网站、视频网站等。本文通过两次单机环境配置均没有错误,第1-4章节主要是对FastDFS背景发展原理及linux基本介绍,如果读者只是安装分布式文件系统,只是想简单关注其原理,建议阅读第二节与第五节。如果读者仅仅就是安装为目的建议直接阅读弟五节5节。本人邮箱:datathinks@qq.com,主页:http://www.cnblogs.com/baiboy/(本文原创/整理,转载请标注原文出处:Ubuntu下FastDFS分布式文件系统配置与部署 )

相关文章

  1. 【FastDFS分布式文件系统】 Ubuntu下FastDFS分布式文件系统配置与部署
  2. 【Oracle RAC集群系统】 OracleRAC集群搭建系列文章
  3. 【MySql数据库集群搭建】   真机环境下MySQL-Cluster搭建文档
  4. 【Hadoop集群搭建】Hadoop集群的配置系列文章

1 分布式文件系统介绍


分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System。一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

特点:在一个分享的磁盘文件系统中,所有节点对数据存储区块都有相同的访问权,在这样的系统中,访问权限就必须由客户端程序来控制。分布式文件系统可能包含的功能有:透通的数据复制与容错。

分布式文件系统是被设计用在局域网。而分布式数据存储,则是泛指应用分布式运算技术的文件和数据库等提供数据存储服务的系统。

决定因素:数据的存储方式、数据的读取速率、数据的安全机制。

发展历史:大致分为三个发展阶段,网络文件系统(1980s)、共享SAN文件系统(1990s)、面向对象的并行文件系统(2000s)

概述:FastDFS是一个开源的轻量级分布式文件系统,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合中小文件(建议范围:4KB < file_size <500MB),对以文件为载体的在线服务,如相册网站、视频网站等。

2 系统架构介绍


FastDFS由跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)构成。

跟踪服务器Tracker Server

主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。tracker根据storage的心跳信息,建立group==>[storage serverlist]的映射表。

Tracker需要管理的元信息很少,会全部存储在内存中;另外tracker上的元信息都是由storage汇报的信息生成的,本身不需要持久化任何数据,这样使得tracker非常容易扩展,直接增加tracker机器即可扩展为tracker cluster来服务,cluster里每个tracker之间是完全对等的,所有的tracker都接受stroage的心跳信息,生成元数据信息来提供读写服务。

存储服务器Storage Server

主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。以group为单位组织存储能方便的进行应用隔离、负载均衡、副本数定制(group内storage server数量即为该group的副本数),比如将不同应用数据存到不同的group就能隔离应用数据,同时还可根据应用的访问特性来将应用分配到不同的group来做负载均衡;缺点是group的容量受单机存储容量的限制,同时当group内有机器坏掉时,数据恢复只能依赖group内地其他机器,使得恢复时间会很长。

group内每个storage的存储依赖于本地文件系统,storage可配置多个数据存储目录,比如有10块磁盘,分别挂载在/data/disk1-/data/disk10,则可将这10个目录都配置为storage的数据存储目录。storage接受到写文件请求时,会根据配置好的规则选择其中一个存储目录来存储文件。为了避免单个目录下的文件数太多,在storage第一次启动时,会在每个数据存储目录里创建2级子目录,每级256个,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据作为本地文件存储到该目录中。

客户端Client

主要是上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。每个客户端服务器都需要安装Nginx

基本架构如下图所示。

FastDFS的存储策略

为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

FastDFS的上传过程

FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用。

我们知道Storage Server会定期的向Tracker Server发送自己的存储信息。当Tracker Server Cluster中的Tracker Server不止一个时,各个Tracker之间的关系是对等的,所以客户端上传时可以选择任意一个Tracker。

当Tracker收到客户端上传文件的请求时,会为该文件分配一个可以存储文件的group,当选定了group后就要决定给客户端分配group中的哪一个storage server。当分配好storage server后,客户端向storage发送写文件请求,storage将会为文件分配一个数据存储目录。然后为文件分配一个fileid,最后根据以上的信息生成文件名存储文件。文件名的格式如下:

FastDFS的文件同步

写文件时,客户端将文件写至group内一个storage server即认为写文件成功,storage server写完文件后,会由后台线程将文件同步至同group内其他的storage server。

每个storage写文件后,同时会写一份binlog,binlog里不包含文件数据,只包含文件名等元信息,这份binlog用于后台同步,storage会记录向group内其他storage同步的进度,以便重启后能接上次的进度继续同步;进度以时间戳的方式进行记录,所以最好能保证集群内所有server的时钟保持同步。

storage的同步进度会作为元数据的一部分汇报到tracker上,tracke在选择读storage的时候会以同步进度作为参考。

FastDFS的文件下载

客户端uploadfile成功后,会拿到一个storage生成的文件名,接下来客户端根据这个文件名即可访问到该文件。

跟upload file一样,在downloadfile时客户端可以选择任意tracker server。tracker发送download请求给某个tracker,必须带上文件名信息,tracke从文件名中解析出文件的group、大小、创建时间等信息,然后为该请求选择一个storage用来服务读请求。

3 FastDFS性能方案

4 Linux基本命令操作


系统的基本操作

Ctrl+Alt+shift+Fn 切换终端

ls –l 查看

su - username 切换登录

Reboot 重启

pwd 当前路径

shutdown -r now 关机

whereis filename 文件路径

rm –rf 删除

touch 文件名 创建文件

cp path1 path2 复制文件

mkdir 创建目录

mv 移动改名

Vi环境

vi filename 打开文件

i 插入

Esc 退出

dd 删除行

x Esc下删除

wq 保存

a 插入光标后面

o 插入下一行

hjkl 左下上右

Ctrl+b 向后翻页

Ctrl+f 向前翻页

/ Esc下查找

r 替换光标处文字

u 撤销

压缩与解压

gzip 压缩gz文件

unzip 解压zip

tar -czvf file1 file2 压缩

tar -zxvf file 解压.tar.gz

linux系统修改编码

#vi /etc/sysconfig/i18n 将原内容

1
2
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

修改为

1
2
3
4
5
6
7
LANG="zh_CN.GB18030"
 
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
 
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
 
SYSFONT="lat0-sun16"

Ubuntu初始化root密码:

1
sudo passwd

Ubuntu配置VmwareTools工具:先下载然后找到文件拷贝桌面并解压,随后找到文件一路安装。

5 安装VirtualBox虚拟机并配置Ubuntu


6 Ubuntu环境下安装并配置FastDFS


虚拟机

Oracle VM VirtualBox

操作系统

Ubuntu16.04

Fastdfs必备软件(本文软件下载均采用wget方式)

fastdfs-5.05 、 fastdfs-nginx-module-v1.16 、 libfastcommon-v1.0.7

Nginx

nginx-1.10.1

Fastdfs主页

https://github.com/happyfish100/fastdfs

联网模式

NAT自动转换模式

IP地址

自动生成,ifconfig查看,本文是10.0.2.15

6.1 基本操作与配置

切换到root角色操作:sudo passwd #修改root权限密码

创建必要文件夹

1
2
3
4
5
6
mkdir /software #下载tar.zp软件包并安装
mkdir /software/testfile #上载文件测试文件夹
mkdir /data #fastdfs根文件
mkdir /data/fastdfs/track #tracker文件配置路径
mkdir /data/fastdfs/storage #storage配置路径
mkdir /data/fastdfs/cli    ntlog #client配置路径

6.2 安装libfastcommon与FastDFS

(1) 下载安装libfastcommon

1
2
cd /software
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz

解压 libfastcommon:

tar -zxvf V1.0.7.tar.gz

进入libfastcommon-1.0.7里面,进行编译和安装:

1
2
3
cd libfastcommon-1.0.7
./make.sh
./make.sh install

(2) 下载安装 FastDFS,这里也是通过wget下载。

1
2
cd /software
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz

1
2
3
4
tar -zxvf V5.05.tar.gz
cd fastdfs-5.05
./make.sh
./make.sh install

6.3 配置Tracker、Storage、Clent、HTTP服务

(1) 配置Tracker服务

1.6.2操作成功后,进入/etc/fdfs目录。会看到三个.sample后缀的文件,均是作者给我们的示例文件,我们需要将其中的tracker.conf.sample文件改为tracker.conf配置文件并修改它。

1
2
3
4
cd /etc/fdfs
ls
cp tracker.conf.sample tracker.conf # 配置跟踪文件
vi tracker.conf # 进入conf文件

进入conf文件后完成以下参数的修改:

# the base path to store data and log files

base_path=/data/fastdfs/track # 修改跟踪路径

# HTTP port on this tracker server

http.server_port=80 # 修改端口号

完成以上操作之后即配置好tracker服务,采用以下方式启动服务,查看监听:

1
2
3
export LD_LIBRARY_PATH=/usr/lib64/
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
netstat -unltp|grep fdfs #查看服务

(2) 配置Storage服务

本文采用单机器测试,你把 Storage 服务放在多台服务器也是可以的,它有 Group(组)的概念,同一组内服务器互备同步。

1
2
3
cd /etc/fdfs
cp storage.conf.sample storage.conf # 修改存储路径
vi storage.conf # 修改存储文件

进入conf文件后完成以下参数的修改:

group_name=group1 # 修改组名

# the base path to store data and log files

base_path=/data/fastdfs/storage # 修改存储路径

# store_path#, based 0, if store_path0 not exists, it's value is base_path

# the paths must be exist

store_path0=/data/fastdfs/storage #这里可以设置多个存储服务器

#store_path1=/home/yuqing/fastdfs2

# tracker_server can ocur more than once, and tracker_server format is

# "host:port", host can be hostname or ip address

tracker_server=10.0.2.15:22122 # 改为本地ip,查看本地ip:ifconfig

http.server_port=8888 # 设置端口号,如果没有冲突尽量默认

完成以上操作之后即配置好storage服务,采用以下方式启动服务,查看监听:

1
2
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
netstat -unltp|grep fdfs #查看服务

(3) 配置Clint服务

1
2
3
cd /etc/fdfs
cp clint.conf.sample clint.conf #修改客户端路径文件
vi clint.conf

进入conf文件后完成以下参数的修改:

base_path=/data/fastdfs/clintlog #设置客户端存储路径

tracker_server=10.0.2.15:22122 #改为本地ip

http.tracker_server_port=80

#include http.conf 注意,#include http.conf 这句,原配置文件中有2个#,删掉一个。

(4) 配置HTTP服务

1
2
3
cp /software/fastdfs-5.05/conf/http.conf /etc/fdfs/http.conf # 配置http服务文件
cd /etc/fdfs
vi http.conf

进入conf文件后完成以下参数的修改:

http.anti_steal.token_check_fail=/data/fastdfs/httppic/anti-steal.jpg

6.4 设置环境变量和软链接

在32位ubuntu中,libfastcommon会安装在/usr/lib 中,64位系统则安装在 /usr/lib64 中。依次执行以下命令:(根据自己的操作系统选择路径)

1
export LD_LIBRARY_PATH=/usr/lib64/

或者手动修改

1
2
vi /etc/ld.so.conf下配置/usr/lib64
ldconfig

软链接:

1
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

6.5 查看tracker和storage服务运行情况

1
netstat -unltp|grep fdfs #查看服务

如果没有正常运行,启动服务命令如下:

1
2
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

测试Tracker 和 Storage 服务通信

1
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

6.6 测试上传文件功能

1
2
3
4
5
cd /software/testfile
ls
touch test.txt
vi test.txt
fdfs_test /etc/fdfs/client.conf upload /software/testfile/test.txt

见到上述结果证明测试成功。复制url地址到web浏览器中查看:

现在只是支持上传,还不支持下载功能。下文是配置文件下载,

6.7 安装Nginx 和 fastdfs-nginx-module,pcre,zlib

上文并配置启动了 Tracker 和 Storage 服务,已经可以上传文件了。下文需要配合 Nginx 来进行文件的上传下载。

1
2
cd /software
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz

1
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip

查看文件

(1) 在安装Nginx之前,需要安装如下(gcc/pcre/zlib/openssl)插件

查看zlib是否安装

1
dpkg -l | grep zlib

下面是在ubuntu环境下的插件安装,使用centos时采用不同的方式安装:

Ubuntu插件安装

1
2
3
4
5
6
7
8
9
openssl安装:
sudo apt-get install openssl libssl-dev
pcre安装: 
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install openssl libssl-dev
zlib安装:
sudo apt-get install zlib1g-dev
gcc安装:
sudo apt-get install build-essential

CentOS插件安装

1
2
3
4
gcc安装:yum install gcc-c++
pcre安装:yum install -y pcre pcre-devel
zlib安装:yum install -y zlib zlib-devel
OpenSSL安装:yum install -y openssl openssl-devel

(2) 接下来可以安装Nginx

1
2
3
4
cd /software
# wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

配置 nginx 安装,加入fastdfs-nginx-module模块。

1
./configure --add-module=/software/ fastdfs-nginx-module-master/src/

编译安装

Make

make install

查找安装路径

1
whereis nginx

启动、停止nginx

cd /usr/local/nginx/sbin/

./nginx #启动

./nginx -s stop #此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程

./nginx -s quit #:此方式停止步骤是待nginx进程处理任务完毕进行停止。

./nginx -s reload

(3) 查询nginx进程:

ps aux|grep nginx

(4) 设置开机自启动即在rc.local增加启动代码、。(可略过此步)

vi /etc/rc.local

增加一行

/usr/local/nginx/sbin/nginx

设置执行权限:

chmod 755 rc.local

6.8 配置fastdfs-nginx-module 和 Nginx

(1) 配置mod-fastdfs.conf,并拷贝到/etc/fdfs文件目录下

1
2
cd /software/fastdfs-nginx-module-master/src/
vi mod_fastdfs.conf

对conf文件作以下修改

# valid only when load_fdfs_parameters_from_tracker is true

tracker_server=10.0.2.15:22122

# default value is false

url_have_group_name = true

# must same as storage.conf

store_path0=/data/fastdfs/storage

#store_path1=/home/yuqing/fastdfs1

cp mod_fastdfs.conf /etc/fdfs

(2) 把fastdfs-5.05下面的配置中还没有存在/etc/fdfs中的拷贝进去

1
2
cd /software/fastdfs-5.05/conf
cp anti-steal.jpg http.conf mime.types /etc/fdfs/

(3) 配置Nginx,编辑nginx.config

1
2
cd /usr/local/nginx/conf
vi nginx.conf

在配置文件中加入:

location /group1/M00 {

root /data/fastdfs/storage/;

ngx_fastdfs_module;

}

(4) 由于我们配置了group1/M00的访问,我们需要建立一个group1文件夹,并建立M00到data的软链接。

1
2
mkdir /data/fastdfs/storage/data/group1
ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/group1/M00

(5) 启动 Nginx ,会打印出fastdfs模块的pid,正常不会报错的

/usr/local/nginx/sbin/nginx

(6) 在浏览器中输入IP10.0.2.15地址,可以看到如下画面,说明我们 Nginx 结合 fastdfs-nginx-module 模块安装并配置成功啦。可以跳过1.6.9

6.9 关闭防火墙

真实环境不要这么做,默认安装时防火墙是关闭的,开放80端口访问权限。在iptables中加入重启就行,或者你直接关闭防火墙,    本地测试环境可以这么干,但到线上万万不能关闭防火墙的。

vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

重启防火墙,使设置生效:

service iptables restart

6.10 上传测试

因为执行文件全部在/usr/bin目录下,我们切换到这里,并新建一个test.txt文件,随便写一点什么,我写了This is a test file. by:mafly这句话在里边。然后测试上传:

1
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /usr/bin/test.txt

复制地址到浏览器查看

如上是完整的配置过程,如果需要建立集群,只需要扩展服务器并对tracker和storage服务进行配置即可。各个服务器结点都需要安装Nginx。

7 开机启动服务

(1) 启动开机检查Tracker、Storage服务是否开启:

1
2
3
netstat -unltp|grep fdfs #查看服务
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

(2) 试Tracker 和 Storage 服务通信

1
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

(3) 查看Nginx是否开启:

1
2
ps aux|grep nginx
/usr/local/nginx/sbin/nginx

(4) 测试上传下载

1
fdfs_test /etc/fdfs/client.conf upload /software/testfile/test.txt

8 参考文献

[1] FastDFS Github, https://github.com/happyfish100

[2] FastDFS 分布式文件存储,https://community.qingcloud.com/topic/321/%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8fastdfs-%E4%B8%80-%E5%88%9D%E8%AF%86fastdfs

[3] FastDFS 简单了解,http://www.cnblogs.com/mafly/p/fastdfs.html

[4] FastDFS 在CentOS下配置安装部署,http://blog.mayongfa.cn/192.html

[5] FastDFS 配置Nginx模块及上传测试,http://blog.mayongfa.cn/193.html

[6] 分布式存储CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群,http://www.cnblogs.com/PurpleDream/p/4510279.html

[7] Hadoop 分布式文件系统:架构和设计,https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html

[8] FastDFS安装使用实践,http://soartju.iteye.com/blog/803477

[9] FastDFS安装部署操作手册,http://blog.csdn.net/XingJames/article/details/52759876

[10] FastDFS安装和配置,http://www.ctolib.com/docs/sfile/Linux-Tutorial/FastDFS-Install-And-Settings.html

[11] Ubuntu下安装并配置FastDFS,http://www.linuxdiyf.com/linux/27518.html

[12] 多机安装部署,http://blog.csdn.net/ricciozhang/article/details/49402273

FastDFS分布式文件系统的更多相关文章

  1. FastDFS 分布式文件系统的安装与使用(单节点)

    FastDFS 分布式文件系统的安装与使用(单节点) 跟踪服务器:192.168.4.121 (edu-dfs-tracker-01) 存储服务器:192.168.4.125 (edu-dfs-sto ...

  2. 使用Webupload上传图片到FastDFS分布式文件系统

    使用Webupload插件上传图片到FastDFS分布式文件系统. 前提条件:1.已安装FastDFS分布式文件系统 2.使用webuploader插件上传文件 3.maven工程已引入FastDFS ...

  3. FastDFS 分布式文件系统部署实战及基本使用

    FastDFS 分布式文件系统部署实战及基本使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. FastDFS是一个开源的高性能分布式文件系统.它的主要功能包括:文件存储,文件同步 ...

  4. CentOS7 安装FastDFS分布式文件系统

    CentOS7 安装FastDFS分布式文件系统 最近要用到fastDFS,所以自己研究了一下,在搭建FastDFS的过程中遇到过很多的问题,为了能帮忙到以后搭建FastDFS的同学,少走弯路,与大家 ...

  5. django中使用FastDFS分布式文件系统接口代码实现文件上传、下载、更新、删除

    运维使用docker部署好之后FastDFS分布式文件系统之后,提供给我接口如下: fastdfs tracker 192.168.1.216 192.168.1.217 storage 192.16 ...

  6. FastDFS分布式⽂文件系统

    FastDFS分布式⽂文件系统  1. 什么是FastDFS FastDFS 是⽤用 c 语⾔言编写的⼀一款开源的分布式⽂文件系统.FastDFS 为互联⽹网量量身定制, 充分考虑了了冗余备份.负载均 ...

  7. 07.Linux系统-Fastdfs分布式文件系统-互为主从配置搭建部署

    Fastdfs分布式文件系统-互为主从配置部署 1.安装基础依赖 yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl ...

  8. Dubbo入门到精通学习笔记(八):ActiveMQ的安装与使用(单节点)、Redis的安装与使用(单节点)、FastDFS分布式文件系统的安装与使用(单节点)

    文章目录 ActiveMQ的安装与使用(单节点) 安装(单节点) 使用 目录结构 edu-common-parent edu-demo-mqproducer edu-demo-mqconsumer 测 ...

  9. 一键架设FastDFS分布式文件系统脚本,基于Centos6

    一.使用背景 业务驱动技术需要,原来使用 FTP和 Tomcat upload目录的缺陷日渐严重,受限于业务不断扩大,想使用自动化构建,自动化部署,Zookeeper中心化,分布式RPC DUBBO等 ...

随机推荐

  1. 软件工程(GZSD2015)第二次作业小结

    第二次作业,从4月7号开始,陆续开始提交作业.根据同学们提交的作业报告,相比第一次作业,已经有了巨大改变,大家开始有了完整的实践,对那些抽象的名词也开始有了直观的感受,这很好.然后有一些普遍存在的问题 ...

  2. 201521123058 java第六次作业

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2. 书面作业 1.clone方法 1.1 Object对 ...

  3. 201521123039《java程序设计》第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句 ...

  4. 201521145048 《Java程序设计》第7周学习总结

    1. 本周学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 1.2 解释E remove(int index)源代码 1.3 结合1. ...

  5. 201521123119 《Java程序设计》第13周学习总结

    1. 本周学习总结 Q以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 Q1. 网络基础 Q1.1 比较ping www.baidu.com与ping cec. ...

  6. 201521123104《Java程序设计》第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 1. 互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用sync ...

  7. java通过JDBC链接SQLServer2012【转载!!!超详细】

    http://blog.csdn.net/stewen_001/article/details/19553173/

  8. Java Classloader机制解析(转)

    做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结.因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspo ...

  9. Spring - Spring容器概念及其初始化过程

    引言 工作4年多,做了3年的java,每个项目都用Spring,但对Spring一直都是知其然而不知其所以然.鄙人深知Spring是一个高深的框架,正好近期脱离加班的苦逼状态,遂决定从Spring的官 ...

  10. java控制台输入输出

    一.比较传统的输入方法用输入流,得到字符串后要另行判断.转换 案例 import java.io.BufferedReader; import java.io.IOException; import ...