Linux(4):文件属性
文件属性:
# 重点: 磁盘空间不足 和 软链接与硬链接的区别
查看文件的属性:
# ls lhi 文件
[root@NEO ~]# ls -lhi /etc/hosts
130078 -rw-r--r--. 2 root root 180 Mar 14 18:35 /etc/hosts # 上面输出信息 每列的含义:
130078 ===> inode 号码,文件的号码(相当于人的身份证号码)
- ===> 第1个 - :表示文件的类型
rw-r--r-- ===> 文件的权限
. ===> 与 selinux 有关
2 ===> 文件的硬链接数量
root ===> 文件的所有者
root ===> 用户属于的家族
180 ===> 文件大小
Mar 14 18:35 ===> 文件的修改时间
/etc/hosts ===> 文件名 (注意:文件名不是文件的属性)
1. inode 和 block 简介
# 获得一个硬盘 到 可以向硬盘中存放数据的过程:
# 硬盘(房子) --- 分区(划分隔断) --- 格式化创建文件系统(装修成不同风格) --- 挂载(安装门窗)
inode 和 block
# inode
1) 含义:index node(索引节点)
用来存放文件属性的空间;通过inode号码找到这个空间的
文件名不存放在 inode 中 (所以文件名不属于文件属性)
2) 怎么来的?
格式化创建文件系统时创建的
3) 特点:
1. inode存放文件属性
2. 存放了block的位置(指向block的指针)
3. 创建一个文件就要占用一个inode
4. inode 节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
5. inode 在某一个文件系统(分区)中,是唯一的 4) 怎么用/看 inode
ls -i (看某些文件的 inode 号码) 或者 df -i (系统里面inode用了多少、剩余多少)
[root@NEO ~]# ls -i
405404 anaconda-ks.cfg 138447 data 390150 install.log.syslog
[root@NEO ~]# ls -li
total 16
405404 -rw-------. 1 root root 1061 Oct 16 00:49 anaconda-ks.cfg
138447 drwxr-xr-x. 2 root root 4096 Mar 8 15:55 data
390150 -rw-r--r--. 1 root root 5890 Oct 16 00:47 install.log.syslog
[root@NEO ~]# ls -lih
total 16K
405404 -rw-------. 1 root root 1.1K Oct 16 00:49 anaconda-ks.cfg
138447 drwxr-xr-x. 2 root root 4.0K Mar 8 15:55 data
390150 -rw-r--r--. 1 root root 5.8K Oct 16 00:47 install.log.syslog
[root@NEO ~]#
[root@NEO ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 55426 537918 10% /
tmpfs 60748 1 60747 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot # block
1)含义: 数据块
block是实际存放数据的位置
2)怎么来的?
格式化创建文件系统时创建的
3)特点:
1. block是实际存放数据的位置
2. block的大小:4k (centos 6.x默认的大小) 1k 8k
3. 创建大文件会占用多个 block,如果文件很小(如 1k),4k 剩余的空间会被浪费
4. 创建一个非空文件要占用一个 inode 和至少1个 block
5. 每读取一个 block 就会消耗一次磁盘I/O(input/output 磁盘读写) 4) 怎么看/用 block ?
df -h (磁盘block使用情况)
ls -lh (查看一个文件的大小) [root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
No space left on device (磁盘空间不足--因为block满了)
# 1. 看看到底哪里满了
[root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
[root@NEO ~]# du -sh /*
8.0K /app
7.6M /bin
38M /boot
8.0K /data
220K /dev
30M /etc
24K /home
214M /lib
27M /lib64
16K /lost+found
4.0K /media
4.0K /mnt
24K /neozheng
36K /oldboy
28K /opt
du: cannot access `/proc/1893/task/1893/fd/4': No such file or directory
du: cannot access `/proc/1893/task/1893/fdinfo/4': No such file or directory
du: cannot access `/proc/1893/fd/4': No such file or directory
du: cannot access `/proc/1893/fdinfo/4': No such file or directory
0 /proc
64K /root
16M /sbin
4.0K /selinux
4.0K /srv
0 /sys
19M /tmp
1.1G /usr
94M /var # 2. 看看是哪个目录占的空间大,最终定位到目录或文件
[root@NEO ~]# du -sh /* |grep G
du: cannot access `/proc/1894/task/1894/fd/4': No such file or directory
du: cannot access `/proc/1894/task/1894/fdinfo/4': No such file or directory
du: cannot access `/proc/1894/fd/4': No such file or directory
du: cannot access `/proc/1894/fdinfo/4': No such file or directory
1.1G /usr
[root@NEO ~]# du -sh /usr/* |grep G # du -sh 命令:查看每个目录占多大的空间; grep G 命令:查找占的空间大的目录 # 3. 问清楚是否可以删除,然后再操作
企业案例:如果向磁盘写入数据提示如下错误: No space left on device (磁盘空间不足),通过 df -h 查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?
# 可能原因: inode 用完了 # 创建环境的命令:
mkdir -p /app/logs
dd if=/dev/zero of=/dev/sdc bs=8k count=10
ls -l /dev/sdc
mkfs.ext4 /dev/sdc # mkfs 是用来格式化的;mk -- make ,f -- file ,s -- system mount -o loop /dev/sdc /app/logs # mount 是 挂载 的命令 [root@NEO tmp]# cd /app/logs/
[root@NEO logs]# touch stu{1..6}.log
touch: cannot touch `stu6.log': No space left on device
[root@NEO logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs
[root@NEO logs]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 55426 537918 10% /
tmpfs 60748 1 60747 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot
/dev/sdc 16 16 0 100% /app/logs
[root@NEO logs]# # 从上面的示例,也是 block 还没用完, 但 inode 用完了
文件属性的文件类型:
- 指代 f,file,即 普通文件
d 指代 d,directory,目录
l 指代 l,softlink,软链接(相当于windows中的快捷方式) # linux下的普通文件也分为3种:
[root@NEO lost+found]# ls -l /tmp/etc.tar.gz /bin/ls /etc/hosts
-rwxr-xr-x. 1 root root 117048 Mar 23 2017 /bin/ls
-rw-r--r--. 2 root root 180 Mar 14 18:35 /etc/hosts
-rw-r--r-- 1 root root 9732526 Mar 16 02:45 /tmp/etc.tar.gz
[root@NEO lost+found]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped # 可执行的文件(二进制文件,命令)
[root@NEO lost+found]# file /etc/hosts
/etc/hosts: ASCII text # 普通文本文件
[root@NEO lost+found]# file /tmp/etc.tar.gz
/tmp/etc.tar.gz: gzip compressed data, from Unix, last modified: Sat Mar 16 02:45:23 2019 # 压缩包(数据文件,data)
[root@NEO lost+found]# # file 命令: 显示文件的详细类型
扩展名:
windows 通过扩展名区分不同类型的文件
linux中,扩展名是用来给我们看的,你可以随便改,不影响使用,如下:
[root@NEO ~]# mv /tmp/etc-exclude.tar.gz /tmp/etc.txt
[root@NEO ~]# file /tmp/etc.txt
/tmp/etc.txt: gzip compressed data, from Unix, last modified: Sat Mar 16 02:45:50 2019
[root@NEO ~]# # 并且 tar 命令也可以解压 etc.txt 文件 # linux 中常见的扩展名:
.sh # 脚本文件(把一堆命令放在一起,可以运行)
.conf # 配置文件 # 用户 和 用户组 简介:
对于一个文件/目录来说,用户可以分为3类:
所有者,所属的用户组 和 陌生人
138447 drwxr-xr-x. 2 root root 4.0K Mar 8 15:55 data
这个root 代指 所有者 这个root 代指所有者所属的组的名字(用户组) # 假设我是 oldboy 用户,那么我与这个文件有什么关系 ?
# 查询用户信息的命令: id 用户名 # 包含 用户名 及其所属的 用户组(groups=)
[root@NEO ~]# id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[root@NEO ~]#
# 所以 oldboy 用户 对于这个文件来说就是 陌生人 # linux 中存在于系统中的用户如何分类 ?
UID ===> user id, 用户的id号码,相当于 身份证号码,在系统中是唯一的 (UID用的比较多)
GID ===> group id,用户组的id号码,相当于 户口本号码 UID
1. 皇帝 root 0
2. 傀儡 虚拟用户 1-499 作用:为了满足系统中每个进程要有一个对应的用户(虚拟用户是无法使用的,无法切换,即无法使用 su -)
3. 贫民百姓 普通用户 500以上 # 如何保护root用户?
1. 禁止root 远程登陆
2. 修改 ssh 默认的端口号 22
3. 定期分析 /var/log/secure (该文件记录着用户的登陆信息)
与用户有关的文件
/etc/passwd # 存放的是用户的信息
/etc/shadow # 存放的是用户密码的信息
/etc/group # 存放的是用户组的信息
/etc/gshadow # 存放的是用户组密码的信息 # /etc/passwd
[root@NEO ~]# cat /etc/passwd
...
root :x:0 :0 :root :/root :/bin/bash
oldboy:x:500 :500: :/home/oldboy :/bin/bash
# 冒号是分隔符
# 第一列:用户名字
# 第二列:原来存放密码的地方
# 第三列:UID
# 第四列:GID
# 第五列:用户的说明信息(默认为空)
# 第六列:用户的家目录
# 第七列:用户使用的shell(用户使用的命令解释器;centos 默认的 shell是 /bin/bash) # /bin/bash ---> centos 默认的命令解释器
# /sbin/bash ---> 也是命令解释器,但如果用户的命令解释器为 /sbin/bash,那么用户无法登陆系统(相当于傀儡用户)
linux 9位权限说明与计算
# 权限的种类:
# r 4 ---> read;可以读取文件内容(可以用 cat 查看)
# w 2 ---> write;可以修改文件内容
# x 1 ---> execute;可以运行文件 (命令、脚本)
# - 0 ---> 什么权限都没有 [root@NEO ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 180 Mar 14 18:35 /etc/hosts
-rw-r--r--.
# 第1个 - :文件类型为普通文件
# rw- :所有者拥有的权限; 420 --> 6
# r-- :用户组拥有的权限; 420 --> 4
# r-- :陌生人对这个文件拥有的权限; 420 --> 4
软链接 和 硬链接
# 软链接:
# 软链接相当于 windows 中的快捷方式;也叫 符号链接 # 怎么来的?
# 创建软链接的命令: ln -s
[root@NEO oldboy]# ln -s oldboy.txt oldboy.txt-soft
[root@NEO oldboy]# ls -l oldboy.txt*
-rw-r--r-- 1 root root 30 Mar 16 03:28 oldboy.txt
lrwxrwxrwx 1 root root 10 Mar 19 04:42 oldboy.txt-soft -> oldboy.txt # 这个就是软链接 (软链接是一种新的文件类型) # 特点:
1. 存放着源文件的位置
2. 源文件被删除,软链接就找不到源文件
3. 主要是为了节约时间 # 硬链接
# 硬链接相当于超市(即 文件内容)的前后门(即 文件),可通过不同的大门进入超市
# 在同一个分区(文件系统中),两个或多个文件的 inode 号码相同,则这些文件互为 硬链接 文件 # 怎么来的?
# 创建 硬链接 的命令: ln
[root@NEO oldboy]# ln oldboy.txt oldboy.txt-hard
[root@NEO oldboy]# ls -lhi oldboy.txt*
140131 -rw-r--r-- 2 root root 30 Mar 16 03:28 oldboy.txt
140131 -rw-r--r-- 2 root root 30 Mar 16 03:28 oldboy.txt-hard
# 查看硬链接会涉及到 inode 号码,所以要用 -lhi ;上面的 2 表示 硬链接数量 (即文件有几个入口) # 特点:
1. 硬链接相当于 超市的入口,硬链接的数量就是 文件一共有多少个入口
2. 假设硬链接数是2,删除硬链接或源文件后,文件还能断续使用;如果硬链接和源文件都被删除,则该文件被删除(即 硬链接数量为0) # 硬链接主要用于防止文件被误删,但硬链接不能防止文件被误清空、误修改(此时需要备份 cp;备份会占用更多的空间,但硬链接不会多占空间) # 软链接 和 硬链接的区别(面试题):
解答:
1)如何创建:
a) 默认不带参数情况下, ln 命令创建的是硬链接,带 -s 参数的 ln 命令创建的是软链接
2)含义:
a) 硬链接文件与源文件的 inode 节点号相同,而软链接文件相当于 windows 下面的 快捷方式 (inode节点号与源文件不同)
3)特点:
a) 不能对目录创建硬链接(只能对文件创建硬链接),但可以创建软链接,对目录的软链接会经常用到
b) 软链接可以跨文件系统,硬链接不可以跨文件系统
4)怎么没的?(源文件、软链接、硬链接与删除)
a) 删除软链接文件,对源文件及硬链接文件无任何影响
b) 删除文件的硬链接文件,对源文件及软链接文件无任何影响
c) 删除软链接文件的源文件,对硬链接文件无影响,但会导致其软链接失效(红底白字闪烁状)
d) 同时删除源文件及其硬链接文件,整个文件才会被真正的删除
linux 中彻底删除一个文件的原理:
) 删除这个文件所有相关的硬链接 - rm (rm命令删除的是硬链接,只是删除了文件的入口)
) 这个文件的进程调用数也为0
linux 中彻底删除一个文件的条件:
1. 硬链接数量为0
2. 进程调用数为0 # 磁盘空间不足:某个文件没有被彻底删除,导致的磁盘空间满了 # 一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的
# 解决办法: 查找机器自身的服务,然后重启 apache 和 tomcat # 模拟的思路:向 /var/log/secure 追加8亿行,然后删除该文件 (因为这个文件一直在运行)
[root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 7.0G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
[root@NEO ~]# seq 800000000 >>/var/log/secure
^C
[root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 8.8G 0 100% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
[root@NEO ~]# du -sh /* |grep G
du: cannot access `/proc/1656/task/1656/fd/4': No such file or directory
du: cannot access `/proc/1656/task/1656/fdinfo/4': No such file or directory
du: cannot access `/proc/1656/fd/4': No such file or directory
du: cannot access `/proc/1656/fdinfo/4': No such file or directory
1.1G /usr
7.5G /var
[root@NEO ~]# du -sh /var/* |grep G
7.4G /var/log
[root@NEO ~]# du -sh /var/log/* |grep G
7.4G /var/log/secure
[root@NEO ~]# \rm -f /var/log/secure
[root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 8.8G 0 100% / ### 删除 /var/log/secure 后 磁盘仍然被占满
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
[root@NEO ~]# du -sh /* |grep G
du: cannot access `/proc/1664/task/1664/fd/4': No such file or directory
du: cannot access `/proc/1664/task/1664/fdinfo/4': No such file or directory
du: cannot access `/proc/1664/fd/4': No such file or directory
du: cannot access `/proc/1664/fdinfo/4': No such file or directory
1.1G /usr # 显示磁盘只占用了 1.1 个 G
[root@NEO ~]# lsof |grep delete
rsyslogd 1236 root 2w REG 8,3 7867312270 260317 /var/log/secure (deleted) # (deleted) --- 标记,表示这个文件的硬链接数量为0、但进程调用数不为0
软件名称 软件大小(单位为字节) 文件名 # 原因:系统中某个文件没有被彻底删除 # 如何找出硬链接数为0,进程调用数不为0 的文件?
# lsof 命令: 能显示出系统中所有的文件 # 解决办法:重启反对应的软件/服务
[root@NEO ~]# /etc/init.d/rsyslog restart # 重启 /etc/log/secure 的命令
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
[root@NEO ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 7.0G 18% / # 此时磁盘空间就恢复了
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
磁盘空间不足案例总结:
1. block 满了: 如正常 500G的空间但存放了501G的视频
2. inode 满了:大量的小文件
3. block满了:文件没有被彻底删除导致磁盘空间不足;硬链接数为0 但进程调用数不为0
Linux 文件属性之 三种时间
linux修改、访问、改变时间简介:
# mtime :modified time,文件的修改时间 --- 文件内容的变化时间(最常用的时间, ls -l 命令显示的也是文件的修改时间)
# ctime :change time , 文件属性的改变时间,如 硬链接数量、文件大小、文件权限等
# atime :access time ,文件的访问时间 (cat 一次) # stat 命令: 显示文件的三种时间
[root@NEO ~]# cd /oldboy/
[root@NEO oldboy]# ls -l oldboy.txt
-rw-r--r-- 2 root root 30 Mar 16 03:28 oldboy.txt
[root@NEO oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 30 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 140131 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-16 03:29:35.999220892 +0800
Modify: 2019-03-16 03:28:38.741224512 +0800
Change: 2019-03-19 04:58:46.160174337 +0800
[root@NEO oldboy]#
[root@NEO oldboy]# echo hello >>oldboy.txt
[root@NEO oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 140131 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-16 03:29:35.999220892 +0800
Modify: 2019-03-25 05:25:10.432437899 +0800
Change: 2019-03-25 05:25:10.432437899 +0800
[root@NEO oldboy]# # 上面的ctime 改变是因为文件大小变了 # ctime 时间的改变: 如添加硬链接
[root@NEO oldboy]# ln oldboy.txt oldboy.txt-hard
[root@NEO oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 140131 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-16 03:29:35.999220892 +0800
Modify: 2019-03-25 05:25:10.432437899 +0800
Change: 2019-03-25 05:29:54.906456408 +0800
[root@NEO oldboy]#
# 添加硬链接时,只有 ctime 时间改变 # 这三种时间是文件属性的一部分,文件属性又都放到 inode 中,inode 又放在硬盘里
# atime [root@NEO oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 140131 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-16 03:29:35.999220892 +0800
Modify: 2019-03-25 05:25:10.432437899 +0800
Change: 2019-03-25 05:29:54.906456408 +0800
[root@NEO oldboy]# cat oldboy.txt
I am oldboy,myqq is 123456789
hello
[root@NEO oldboy]# stat oldboy.txt
File: `oldboy.txt'
Size: 36 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 140131 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-03-25 05:35:31.232457722 +0800
Modify: 2019-03-25 05:25:10.432437899 +0800
Change: 2019-03-25 05:29:54.906456408 +0800
[root@NEO oldboy]# # 注意:只有修改文件内容后的那次 cat 文件,文件的 atime 才能改变
Linux(4):文件属性的更多相关文章
- linux系统文件属性及企业精典故障案例
linux系统文件属性: [root@nginx_back ~]# stat keepalived-1.2.7.tar.gz 查看文件属性 File: "keepalived-1.2.7.t ...
- linux系统文件属性
1 硬链接概念 硬链接是指通过索引节点(Inode)来进行链接,在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(I ...
- linux系统文件属性-硬连接、软连接
1 硬链接概念 硬链接是指通过索引节点(Inode)来进行链接,在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(In ...
- Linux之文件属性
文件属性是什么? [root@luffy_boy-001 /]# ls -lhi /etc/hosts 129822 -rw-r--r--. 2 root root 198 Jan 11 2019 / ...
- 八.linux系统文件属性知识
1.文件属性权限是12位,现在只看9位,其中每3个一组,为:属主权限.属组权限.其他权限,其中r可读,w可写,x可执行,如图: 2.文件属性之软硬链接 linux系统中有两种链接,为硬链接(ln) ...
- 第四篇、linux系统文件属性三
一.linux文件属性之文件权限体系介绍 二.linux中连接介绍 三.软连接 四.图解 五文件删除原理 主要内容
- linux中文件属性
一. linux系统如何管理文件 1.1. 硬盘中的静态文件和inode a. 文件平时都在存放在硬盘中的,硬盘中存储的文件以一种固定的形式存放的,我们叫静态文件. b. 一块硬盘中可以分为两大区域: ...
- Linux之文件属性、权限
Linux中的3种身份:1. owner(文件所有者) 2. group(用户组) 3. others(其他) Linux中的3中权限:1. r(可读) 2. w(可写) 3. x(可执行) * 所有 ...
- Linux的文件属性
在Linux中,文件的拥有者可以将文件的属性设置成三种属性,可读(r).可写(w)和可执行(x).文件又分为三个不同的用户级别,文件的拥有者(u),文件的所属组(g),其他用户(o). 第一个字符显示 ...
- Linux 改变文件属性与权限
常用的修改文件组或文件的命令有三个:chgrp.chown.chmod. 1 chgrp 改变文件所属的用户组 改变一个文件的用户组直接以chgrp来改变即可,这个命令时change group 的简 ...
随机推荐
- js调用本地程序
前几天,做项目时候用到js调用本地的程序,找了好多资料,一种是写入注册表,一种是写一个浏览器插件,相对来说,写一个注册表更简单一点,因为需求很紧.下面就是我的总结,希望可以对你们有所帮助,具体从哪里找 ...
- Mysql框架---HMySql
Java 数据库框架 在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单. 但是本文不会 ...
- AJPFX关于学习java遇到的问题:对算法和数据结构不熟悉
为什么我先拿“数据结构和算法”说事捏?这玩意是写程序最最基本的东东.不管你使用 Java 还是其它的什么语言,都离不开它.而且这玩意是跨语言的,学好之后不管在哪门语言中都能用得上. 既然“数据结构和算 ...
- grunt配置详情
这个grunt配置 是我的一个程序员朋友从网上无意间看到的,然后他亲测了下,恩,是可以的.不过我到目前还未测试过是否可以. 一.安装node, 首先确保电脑已有node的环境.然后 运行 npm i ...
- new操作符具体干了什么
function Func(){ }; var newFunc=new Func (); new共经过了4个阶段 1.创建一个空对象 var obj=new Object(); 2.设置原型链 把 o ...
- 全志R58平台的GPIO引脚控制
全志R58平台的GPIO引脚控制 2017/8/18 15:50 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 本文以GPIO引脚PD24为例,在开发板的背 ...
- B树、B+树、红黑树、AVL树
定义及概念 B树 二叉树的深度较大,在查找时会造成I/O读写频繁,查询效率低下,所以引入了多叉树的结构,也就是B树.阶为M的B树具有以下性质: 1.根节点在不为叶子节点的情况下儿子数为 2 ~ M2. ...
- Intro Of Myself
- SQLite -语法
SQLite -语法 SQLite是紧随其后的是独特的组称为语法的规则和指导方针.本教程为您提供了快速启动和SQLite的清单的所有基本SQLite语法. 大小写敏感性 注意重要的一点是,SQLite ...
- Java以组的数量将字符串分组
package org.jimmy.autosearch2019.test; import java.util.ArrayList; public class Test20190327 { publi ...