Java八股文
Java 八股文一、Java 基础知识1、Object 类相关方法
getClass 获取当前运行时对象的 Class 对象。
hashCode 返回对象的 hash 码。
clone 拷贝当前对象, 必须实现 Cloneable 接口。浅拷贝对基本类型进行值拷贝,对引用类型拷贝引用;深拷贝对基本类型进行值拷贝,对引用类型对象不但拷贝对象的引用还拷贝对象的相关属性和方法。两者不同在于深拷贝创建了一个新的对象。
equals 通过内存地址比较两个对象是否相等,String 类重写了这个方法使用值来比较是否相等。
toString 返回类名@哈希码的 16 进制。
notify 唤醒当前对象监视器的任一个线程。
notifyAll 唤醒当前对象监视器上的所有线程。
wait 1、暂停线程的执行;2、三个不同参数方法(等待多少毫秒;额外等待多少毫秒;一直等待)3、与 Thread.sleep(long time) 相比,sleep 使当前线程休眠一段时间,并没有释放该对象的锁,wait 释放了锁。
finalize 对象被垃圾回收器回收时执行的方法。
2 ...
记一次丢失的GitHub Contributions绿格
为什么绿格子会丢失首先要分析为什么你的提交记录没有被github识别:
进行Commits的用户没有被关联到你的Github帐号中。
不是在这个版本库的默认分支进行的Commit。
这个仓库是一个Fork仓库,而不是独立仓库。
我估计很多人和我一样都是第一个原因,初用github远程管理代码或者那些经常更换使用机器的猿极有可能用错账户名和邮箱,其实我就是在修改自己原来的用户名和邮箱时才发现的。
下面是解决的办法:
这是github官方的办法(全英文):https://help.github.com/articles/changing-author-info/
1、在git项目目录下创建一个脚本文件email.sh,内容如下(请按说明修改5,6,7行的内容)12345678910111213141516171819#!/bin/shgit filter-branch --env-filter 'OLD_EMAIL="原邮箱地址"CORRECT_NAME="新用户名"CORRECT_EMAIL="新邮箱地址"if [ ...
Git 常见案例
Git操作场景示例1. 删除掉本地不存在的远程分支多人合作开发时,如果远程的分支被其他开发删除掉,在本地执行git branch --all依然会显示该远程分支,可使用下列的命令进行删除:
123456# 使用 pull 命令,添加 -p 参数$ git pull -p# 等同于下面的命令$ git fetch -p$ git fetch --prune origin
2.创建自己的分支12345678# 从develop分支导出自己的分支dev$ git checkout -b dev-lxy# 将本地分支提交到远程分支$ git push origin dev-lxy:dev-lxy# 将本地分支和远程分支绑定$ git branch -u origin/dev-lxy# 提交代码$ git push
3.切换远程分支123456789101112# 添加一个远程分支$ git remote add origin-devops http://ip/**/**.git# 查看远程分支信息$ git remote -v# 更新远程分支到本地分支$ git fetch origin- ...
Git 教程
Git教程Git简介Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具。
SVN与Git最主要的区别SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
工作原理 / 流程:
Workspace:工作区(working directory)
就是你在电脑上看到的目录里的文件 ...
Linux安装Ruby
安装ruby去官网下载:http://www.ruby-lang.org/en/downloads/ 最新的版本并上传到/usr/local/ruby目录下
1234567891011121314151617181920mkdir /usr/local/rubycd ruby# 解压tar -zxvf ruby-3.0.1.tar.gzcd ruby-3.0.1# 配置安装到/usr/local/ruby# -prefix是将ruby安装到指定目录,也可以自定义./configure –-prefix=/usr/local/ruby# 安装ruby(安装过程可能有点长)make && make install# 安装后,通过在命令行中输入以下命令来确保一切工作正常:ruby -v# 如果提示 -bash: ruby: command not found,则需要手动配置环境变量vi /etc/profile# 加入如下配置export PATH=/usr/local/ruby/bin:$PATH# 使配置生效source /etc/profile# 再次验证ruby - ...
Linux安装Redis
Redis单机安装以目前最新版本为例,目前最新版本为Redis6.2.3
1.redis6.2.3 安装前往官网下载6.2.3版本,并上传至Linux。或者使用wget直接下载
1wget https://download.redis.io/releases/redis-6.2.3.tar.gz
将压缩包移动到/usr/local下,解压缩,并改名为redis
12345678mv redis-6.2.3.tar.gz /usr/localcd /usr/local# 解压缩tar xzf redis-6.2.3.tar.gz# 删除压缩包rm -rf redis-6.2.3.tar.gz# 重命名mv redis-6.2.3 redis
2.编译Redis源码12345678# 进入 redis 主目录cd redis# 编译make# 编译成功后,进入src文件夹,执行make install进行Redis安装cd src# PREFIX参数指定redis的安装目录make install PREFIX=/usr/local/redis
3.Redis的部署安装成功后进行配置部署 ...
Linux命令大全-目录
查看命令的帮助信息使用命令 --help如ls --help
文件和目录操作命令:
列出目录下的文件和目录 : ls
切换工作目录 : cd
查看当前工作目录的绝对路径 : pwd
创建目录 : mkdir
删除文件或目录 : rm
删除空目录 : rmdir
移动文件或目录、重命名文件或目录 : mv
复制文件或目录 : cp
新建文件、修改文件时间戳 : touch
计算文件中行号 : nl
查看文件内容 : cat
截取文件内容 : cut
分页查看文件内容(一开始加载全文) : more
分页查看文件内容(一开始不加载全文) : less
从文件头开始查看 : head
从指定位置到文件尾 : tail
以树状图列出目录内容 : tree
文本处理工具(增删改) : sed
文本分析工具 : awk
文本编辑器 :vi/vim
文件查找命令
我们经常在Linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
which:查看可执行文件的位置。
whereis:查看文件的位置。
locate:配合数据库查看文件位置。
find:实际搜寻硬盘查询文件名称 ...
Linux命令-chown命令
chown(Change owner)命令将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。
1.命令格式:1chown [选项] [所有者][:[组]] 文件...
2.命令功能: 通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
3.命令参数:必要参数:
123456-c, 显示更改的部分的信息-f, 忽略错误信息-h, 修复符号链接-R, 处理指定目录以及其子目录下的所有文件-v, 显示详细的处理信息-deference, 作用于符号链接的指向,而不是链接文件本身
选择参数:
1234--reference=<目录或文件>, 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组--from=<当 ...
Linux命令-chmod命令
chmod(Change mode)命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。
文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读 ...
Linux命令-chgrp命令
在linux系统里,文件或目录的权限的掌控以拥有者及所属群组来管理。可以使用chgrp(Change group)指令去变更文件与目录所属群组,这种方式采用群组名称或群组识别码都可以。要被改变的组名必须要在/etc/group文件内存在才行。
1.命令格式:1chgrp [选项] [组] [文件]
2.命令功能: chgrp命令可采用群组名称或群组识别码的方式改变文件或目录的所属群组。使用权限是超级用户(root)。
3.命令参数:必要参数:
123456-c, 当发生改变时输出调试信息-f, 不显示错误信息-R, 处理指定目录以及其子目录下的所有文件-v, 运行时显示详细的处理信息--dereference, 作用于符号链接的指向,而不是符号链接本身--no-dereference, 作用于符号链接本身
选择参数:
123--reference=<文件或者目录>--help 显示帮助信息--version 显示版本信息
4.使用实例:实例1:改变文件的群组属性:
1chgrp -v lxy log.log
实例2:根据指定文件改变文件的群组属性 ...