HTML基础 Li.051

html 标签简单介绍 # html5文件声明 <!DOCTYPE html> # 根标签 <html lang="en"> # 头 <head> # 字符集 <meta charset="UTF-8"> # 文档标题, 标签页标题 <title>01入门案例</title> </head> # 身体, 所有文档内容 <body> <h1 align="center">这是我的第一个HTML入门案例</h1> </body> </html> HTML 注释 标签 注释 <!-- 注释 --> 标签 开始和结束标签 <h1></h1> 自闭合标签<br/> <hr/> 标签的嵌套 正确嵌套 <h1><u>sefe</u></h1> 错误嵌套 <h1><u>sefe</h1></u> 块级元素和行内元素 块级元素: 在页面中以块的形式展现, 自己独占一行, 后面内容会自动换行<p><hr><div> 行内元素: 在页面中以行的形式展现, 不会换行<b><i><u><span> div和span <div>: 是一个通用的内容容器, 没有特殊语义. 一般用来对其它元素进行分组, 用于样式化相关的需求 <span>: 是一个通用的行内容器, 没有特殊语义. 一般用来纺织元素以达到某种样式. <div>和<span>标签核心作用是布局页面 HTML 的属性 什么是属性 属性可以提供一些额外的信息, 这些信息不会显示在内容中, 但可以改变标签的形式或提供的数据使用 定义格式 属性名=属性值 属性的规范 同一个标签中属性的名称必须唯一 不区分大小写, 推荐小写 属性值可以使用单引号或双引号, 推荐双引号 常用的属性 class 定义元素的类名, 用户选择或访问特定的元素 id 定义元素的唯一标识, 在整个文档中必须是唯一的 name 定义元素的名称, 一般用于表单数据提交到服务器 value 定义在元素内显示的默认值, 一般常用于表单标签中 style 定义元素的css样式 HTML 的特殊字符 特殊字符 在html中, 像< > " ' 空格 & 都是特殊字符, 它们是语法本身的一部分 字符表示 < &lt; > &gt; " &quot; ' &apos; & &amp; 空格 &nbsp; HTML 练习一 样式演示 <!...

September 22, 2021 · 5 分钟 · Lizicai

Linux常用命令与shell语言 Li.050

user 用户相关命令 useradd username passwd username usermod -l usernewname username userdel usernewname # 强制删除用户usertest主目录和邮件池 userdel -rf usertest group 用户组相关命令 groupadd groupname # 查看用户所在的组 groups username # 更改组名 groupmod -n groupname groupnewname groupdel groupnewname 管理用户与组 # 往group1中添加用户test gpasswd -a test group1 # 删除group1中的test gpasswd -d test group1 # 查看组中有几个用户 cat /etc/group | grep groupname 时间 date date -d "2021-09-09 12:00:01" # 修改时间 date -s "2021-09-09 12:00:01" logname 显示登录用户名 su 切换用户 # 切换到root用户执行命令, 再切换回当前用户, 需要输入root密码 su -c ls root id 查看用户id 用户组id top 命令 实时监控进程 # 停止监控 q # 显示完整命令 top -c # 指定pid top -p 3550 PS # 当前正在运行 ps # 全部运行 ps -A # 查看更全的信息 ps -ef # 指定用户进程信息 ps -u username Kill # 杀掉进程 kill 999 # 彻底杀掉 kill -9 999 # 杀掉用户进程 kill -9 $(ps -ef | grep username) killall -u username shutdown # 关机 shutdown # 取消关机 shutdown -c # 立即关机 shutdown -h now # 警告 1分钟后关机 shutdown +1 "1分钟关机" # 警告 1分钟后重启 shutdown -r +1 "1分钟重启" who 当前登录系统的用户 who who -H timedatectl 设置时间 # 查看所有时区 timedatectl list-timezones # 设置野区 timedatectl set-timezone Asia/Shanghai # 禁用ntp timedatectl set-ntp false # 启用ntp timedatectl set-ntp true clear 清屏 command + L 同样能做到 clear ls ls # 显示文件夹(不隐藏的文件与文件夹详细信息) ls -l # 全部文件夹与文件(包含隐藏) ls -a ls -al pwd 打印目录 pwd cd 切换路径 Fasd 跳转比cd更快 # 相对路径 cd testdir # 绝对 cd /home/test # 返回上一级 cd ....

September 21, 2021 · 10 分钟 · Lizicai

Java的反射 Li.049

反射 反射概述 Java的反射机制是在运行状态中, 对于任意一个类, 都能知道这个类的所有属性和方法 对于任意一个对象, 都能够调用它的任意一个方法和属性 这种动态获取信息以及动态调用对象的方法的功能称为Java语文的反射机制 想要解剖一个类, 必需先要获取到该类的字节码文件对象 而解剖使用的就是Class类中的方法, 所以先要获取到每一个字节码文件对应的Class类型的对象 反射的三种方式 Object烦的getClass()方法, 判断2个对象是否是同一个字节码文件 静态属性class, 锁对象(Person.class) Class类中静态方法forName(), 读取配置文件 import com.lizicai.bean.Person; public class Demo1_Reflect { public static void main(String[] args) throws ClassNotFoundException { Class clazz1 = Class.forName("com.lizicai.bean.Person"); Class clazz2 = Person.class; Person p = new Person(); Class clazz3 = p.getClass(); System.out.println(clazz1 == clazz2); System.out.println(clazz2 == clazz3); } } 反射(Class.forName()读取配置文件举例) import java.io.*; public class Demo2_Reflect { public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException { // nouseReflect(); String str = null; BufferedReader br = new BufferedReader(new FileReader("config....

September 19, 2021 · 7 分钟 · Lizicai

Java的网络编程 Li.048

网络通信 ip 电脑地址 UDP TCP 端口号 socket 插座, 数据流间的插座, 用来联通 类似电脑是港口ip, socket是航线用来发货, 端口号是港口停放船的泊位, UDP TCP是小船还是大船来运送数据箱子 DatagramSocket 与 DatagramPacket DatagramSocket 创建一条航线 DatagramPacket 指定电脑ip(港口), 端口号(泊位), 运送的数据(集装箱) import java.io.IOException; import java.net.*; import java.nio.charset.StandardCharsets; public class Demo1_Send { public static void main(String[] args) throws IOException { String msg = "中午一起吃饭"; DatagramSocket datagramSocket = new DatagramSocket(); DatagramPacket datagramPacket = new DatagramPacket (msg.getBytes(StandardCharsets.UTF_8),msg.getBytes().length, InetAddress.getByName("127.0.0.1"),2000); datagramSocket.send(datagramPacket); datagramSocket.close(); } } import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class Demo2_Receive { public static void main(String[] args) throws IOException { DatagramSocket socket = new DatagramSocket(2000); DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); socket....

September 17, 2021 · 8 分钟 · Lizicai

Java的多线程二 Li.047

单例设计模式(重要) 保证类在内存中只有一个对象 饿汉式, 空间换时间, 类创建的时候就创建对象, 线程安全的 懒汉式, 双叫单例加载模式, 使用的时候才创建对象, 存在线程安全问题 区别, 饿汉式空间换时间, 懒汉式时间换空间, 多线程访问时, 饿汉式不会创建多个对象, 懒汉式可能创建多个对象 public class Demo1_Singleton { public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1); System.out.println(s2 == s1); } } class Singleton{ // 1. 私有化构造函数, 就不能随意实例类了 private Singleton (){} // 2. 创建实例 private static Singleton s = new Singleton(); // 3. 饿汉式 public static Singleton getInstance() { return s; } } class SingletonLazy{ private SingletonLazy (){} private static SingletonLazy s ; public static SingletonLazy getInstance() { if(s == null){ s = new SingletonLazy(); } return s; } } class SingletonFinal{ private SingletonFinal(){} public static final SingletonFinal s = new SingletonFinal(); } Runtime 类 Process exec(String command) throws IOException 执行命令 import java....

September 12, 2021 · 9 分钟 · Lizicai

Java的多线程一 Li.046

多线程增加效率 并行, 就是多个任务同时进行, 多核cpu同时执行 并发, 多个任务轮流进行, cpu一个一个的执行 证明 JVM 是多线程的 垃圾回收和main线程间隔执行 public class Demo1_Thread { public static void main(String[] args) { for(int i=0; i < 10000000 ;i++){ new Demo(); } for(int i=0; i < 10000 ; i++){ System.out.println("主线程"); } } } class Demo{ @Override protected void finalize() throws Throwable { System.out.println("垃圾被回收了"); } } 继承Thread 开启一个线程 实际run() 方法 start() 开启线程 public class Demo2_ExtendsThread { public static void main(String[] args) { MyThread mt = new MyThread(); // mt....

September 10, 2021 · 6 分钟 · Lizicai

Java的递归 Li.045

递归练习, 计算文件夹大小 import java.io.File; import java.util.Scanner; public class Demo1_FolderSize { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String strFolder = null; long size = 0; while (true){ if( sc.hasNext()){ strFolder = sc.nextLine(); break; } } if( strFolder.equals(null)){ System.out.println("不能为空"); } else { File folder = new File(strFolder); if(folder.isFile()){ size = folder.length(); } else if(folder.isDirectory()){ size = getSize(folder); } else if(! folder.exists()){ System.out.println("文件夹不存在"); } } System.out.println(size); } public static long getSize(File folder){ long len = 0; File [] files = folder....

September 8, 2021 · 4 分钟 · Lizicai

Java的IO其他流(及Properties) Li.044

序列流 SequenceInputStream 关闭时会关闭所有流 public class Demo1_Stream { public static void main(String[] args) throws IOException { FileInputStream fr1 = new FileInputStream("read1.md"); FileInputStream fr2 = new FileInputStream("read2.md"); SequenceInputStream sis = new SequenceInputStream(fr1,fr2); FileOutputStream fos = new FileOutputStream("read3.md"); int b ; while ( ( b = sis.read()) != -1){ fos.write(b); } sis.close(); fos.close(); } public static void demo1() throws IOException { FileInputStream fr1 = new FileInputStream("read1.md"); FileOutputStream fos = new FileOutputStream("read3.md"); int b; while ((b = fr1....

September 6, 2021 · 5 分钟 · Lizicai