面向对象的三大特性
封装目的
限制外部访问,使某些方法和属性无法被外部访问
实现
通过作用域控制属性和方法可访问性
将属性设置为private,通过getter和setter进行访问
限定参数取值范围
e.g.123456789private int age; //age为私有变量,外部不可直接访问//getter,通过该方法返回age,避免直接访问agepublic void getAge(){ return age;}//setter,通过该方法设置age,限定取值范围,避免直接设置agepublic void setAge(int age){ self.age = age > 0 ? age : 0;}
继承
包含父类非private的所有属性和方法,并可扩展自己的方法
声明声明123class 类名 extends 父类{ …}
限制
不能继承私有成员
只能单继承
调用
在初始化子类时,会先调用父类的构造方法
重写(Override)
父类的某方法无法满足要求时,可重写该方法。
声明
该方法的声明 ...
类与方法
类
一个类即一个对象
声明声明1234作用域 class 类名{ //属性 //方法}
作用域可不写,详见作用域
方法
方法即函数
声明声明123作用域 返回类型 方法名(参数1, 参数2, …){ //方法体内容}
e.g.123public tell (String name){ System.out.println("我叫"+name);}
构造方法
声明一个类时会自动调用的函数,用于确定声明该类时需要的参数
没有返回类型和返回值
方法名与类名相同
一个类可以有多个构造方法,默认有空构造方法,当自定义构造方法时,空构造方法需手动添加
构造方法在声明时自动调用,无法手动调用
声明声明123作用域 类名(参数1, 参数2, …){ …}
重载(Overload)
方法名相同,但是参数个数或类型不同
e.g.123456789101112//第一次重载,参数类型不同public tell(int age){ System. ...
异常
异常表示代码未正常运行
语法语法1234567891011try{ 可能出错的语句}catch (第一个异常类型 e){ 当发生该异常时的解决办法}catch(第二个异常类型 e){ …}…finally{ 无论是否异常都会执行的语句}
可有多个catch,finally可省略
常见异常类型
异常类型一般以Exception结尾
异常类型
说明
NullPointerException
空指针
ClassNotFoundException
找不到该类
IndexOutOfBoundsExcpetion
数组下标越界
ArithmeticException
数学运算出错
ClassCastException
类型转换错误
FileNotFoundException
找不到该文件
SQLException
数据库操作异常
IOException
输入输出错误
SocketException
网络有错
抛出异常
在类或方法声明时在 ...
判断与循环
运算符
短路运算:符号左侧可判断结果,则右侧不再运行
长路运算:符号两侧节
种类
符号
举例
长路与
&
a&b
短路与
&&
a&&b
长路或
|
a|b
短路或
||
a||b
非
!
!a
优先级:非>与>或
ife.g.12345678if (判断表达式){ …}else if(判断表达式){ …}else{ flase}
switch
switch后面可跟整形和字符型
e.g.12345678910switch (变量){case 常量1: …; break;case 常量2: …; break;default: …//表示其他情况}
whilee.g.1234while(判断表达式){ //判断表达式true时执行 //执行0~多次}
do whilee.g.123do{ //至少执行1次 ...
《Linux C程序设计大全》(吴岳版)
书籍信息
书名
《Linux C程序设计大全》
作者
吴岳
版次
2009年2月第1版
ISBN
9787302192114
笔记目录与书籍略有不同
部分编号有误
未包含整本书内容
二. 控制结构
错误判断(goto)
错误时,goto至错误处理语句(析构),释放未完成资源
释放顺序与构建顺序相反
e.g.12345678910文件不存在,goto err1文件打开失败,goto err2所需资源分配失败,goto err3內容读取失败,goto err4…err4: free 3分配的资源err3: 关闭2打开的文件err2:err1:返回错误码
短路计算
可使用位运算代替乘法和除法中的2倍数,尽量避免使用除法
循环语句
条件中避免使用函数,避免造成函数的重复调用 (见三-1-1.
循环条件中的变量可使用局部变量(尽量避免使用全局变量作为循环条件) (见二-5-1.
条件判断
switch有一个跳转表,执行速度很快,但跳转表会占用更多空间
控制结构的优化
各控制结构之间可互相替换(基本符号等除外)
switch以空 ...
Ubuntu添加swap
12345678# create a file named `swap`, size of 1024b*2000000=2Gsudo dd if=/dev/zero of=swap bs=1024 count=2000000# make this file as swap partitionsudo mkswap -f swap# set authsudo chmod 600 swap# activate swap partition on this filesudo swapon swap
ddhttps://www.runoob.com/linux/linux-comm-dd.html
read, convert, or output datas. be used to create a file.
param
description
default
if
input filename
stdin
of
output filename
stdout
bs1
block size
byte
count2
bs count
1
bs: set ibs(i ...
修改root用户密码
跳过MySQL权限验证
1sudo mysqld --skip-grant-tables # 窗口会进入阻塞,没有任何输出
打开新终端
1mysql -u root # 直接进入,不需要密码
12update mysql.user set authentication_string = password('abcdefg') where user='root'; # 修改密码flush privileges;
重启MySQL服务
12service mysql stopservice mysql start
(o゜▽゜)o☆[BINGO!]
安装WordPress
下载wordpress
1wget https://wordpress.org/latest.tar.gz
解压到nginx配置的网站目录(见nginx 解析 PHP)
1sudo tar -xvzf lastest.tar.gz
将解压后的wordpress文件移动到nginx设定的网站目录
1sudo mv wordpress/* nginx设定的网站目录
设定wordpress的权限给nginx
1sudo chown www-data: 网站目录 -R
MySQL5.7 初始化
MySQL5.7没有设置默认密码,需要初始化(运行安全配置向导)
1sudo mysql_secure_installation
是否设随机密码,Y/y随机密码,N/n自己输入密码
输入n,输入密码,确认密码
是否删除匿名帐户,建议删除
输入y
是否禁止root账户远程登陆,建议禁止
输入y
是否删除test数据库,建议删除
输入y
是否重新加载权限表,应该重新加载
输入y
Nginx解析PHP
安装nginx1sudo apt install nginx
添加配置文件
/etc/nginx/sites-available/配置文件.conf
12345678910111213141516171819server { listen 80; listen [::]:80; root 网站目录; index index.php index.html index.htm; server_name 网站域名; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $ ...