Java基础(多态、抽象类以及接口)
面向对象之多态多态(polymorphic)概述:事物存在的多种形态体现:父类的引用或者接口的引用指向了自己的子类对象。多态前提:
a:要有继承关系。
b:要有方法重写。
c:要有父类引用指向子类对象。
12345678910111213141516class Fu { public void show() { System.out.println("fu show"); }}class Zi extends Fu { public void show() { System.out.println("zi show"); }}public class Demo { public static void main(String[] args) { Fu f = new Zi();//父类的引用或者接口的引用指向了自己的子类对象 f.show(); }}
多态中的成员访问特点成员变量:当子父类中出现同名的成员变量时, ...
Linux常用命令
关机&重启命令基本介绍:
123456shutdown -h now 表示立即关机shutdown -h 1 表示1分钟后关机shutdown -r now 表示立即重启halt 关机,作用和上面一样reboot 现在重新启动计算机sync 把内存的数据同步到磁盘
细节说明不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中!
用户管理命令添加用户1useradd layne 添加layne这个用户
细节说明
当创建用户成功后,会自动地创建和用户同名的家目录
也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
给用户指定或修改密码1passwd layne 添加layne这个用户
删除用户1userdel layne 删除layne这个用户
应用案例
删除用户xiaoming,但是要保留家目录userdel layne
删除用户以及用户主目录userdel -r lay ...
Docker简介
问题:为什么会有docker出现一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验。
Docker 之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。
环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。
之前在服务器配置一个应用的运行环境,要安装各种软件,Java/Tomcat/MySQL/JDBC 驱动包等。安装和配置这些东西有多麻烦就不说了,它还不能跨平台。假如我们是在 Windows 上安装的这些环境,到了 Linux 又得重新装。况且就算不跨操作系统,换另一台同样操作系统的服务器,要移植应用也是非常麻烦的。
传统上认为,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了 ...
solo的评论/回复邮件提醒功能设置(QQ邮箱)
话说我今天看到solo系统有评论/回复邮件提醒功能,然后我自己尝试回复一下我小号发的评论,评论是回复成功了,但是邮件没发出去!
然后我就去找solo的用户指南,发现里面好像没有写怎么配置,所以自己琢磨弄了半天(没办法,我很菜),终于弄好了,所以记录在这里分享给大家。
首先,我先去github上把项目克隆到本地(需要JDK8或以上的版本,Tomcat版本至少是9),导入Eclipse中,并且把mail.properties进行如下的配置。
user是QQ邮箱,密码我一开始以为就是QQ密码 😂其实并不是,是授权码。
现在,需要登录QQ邮箱,在设置—>账号中开启smtp服务,然后生成授权码,把授权码填入到mail.properties的password。
我把这些配置完之后就开始跑项目了,发现邮件还是没发出去,控制台出现报错信息。
没办法,出现报错信息,只能调试看看了!别说,我还真发现点东西。
好像是adminEmail和mail.properties里面的user邮箱设置的不一致,然后就会报这个错!我的adminEmail里面的值是layne666@ s ...
博客初建,随便聊一聊儿
$(function () {
$.ajax({
url: 'https://api.i-meto.com/meting/api?server=netease&type=song&id=573747359',
success: function (list) {
var ap = new APlayer({
element: document.getElementById('aplayer-blog-begin'),
showlrc: 3,
theme: '#ad7a86',
mode: 'random',
music: JSON.parse(list)[0]
});
window.aplayers || (window.aplayers = []);
window.aplayers.pu ...