Java基础(三)
前言:前面主要涉及到java的基本语法,接下来本篇博客主要记录Java中Collections类、泛型、以及File类、IO流的学习。
目录
数据结构
泛型
集合
分类
Collection的分类
collection常用方法
collection遍历方式
迭代器
for循环
Lambda表达式
List集合
特点
增删改查
List集合的遍历方式
for循环
迭代器
增强for循环(for)
Lambda表达式
ArrayList集
底层原理
适合场景
LinkedList集合
底层原理
应用场景
设计队列
栈
Set集合
特点
HashSet
底层原理
适用场景
LinkedHashSet
底层原理
适用场景
TreeSet
底层原理
适用场景
Map集合
特点
常用方法
遍历方式
for循环
键找值
Lambda表达式
File
常用方法
递归
递归应用-搜索文件
字符集
IO流
IO流体系
字节流
FileInputStream(文件字节输入流)
每次读取一个字节
每次读取多个字节
一次性全都读完全部字节
OutputStream FileOutputStream(文件字节输出流)
拷贝文件
释放资源
try-catch-finally
try-with-resource
实用场景
字符流
每次读取一个字符
每次读取多个字符
FileWriter(文件字符输出流)
适用场景
数据结构
数据结构是组织数据的方式,数据结构+算法=程序。
数组是一种基本的数据结构。
基础的数据结构:List、Set、Queue、Map,比较高级的有Tree、Heap。
泛型
英文名:generics
List<String> ret = new ArrayList<>()
什么是泛型?
推荐阅读下面的这篇文章。
还不知道泛型是什么?这一篇深入浅出泛型教学! - 知乎 (zhihu.com)
集合
集合,是没有顺序的。
import java.util.Collection;
分类
单列集合 colleciton
双列集合 Map
Collection的分类
接口 Collection<E>
List<E>
- ArrayList<E>
- LinkedList<E>
Set<E>
- HashSet<E>
- LinkedHashSet<E>
- TreeSet<E>
List系列集合:添加的元素是有序、可重复、有索引
ArrayList、LinkedList:有序、可重复、有索引
Set系列集合:添加的元素是无序、不重复、无索引
- HashSet:无序、不重复、无索引
- LinkedHashSet:有序、不重复、无索引
- TreeSet:按大小默认升序排序、不重复、无索引
collection常用方法
package learn11;import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;public class ListMrjj {public static void main(String[] args) {List<String> List = new ArrayList<>();//添加元素List.add("mrjj");List.add("test");List.add("wy");// 获取集合的大小System.out.println(List.size());//判断集合是否包含某个元素 精确匹配System.out.println(List.contains("wy"));System.out.println(List.contains("WY"));//移除第3个元素System.out.println(List.remove(2));System.out.println(List);//获取特定索引的元素System.out.println(List.get(0));//修改指定索引的元素System.out.println(List.set(0, "Mrjj"));System.out.println(List);//集合转为数组Object[] arr = List.toArray();System.out.println(Arrays.toString(arr));//集合中的数据都是字符串String[] arr2 = List.toArray(new String[List.size()]);System.out.println(Arrays.toString(arr2));//清空集合List.clear();//判断集合是否为空System.out.println(List.isEmpty());//将其中一个集合的数据加入另一个集合中Collection<String> c1 = new ArrayList<>();c1.add("test1");c1.add("test2");Collection<String> c2 = new ArrayList<>();c2.add("test_a");c2.add("test_b");c1.addAll(c2);System.out.println(c1);System.out.println(c2);}
}
collection遍历方式
迭代器
package learn11;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListLearn {public static void main(String[] args) {List<String> List = new ArrayList<>();List.add("learning");List.add("wyLearning");List.add("test");List.add("wy");List.add("wangying");List.add("wyy");Iterator<String> it = List.iterator();while (it.hasNext()) {String name = it.next();System.out.println(name);}}
}
for循环
package learn11;import java.util.ArrayList;
import java.util.List;public class ListLearn {public static void main(String[] args) {List<String> List = new ArrayList<>();List.add("learning");List.add("wyLearning");List.add("test");List.add("wy");List.add("wangying");List.add("wyy");for (int i = 0; i < List.size(); i++) {String s = List.get(i);System.out.println(s);}}
}
Lambda表达式
package learn11;import java.util.ArrayList;
import java.util.List;public class ListLearn {public static void main(String[] args) {List<String> List = new ArrayList<>();List.add("learning");List.add("wyLearning");List.add("test");List.add("wy");List.add("wangying");List.add("wyy");
//可简写成 List.forEach(System.out::println)List.forEach(s -> {System.out.println(s);});}
}
List集合
特点
List系列集合:添加的元素是有序、可重复、有索引
ArrayList、LinkedList:有序、可重复、有索引
增删改查
package learn11;import java.util.ArrayList;
import java.util.List;public class ListMrjj {public static void main(String[] args) {List<String> List = new ArrayList<>();List.add("mrjj");List.add("test");List.add("wy");System.out.println(List);System.out.println(List.remove(2));System.out.println(List);System.out.println(List.get(0));System.out.println(List.set(0, "Mrjj"));System.out.println(List);}
}
List集合的遍历方式
for循环
package learn11;import java.util.ArrayList;
import java.util.List;public class ListLearn {public static void main(String[] args) {List<String> List = new ArrayList<>();List.add("learning");List.add("test");List.add("wy");for (int i = 0; i < List.size(); i++) {String s = List.get(i);System.out.println(s);}}
}
迭代器
Iterator<String> it = List.iterator();while (it.hasNext()){System.out.println(it.next());}
增强for循环(for)
for (String s : List) {System.out.println(s);}
Lambda表达式
List.forEach(s->{System.out.println(s);});
数据结构,存储组织数据的方式是不同的。
ArrayList集
底层原理
基于数组实现的
数组的特点
根据索引查询数据是比较快的
删除、添加效率较低
适合场景
根据索引查询数据
不适合场景:
数据量较大时,需要频繁的增删操作
LinkedList集合
底层原理
基于双链表
特点:
查询慢,增删相对较快,首尾元素进行增删改查的速度是极快的
应用场景
设计队列
设计队列(队列,先进先出、后进后出)
实现一个队列
package learn11;import java.util.LinkedList;public class ListQueue {public static void main(String[] args) {LinkedList<String> queue = new LinkedList<>();queue.addLast("第1个人");queue.addLast("第2个人");queue.addLast("第3个人");queue.addLast("第4个人");queue.addLast("第5个人");queue.addLast("第6个人");System.out.println(queue);queue.removeFirst();queue.removeFirst();queue.removeFirst();System.out.println(queue);}
}
栈
进入栈:压栈、进栈(push)
离开栈:弹栈、出栈(pop)
package learn11;import java.util.LinkedList;public class ListQueue {public static void main(String[] args) {LinkedList<String> stack = new LinkedList<>();stack.addFirst("第1颗子弹");stack.addFirst("第2颗子弹");stack.addFirst("第3颗子弹");stack.addFirst("第4颗子弹");stack.addFirst("第5颗子弹");stack.addFirst("第6颗子弹");System.out.println(stack);System.out.println(stack.removeFirst());System.out.println(stack.removeFirst());System.out.println(stack.removeFirst());System.out.println(stack);}
}
package learn11;import java.util.LinkedList;public class ListQueue {public static void main(String[] args) {LinkedList<String> stack = new LinkedList<>();stack.push("第1颗子弹");stack.push("第2颗子弹");stack.push("第3颗子弹");stack.push("第4颗子弹");stack.push("第5颗子弹");stack.push("第6颗子弹");System.out.println(stack);System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack);}
}
实际上,push方法就是调用的addFirst方法,pop方法调用的removeFirst方法
Set集合
特点
Set系列集合:添加的元素是无序、不重复、无索引
- HashSet:无序、不重复、无索引
- LinkedHashSet:有序、不重复、无索引
- ++++:按大小默认升序排序、不重复、无索引
HashSet
package learn11;import java.util.HashSet;
import java.util.Set;public class SetLearn {public static void main(String[] args) {Set<Integer> set = new HashSet<>();set.add(23);set.add(67);set.add(24);set.add(74);set.add(33);set.add(23);System.out.println(set);}
}
哈希值
一个int类型的数值,java中每个对象都有一个哈希值
java中的所有对象,都可以调用Object类提供的hashCode方法,返回该对象自己的哈希值
public int hashcode():返回对象的哈希码值
底层原理
基于哈希表实现
哈希表是一种增删改查数据,性能都较好的数据结构
适用场景
不需要存储重复元素,不需要排序,无索引
LinkedHashSet
package learn11;import java.util.LinkedHashSet;
import java.util.Set;public class SetLearn {public static void main(String[] args) {Set<Integer> set = new LinkedHashSet<>();set.add(23);set.add(67);set.add(24);set.add(74);set.add(33);set.add(23);System.out.println(set);}
}
底层原理
基于哈希表实现的
每个元素都额外多了一个双链表的机制记录前后元素的位置
适用场景
需要记住元素的添加顺序,无重复元素存储,增删改查都快
TreeSet
package learn11;import java.util.Set;
import java.util.TreeSet;public class SetLearn {public static void main(String[] args) {Set<Integer> set = new TreeSet<>();set.add(23);set.add(67);set.add(24);set.add(74);set.add(33);set.add(23);System.out.println(set);}
}
底层原理
自定义排序规则
适用场景
需要对元素进行排序,没有重复元素需要存储,增删改查都快
Map集合
键值对集合
键不能重复
Map<K,V>
HashMap<K,V>
LinkedHashMap<K,V>
TreeMap<K,V>
特点
Map系列集合的特点都是由键决定的
HashMap:无序、不重复、无索引
LinkedHashMap:有序、不重复、无索引
TreeMap:按照大小默认升序排序、不重复、无索引
常用方法
package learn11;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapLearn {public static void main(String[] args) {Map<String, Double> map = new HashMap<>();map.put("test1", 170.0);map.put("test2", 160.0);map.put("test3", 150.0);map.put("test4", 140.0);map.put("test5", 130.0);System.out.println(map);System.out.println(map.size());//根据键获取值System.out.println(map.get("test1"));//找不到返回nullSystem.out.println(map.get("wy"));//根据键删除元素map.remove("test5");System.out.println(map);//判断是否包含某个键System.out.println(map.containsKey("test3"));//判断是否包含某个值System.out.println(map.containsValue(170.0));
// map.clear();System.out.println(map);System.out.println(map.isEmpty());//获取所有键Set<String> keys = map.keySet();System.out.println(keys);//获取所有值Collection<Double> values = map.values();System.out.println(values);//将其他map集合的数据倒入集合中Map<String,Integer> map1 = new HashMap<>();map1.put("python1",10);map1.put("python2",20);Map<String,Integer> map2 = new HashMap<>();map2.put("java1",10);map2.put("java2",20);map1.putAll(map2);System.out.println(map1);System.out.println(map2);}
}
遍历方式
for循环
package learn11;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapLearn {public static void main(String[] args) {Map<String, Double> map = new HashMap<>();map.put("test1", 170.0);map.put("test2", 160.0);map.put("test3", 150.0);map.put("test4", 140.0);map.put("test5", 130.0);Set<String> keys = map.keySet();for (String key : keys) {double value = map.get(key);System.out.println(key + "==>" + value);}}
}
键找值
package learn11;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapLearn {public static void main(String[] args) {Map<String, Double> map = new HashMap<>();map.put("test1", 170.0);map.put("test2", 160.0);map.put("test3", 150.0);map.put("test4", 140.0);map.put("test5", 130.0);Set<Map.Entry<String, Double>> entries = map.entrySet();for (Map.Entry<String, Double> entry : entries) {System.out.println(entry);}map.forEach((k, v) -> {System.out.println(k + "->" + v);});}
}
Lambda表达式
package learn11;import java.util.HashMap;
import java.util.Map;public class MapLearn {public static void main(String[] args) {Map<String, Double> map = new HashMap<>();map.put("test1", 170.0);map.put("test2", 160.0);map.put("test3", 150.0);map.put("test4", 140.0);map.put("test5", 130.0);map.forEach((k,v) -> {System.out.println(k+"->"+v);});}
}
File
常用方法
只能删除空文件夹
package learn11;import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;public class FileLearn {public static void main(String[] args) throws IOException {File f1 = new File("D:"+File.separator+"qq\\QQWhatsnew.txt");System.out.println(f1.getName());System.out.println(f1.length());File f2 = new File("D:"+File.separator+"qq");System.out.println(f2.length());String[] names = f2.list();for(String name:names){System.out.println(name);}File[] files = f2.listFiles();for(File file:files){System.out.println(file.getAbsolutePath());}File f3 = new File("src\\learn");System.out.println(f3.length());System.out.println(f3.getName());System.out.println(f1.isDirectory());System.out.println(f1.isFile());long time = f1.lastModified();SimpleDateFormat sdf = new SimpleDateFormat("yyy/MM/dd HH:mm:ss");System.out.println(sdf.format(time));System.out.println(f3.getPath());System.out.println(f3.getAbsolutePath());File f4 = new File("D:/testwy.txt");System.out.println(f4.createNewFile());File f5 = new File("D:/a/b/c");System.out.println(f5.mkdirs());System.out.println(f4.delete());System.out.println(f5.delete());System.out.println(f5.delete());System.out.println(f5.delete());}
}
递归
典型例子,求阶乘
package learn11;public class jc {public static void main(String[] args) {System.out.println(f(5));}public static int f(int n) {if (n == 1) {return 1;} else {return f(n - 1) * n;}}
}
递归应用-搜索文件
package learn11;import java.io.File;public class SearchLearn {public static void main(String[] args) {searchFile(new File("D:/"), "QQ.exe");}public static void searchFile(File dir, String fileName) {if (dir == null || !dir.exists() || dir.isFile()) {return;}File[] files = dir.listFiles();if (files != null && files.length > 0) {for (File f : files) {if (f.isFile()) {if (f.getName().contains(fileName)) {System.out.println("找到了" + f.getAbsolutePath());}} else {searchFile(f, fileName);}}}}
}
字符集
ASCII
首尾是0,1个字节存储一个字符,总共表示128个字符
GBK
一个中文字符编码成两个字节的形式存储
GBK兼容了ASCII字符集
Unicode字符集
UTF-8
英文字符、数字等只占1个字节,汉字字符占用3个字节
IO流
I是指input,称为输入流,负责把数据读到内存中
O是指output,称为输出流,负责写数据出去
IO流体系
字节流
字节输入流:InputStream FileInputStream
字节输出流:OutputStream FileOutputStream
字符流
字符输入流:Reader FileReader
字符输出流:Writer FileWriter
字节流
FileInputStream(文件字节输入流)
每次读取一个字节
package learn11;import java.io.FileInputStream;public class FileInputStreamMrjj {public static void main(String[] args) throws Exception {FileInputStream is = new FileInputStream("src\\test");int b1 = is.read();System.out.println((char) b1);int b2 = is.read();System.out.println((char) b2);int b3 = is.read();System.out.println(b3);int b;while ((b = is.read()) != -1) {System.out.println((char) b);}is.close();}
}
每次读取多个字节
package learn11;import java.io.FileInputStream;
import java.io.InputStream;public class FileInputStreamTest {public static void main(String[] args) throws Exception {InputStream is = new FileInputStream("src\\test");byte[] buffer = new byte[3];int len;while ((len = is.read(buffer)) != -1) {String rs = new String(buffer, 0, len);System.out.println(rs);}is.close();}
}
上面读取方法会有中文乱码的问题,用一次性全部读取完字节,可以解决中文乱码的问题
一次性全都读完全部字节
package learn11;import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;public class FileInputStreamAll {public static void main(String[] args) throws Exception {InputStream is = new FileInputStream("src\\test");File f = new File("src\\test");long size = f.length();byte[] buffer = new byte[(int) size];int len = is.read(buffer);System.out.println(new String(buffer));System.out.println(size);System.out.println(len);}
}
OutputStream FileOutputStream(文件字节输出流)
package learn11;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;public class FileOutputStreamTest1 {public static void main(String[] args) throws Exception {OutputStream os = new FileOutputStream("src\\test", true);os.write(97);os.write('b');
// os.write('泰');byte[] bytes = "中国,加油".getBytes();os.write(bytes, 0, 9);os.write("\r\n".getBytes());os.close();}
}
拷贝文件
package learn11;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;public class CopyPicture {public static void main(String[] args) throws Exception {InputStream is = new FileInputStream("C:/Users/HP/Desktop/1.jpg");OutputStream os = new FileOutputStream("D:/1.jpg");byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1){os.write(buffer,0,len);}os.close();is.close();}
}
释放资源
try-catch-finally
无论程序是正常执行还是出现异常了,最后一定会执行finally
package learn11;public class test1 {public static void main(String[] args) {try {System.out.println(10 / 0);} catch (Exception e) {e.printStackTrace();} finally {System.out.println("finally执行了一次");}}
}
复制文件时应用try-catch-finally
package learn11;import java.io.*;public class CopyPicture {public static void main(String[] args) throws Exception {InputStream is = null;OutputStream os = null;try {is = new FileInputStream("src\\test");os = new FileOutputStream("src\\test1");byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}} catch (IOException e) {e.printStackTrace();} finally {try {if(os != null) is.close();} catch (IOException e) {e.printStackTrace();}try {if(os != null) os.close();} catch (IOException e) {e.printStackTrace();}}}
}
try-with-resource
释放资源,自动调用AutoCloseable接口
package learn11;import java.io.*;public class CopyPicture {public static void main(String[] args) throws Exception {try (InputStream is = new FileInputStream("src\\test");OutputStream os = new FileOutputStream("src\\test1");) {byte[] buffer = new byte[1024];int len;while ((len = is.read(buffer)) != -1) {os.write(buffer, 0, len);}} catch (IOException e) {e.printStackTrace();}}
}
实用场景
字节流适合做一切文件数据的拷贝(音视频、文本);字节流不适合读取中文内容输出(有乱码)
字符流
每次读取一个字符
package learn11;import java.io.FileReader;
import java.io.Reader;public class FileReaderTest1 {public static void main(String[] args) {try (Reader fr = new FileReader("src\\test");) {int c;while ((c = fr.read()) != -1) {System.out.print((char) c);}} catch (Exception e) {e.printStackTrace();}}
}
每次读取多个字符
package learn11;import java.io.FileReader;
import java.io.Reader;public class FileReaderTest1 {public static void main(String[] args) {try (Reader fr = new FileReader("src\\test");) {char[] buffer = new char[3];int len;while ((len = fr.read(buffer)) != -1) {System.out.println(new String(buffer, 0, len));}} catch (Exception e) {e.printStackTrace();}}
}
FileWriter(文件字符输出流)
需要注意:关闭流包含了刷新流
字符输出数据后,必须刷新流,或者关闭流。
package learn11;import java.io.FileWriter;
import java.io.Writer;public class FileWriterTest1 {public static void main(String[] args) {try (Writer fw = new FileWriter("src\\test",true);) {fw.write('a');fw.write(99);fw.write('测');fw.write("中国,加油!", 0, 3);fw.write("\r\n");char[] buffer = {'测', '试', 'a', 'b', 'c'};fw.write(buffer);fw.write(buffer, 0, 2);} catch (Exception e) {e.printStackTrace();}}
}
适用场景
适合做文本文件的读写操作
相关文章:
Java基础(三)
前言:前面主要涉及到java的基本语法,接下来本篇博客主要记录Java中Collections类、泛型、以及File类、IO流的学习。 目录 数据结构 泛型 集合 分类 Collection的分类 collection常用方法 collection遍历方式 迭代器 for循环 Lambda表达式 Lis…...
[Firefox/快捷键] 禁用Ctrl-W快捷键
最近给Firefox这一快捷键坑了几次。恰好发现在CMU也有人遇到类似的烦恼,找到一篇基于Linux的教程。 我使用的是Windows,所以根据自己的情况做了些修改,成功了。小众需求就犯懒直接将笔记贴上了,如果有谁用得上的话,我写…...
Git常用命令diff和mv
Git常用命令diff和mv 1、diff # 查看工作区和暂存区所有文件的对比 # 该命令可以显示尚未添加到stage的文件的变更 $ git diff# 查看工作区和暂存区单个文件的对比 $ git diff file# 显示暂存区和上一个commit的差异 # 查看暂存区与指定提交版本的不同,版本可缺省为HEAD $ gi…...
【谢希尔 计算机网络】第3章 数据链路层
数据链路层 数据链路层的地位 网络中的主机、路由器等都必须实现数据链路层局域网中的主机、交换机等都必须实现数据链路层不同链路层可能采用不同的数据链路层协议 数据链路层信道类型 点对点信道 使用一对一的点对点通信方式广播通信 必须使用专用的共享系电脑协议来协调这些…...
《DevOps实践指南》- 读书笔记(九)
DevOps实践指南 25. 附录附录 1 DevOps 的大融合精益运动敏捷运动Velocity 大会运动敏捷基础设施运动持续交付运动丰田套路运动精益创业运动精益用户体验运动Rugged Computing 运动 附录 2 约束理论和核心的长期冲突附录 3 恶性循环列表附录 4 交接和队列的危害附录 5 工业安全…...
数据库数据恢复-SQL SERVER数据库分区被格式化的数据恢复方案
SQL SERVER数据库故障类型: 1、SQL SERVER数据库文件被删除。 2、SQL SERVER数据库所在分区格式化。 3、SQL SERVER数据库文件大小变为“0”。 4、使用备份还原数据库时覆盖原数据库。 SQL SERVER数据库故障原因: 1、人为误操作。 2、文件系统损坏&#…...
ubuntu安装ffmpeg
Ubuntu安装FFMPEG Ubuntu安装FFMPEG 安装FFMPEG(支持GPU加速) 1.安装ffnvvodec2.安装libx2643.安装ffmpeg4.查看并测试5.卸载 安装FFMPEG(CPU版本) 安装FFMPEG(支持GPU加速) 默认已经安装cuda10.2、cud…...
CentOS上安装Docker
要在CentOS上安装Docker,可以按照以下步骤进行操作: 更新系统软件包列表: sudo yum update安装必要的软件包,以便可以通过HTTPS使用仓库并使用最新的内核: sudo yum install -y yum-utils device-mapper-persistent…...
三相PWM整流器有限集模型预测电流控制MATLAB仿真模型
微❤关注“电气仔推送”获得资料 模型简介: 整流器交流侧为三相对称电压,220V/50Hz,直流侧为760V,且电压可调。其中模型预测模块采用matlab-function模块实现,交流侧电感的标称值为0.01H,如果不是&#x…...
【JavaEE】多线程(三)
多线程(三) 续上文,多线程(二),我们已经讲了 创建线程Thread的一些重要的属性和方法 那么接下来,我们继续来体会了解多线程吧~ 文章目录 多线程(三)线程启动 startsta…...
9.25day5---Qt
登录页面设计,建立用户注册以及登录的数据库,数据库保存用户名和密码 (ps:本篇只完成了登录功能,其他功能,请见下篇嘿嘿。) 再次注册则失败: 代码如下: 头文件: 登录…...
wpf制作自定义控件,并触发外部路由事件
目的是在前端增加一个自定义控件里的button后,按下动作可以调用使用该控件的页面的事件 首先在前端增加自定义控件里加入一个button,在其cs页面里注册点击事件 var btnAdd GetTemplateChild("btnAdd") as FlatButton;if (btnAdd ! null){btn…...
axios全局路由拦截的设置方法
一个项目中如果http请求发生了错误/异常,比如返回码4xx(表示没有授权,登录过期等),我们希望能够在axios在第一时间就能拦截获取到,然后直接提示报错的错误信息,而不是在发起请求的地方ÿ…...
XSS跨站脚本攻击
XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,在网页中嵌入客户端恶意脚本代码,最常用javascript语言。(注意:叠成样式表CSS已经被占用所以叫XSS)…...
Java8实战-总结33
Java8实战-总结33 重构、测试和调试使用 Lambda 重构面向对象的设计模式策略模式模板方法 重构、测试和调试 使用 Lambda 重构面向对象的设计模式 新的语言特性常常让现存的编程模式或设计黯然失色。比如, Java 5中引入了for-each循环,由于它的稳健性和…...
Postman 的使用教程(详细)
Postman 使用教程 1. 是什么 Postman 是一个接口测试工具软件,可以帮助开发人员管理测试接口。 官网:https://www.getpostman.com/ 2. 安装 建议通过官网下载安装,不要去那些乱七八糟的下载平台,或者留言获取 官网下载地址&am…...
单元测试 —— JUnit 5 参数化测试
JUnit 5参数化测试 目录 设置我们的第一个参数化测试参数来源 ValueSourceNullSource & EmptySourceMethodSourceCsvSourceCsvFileSourceEnumSourceArgumentsSource参数转换参数聚合奖励总结 如果您正在阅读这篇文章,说明您已经熟悉了JUnit。让我为您概括一下…...
uview组件库的安装
更多的请查看官方文档uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 (uviewui.com) // 如果您的根目录没有package.json文件的话,请先执行如下命令: // npm init -y 安装 npm install uview-ui2.0.36 // 更新 // npm update uvie…...
skywalking入门
参考: https://www.jianshu.com/p/ffa7ddcda4ab 参考: https://developer.aliyun.com/article/1201085 skywalking(APM) 调用链路分析以及应用监控分析工具 Skywalking主要由三大部分组成:agent、collector、webapp-…...
【Java 基础篇】Java多线程实现文件上传详解
文件上传是Web应用程序中常见的功能之一,用户可以通过网页将文件从本地计算机上传到服务器。在处理大文件或多用户并发上传的情况下,为了提高性能和用户体验,常常使用多线程来实现文件上传功能。本文将详细介绍如何使用Java多线程实现文件上传…...
【计算机基础】VS断点调试,边学边思考
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
BD就业复习第五天
1. 核心组件的优化:hive、spark、flink 针对Hive、Spark和Flink这三个核心组件,以下是它们的优化和一些常见面试题以及详细的回答: 1. Hive 优化 面试问题1:什么是Hive?为什么需要对Hive进行优化? 回答…...
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘
报错: ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ‘ssl’ module is compiled with OpenSSL 1.1.0h 27 Mar 2018.解决办法:将urllib3的版本降低 pip install urllib31.26.15参考 python包报错ImportError: urllib3 v2.…...
Qt5开发及实例V2.0-第十二章-Qt多线程
Qt5开发及实例V2.0-第十二章-Qt多线程 第12章 Qt 5多线程12.1 多线程及简单实例12.2 多线程控制12.2.1 互斥量12.2.2 信号量12.2.3 线程等待与唤醒 12.3 多线程应用12.3.1 【实例】:服务器编程12.3.2 【实例】:客户端编程 本章相关例程源码下载1.Qt5开发…...
Windows 修改系统默认字体
Windows Registry Editor Version 5.00; 重装机后电脑屏幕及字体调整.reg.lnk ;; 显示器分辨率: 3840*2160 ;; 自定义缩放: 266 ;; 辅助功能 - 文本大小 - 110% ;; 最后 ClearType 文本调谐器; https://www.cnblogs.com/bolang100/p/8548040.html#WINDOWS 10 显示中的仅更改文…...
图像处理软件Photoshop 2024 mac新增功能
Photoshop 2024 mac是一款图像处理软件的最新版本。ps2024提供了丰富的功能和工具,使用户能够对照片、插图、图形等进行精确的编辑和设计。 Photoshop 2024 mac软件特点 快速性能:Photoshop 2024 提供了更快的渲染速度和更高效的处理能力,让用…...
JavaScript之观察者模式
本文作者为 360 奇舞团前端开发工程师 概述 在日常开发中,开发人员经常使用设计模式来解决软件设计中的问题。其中,观察者模式是一种常用的模式,它可以帮助开发人员更好地处理对象之间的通信。在 JavaScript 中,观察者模式的应用非…...
深入了解ln命令:创建硬链接和符号链接的实用指南
文章目录 1. 引言1.1 关于ln命令1.2 ln命令的作用和用途 2. 基本用法2.1 创建硬链接2.2 创建符号链接2.3 区别硬链接和符号链接 3. 操作示例3.1 创建硬链接的示例3.2 创建符号链接的示例3.3 查看链接信息 4. 注意事项和常见问题4.1 文件路径4.2 软链接的相对路径4.3 软链接的更…...
虚拟IP技术
1.说明 虚拟IP(Virtual IP Address,简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址。 弹性云服务器除了拥有私有IP地址外,还可以拥有虚拟IP地址,用户可以通过其中任意一个IP(私有IP/虚拟IP…...
蓝桥杯 题库 简单 每日十题 day5
01 字符计数 字符计数 题目描述 给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。 元音字母包括a,e,i,o,u,共五个,其他均为辅音字母。 输入描述 输入格式: 输入一行࿰…...
公司做网站找谁/济南网站制作
原文地址为: 多线程编程(2) - 从 CreateThread 说起function CreateThread( lpThreadAttributes: Pointer; {安全设置} dwStackSize: DWORD; {堆栈大小} lpStartAddress: TFNThreadStartRoutine; {入口函数} lpParameter: Pointer…...
怎么做网站优化 s/苏州百度推广公司地址
1.准备工作——安装一些工具包 $ sudo apt-get install ros-melodic-ros-tutorials ros-melodic-geometry-tutorials ros-melodic-rviz ros-melodic-rosbash ros-melodic-rqt-tf-tree2.运行demo roslaunch turtle_tf turtle_tf_demo.launch会跳出一个窗口,一只小乌…...
怎么样做游戏网站/搜索图片
💥 项目专栏:【机器学习项目实战案例目录】项目详解 + 完整源码 文章目录 一、支持向量机(SVC)实现乳腺癌肿瘤预测二、数据集介绍三、导包四、加载数据集五、数据处理5.1 数值型特征5.2 离散型特征六、配置流水线七、获取训练数据、测试集八、定义模型九、模型训练十、训练…...
网站多久需要维护/免费的域名和网站
网上有大哥总结了一张图,完整地囊括了整个NLP处理企业文本数据的整个流程。挺好的,贴出来给大家看一下。在此也搜藏下。...
网站如何验证登陆状态/湖北seo公司
参数化决策树 在参数化决策树之前,我们先来简单复习一下回归树的原理。对于决策树而言,每个被放入模型的任意样本最终一个都会落到一个叶子节点上。对于回归树,通常来说每个叶子节点上的预测值是这个叶子节点上所有样本的标签的均值。但值得…...
浙江广厦建设职业技术学院招生网站/长尾关键词爱站网
1、确认系统已经安装了SSH。rpm –qa | grep opensshyum install ssh -y ##安装SSH协议2、生成秘钥对ssh-keygen -t rsa -P ##直接回车生成的密钥对:id_rsa和id_rsa.pub,默认存储在用户的目录下 如:/home/oldboy/.ssh。 如下࿱…...