0%

File类

代表计算机各个文件,目录的抽象表现形式,可以实现文件的创建,删除等

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

public class FileDemo {
    public static void main(String[] args) {
        //File类表示一个文件或目录
        //指定在哪里创建
        //第一种使用方法
        File f1 = new File("/home/xiaoming/音乐/java/vince.text");
        //第二种使用方法,使用类中的常量separator表示斜杠
        File f2 = new File(File.separator+"home"
                +File.separator+"xiaoming"
                +File.separator+"音乐"+File.separator
                +"java"+File.separator+"tey.text");
        //判断文件是否已经存在
        if(!f1.exists()) {
            try {
                f1.createNewFile();//创建文件
                System.out.println("文件创建成功");
            } catch (IOException e) {
                // 基本上IO操作都报这个错误
                e.printStackTrace();
            }
        }
        //判断对象是否是文件
        System.out.println(f1.isFile());
        //判断该对象是否为文件夹
        System.out.println(f1.isDirectory());
        
        //删除文件夹(前提文件夹里无文件)
        File f3 = new File("/home/xiaoming/音乐/java");
        boolean b = f3.delete();
        System.out.println(b);
        
        //列出所有文件名,若是文件夹,则列出文件夹名
        String[] name = f3.list();
        System.out.println(Arrays.toString(name));
        
        //列出当前目录下的所有文件,以file对象返回
        File[] f4 = f3.listFiles();
        for(File f:f4) {
            System.out.println(f.length());
            System.out.println(f.getName());
            System.out.println(f.getPath());//相对路径
            System.out.println(f.getAbsolutePath());//绝对路径
            System.out.println(f.isHidden());//是否隐藏文件
            System.out.println(f.canRead());
            Date date = new Date(f.lastModified());//最后修改时间
            DateFormat df = new SimpleDateFormat("HH:mm:ss");
            System.out.println(df.format(date));
        }
        
        //创建文件夹
        File f5 = new File("/home/xiaoming/音乐/java1");
        f5.mkdir();
        f5.mkdirs();//一次性创建所有指定文件夹
        
        //重命名与移动文件
        f5.renameTo(new File("/home/xiaoming/音乐/Text1"));
        
        //过滤器
        File[] files = f5.listFiles(new FileFilter() {
            
            //从写此方法,用于查找出指定文件
            public boolean accept(File pathname) {
                return pathname.getName().endsWith(".text");
            }
        });
        //第二种写法
        File[] files_s  = f5.listFiles((pathname)->pathname.getName().endsWith(".text"));
        for(File f:files) {
            System.out.println(f.getName());
        }
    }
}
阅读全文 »

链表

线性表,但不会按线性的顺序存储数据,而是每一个节点里存着下一个节点的指针
链表和数组都是线性数据结构

  • 数组不便于做删除、插入,但遍历查找简单,有固定长度
  • 链表适合插入、删除,不宜过长,否则导致遍历性能下降
    阅读全文 »

单例设计模式

只能有一个对象实例,通过私有化构造方法,并在类里创建一个静态对象实现,常用于工具类,节省重复创建对象,提高效率

通过构造方法私有化+静态方法 代替单例设计模式模式:占用内存多

阅读全文 »

程序运行

终端javac编译成.class,使用java运行,javadoc生成注释文档

基本数据类型

floatdouble为近似值
byteshortint三者在计算时会转换为int类型,可以使用强制类型转换

short s1 = 10;
int s2 = s1+1;//必须加int,因为类型变了
s1 = (short)(s1+1);//强制类型转换
s1 +=1;//没问题

键盘输入

要先引入Scanner类才能使用键盘输入

import java.util.Scanner

运算符

&,|即可以表示逻辑运算符,也可以表示按位运算符;表示逻辑运算符时针对boolean变量,先计算两边的值再做比较
按位运算符计算乘除结果比普通乘除快(是最快的方式):>>除以2的n次方;<<乘以2的n次方

两个变量交换的三种方法

阅读全文 »

Dingo

Dingo是一个composer的包,能够用于创建自己想要的API,返回JSON数据

官方文档

Dingo安装与配置

关于JWT-auth的安装参考Laravel-JWT

修改composer.json文件,在require中添加:

“dingo/api”:”2.0.0-alpha1”

阅读全文 »

建立七牛云存储空间

注册七牛云并完成实名后,进入七牛云开发者中心——对象存储——存储空间,创建一个存储空间,之后点击融合 CDN 加速域名,域名可以是经过解析的子域名

域名解析相关:

  • 主机记录:
类型 用途
www 解析后域名为www.你的域名
  • | 泛解析,匹配所有*.你的域名
    mail | 将域名解析为mail.你的域名
    二级域名 | 如abc.你的域名,填写abc(七牛云选用子域名)
    手机域名 | 如m.你的域名,填写m
阅读全文 »

JWT简介

JWT(JSON Web Token)实际上是一个字符串,包括头部、载荷、签名

载荷

{
    "sub": "1",
    "iss": "http://localhost:8000/auth/login",
    "iat": 1451888119,
    "exp": 1454516119,
    "nbf": 1451888119,
    "jti": "37c107e4609ddbcc9c096ea5ee76c667"
}

这6个字段是由JWT标准所定义的

  • sub:该JWT所面向的对象
  • iss:该JWT的签发者
  • iat(issued at):在什么时候签发的token
  • exp(expires):token什么时候过期
  • nbf(not before):token在此时间之前不能被接收处理
  • jti:JWT ID为web token提供唯一标识

将上面的JSON对象进行base64编码后得到的字符串就是JWT的载荷

yJzdWIiOiIxIiwiaXNzIjoiaHR0cDpcL1wvbG9jYWx
ob3N0OjgwMDFcL2F1dGhcL2xvZ2luIiwiaWF0IjoxNDUxODg4MTE5LCJleHAiOjE0NTQ1MTYxMTksIm5iZiI6MTQ1MTg4OD
ExOSwianRpIjoiMzdjMTA3ZTQ2MDlkZGJjYzljMDk2ZWE1ZWU3NmM2NjcifQ
阅读全文 »

安装

在确保数据库链接正确后,执行以下命令安装laravel-admin插件

composer require encore/laravel-admin

然后运行以下命令会生成配置文件config/admin.php,更改显示页面的内容可以在里面更改

php artisan vendor:publish –provider=”Encore\Admin\AdminServiceProvider”

最后运行下面命令即完成安装

php artisan install

阅读全文 »

  • 以腾讯云为例

远程登录云服务器

在腾讯云中添加SSH密匙(会提示保存一个文件),并绑定到所购买的云服务器上,在本地打开终端输入:

先赋予仅本人可读权限

chmod 400 <下载的与云服务器关联的私钥的绝对路径>

输入以下指令即可远程登录

ssh -i “<下载的与云服务器关联的私钥的绝对路径>” &#60;username&#62;@&#60;hostname or ip address&#62;

  • username根据购买服务器种类而定,ubuntu的为ubuntu,其他的为root
  • hostname为域名,也可以填写ip地址

搭建环境

更新列表

sudo apt-get update

安装语言包

sudo apt-get install language-pack-zh-han*
locale-gen zh_CN.UTF-8

安装常用软件

sudo apt-get install -y vim git zip unzip

阅读全文 »

模型

Laravel中每张数据表都对应一个与该表进行交互的模型(Model),通过模型类,可以对数据表进行查询、插入、更新、删除等操作。

定义模型

模型类通常位于app目录下,所有的Eloquent模型都继承自Illuminate\Database\Eloquent\Model
make:model的Artisan命令用于创建模型,加上-m--migration表示生成模型时生成数据库迁移

php artisan make:model 自定义模型名称 (-m/–migration)

还可以自己指定的生成专门放模型的文件件:

php artisan make:model Model/Test

生成的文件:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
    //
}
阅读全文 »