Java从入门到精通 - 算法、正则、异常

算法、正则、异常

此笔记参考黑马教程,仅学习使用,如有侵权,联系必删

文章目录

  • 算法、正则、异常
    • 1. 常见算法
      • 1.1 简单认识算法
        • 1.1.1 什么是算法?
        • 1.1.2 为什么要学习算法?
      • 1.2 排序算法
        • 1.2.1 冒泡排序
          • 1.2.1.1 实现冒泡排序的关键步骤分析
          • 代码实现
        • 1.2.2 选择排序
          • 1.2.2.1 选择排序的关键
          • 代码实现
      • 1.3 查找算法
        • 1.3.1 基本查找/顺序查找
        • 1.3.2 二分查找(折半查找)
          • 代码实现
    • 2. 正则表达式
      • 2.1 概述、初体验
      • 2.2 书写规则
        • 2.2.1 正则表达式的书写规则
        • 2.2.2 其他几个常用的符号
      • 2.3 应用案例
        • 代码演示
      • 2.4 用于查找信息
        • 代码实现
      • 2.5 用于搜索替换、分割内容
        • 代码演示
    • 3. 异常
      • 3.1 认识异常
        • 3.1.1 什么是异常?
        • 3.1.2 异常的体系
        • 3.1.3 抛出异常(throws)
        • 3.1.4 捕获异常(try...catch)
        • 代码演示
      • 3.2 自定义异常
        • 3.2.1 自定义异常的种类
          • 自定义运行时异常
          • 自定义编译时异常
        • 3.2.2 异常有什么作用?
        • 代码演示
      • 3.3 异常的处理
        • 3.3.1 开发中对于异常的常见处理方式
        • 3.3.2 抛出异常(throws)
        • 3.3.3 捕获异常(try...catch)
        • 代码演示

1. 常见算法

1.1 简单认识算法

1.1.1 什么是算法?
  • 解决某个实际问题的过程和方法
1.1.2 为什么要学习算法?
  • 编程思维
  • 面试

1.2 排序算法

学习算法的技巧:

  1. 先搞清楚算法的流程
  2. 直接去推敲如何写代码
1.2.1 冒泡排序
  • 每次从数组中找出最大值放在数组的后面去

1.2.1.1 实现冒泡排序的关键步骤分析
  • 确定总共需要做几轮:数组的长度 - 1
  • 每轮比较几次:

  • 当前位置大于后一个位置则交换数据
代码实现
package Advanced.b_algorithm;import java.util.Arrays;/*** 目标:掌握冒泡排序的编写*/
public class 冒泡排序 {public static void main(String[] args) {// 1. 准备一个数组int[] arr = {5, 2, 3, 1};// 2.定义一个循环控制排几轮for (int i = 0; i < arr.length; i++) {// 3. 定义一个循环控制比较几轮for (int j = 0; j < arr.length - i - 1; j++) {// 判断当前位置的元素值,是否大于后一个位置处的元素值,如果大则交换if (arr[j] > arr[j + 1]) {int temp = arr[j + 1];arr[j + 1] = arr[j];arr[j] = temp;}}}System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5]}
}

1.2.2 选择排序
  • 每轮选择当前位置,开始找出后面的较小值与该位置交换

![](https://i-blog.csdnimg.cn/direct/f12c90ff90bb4ebaa843b3406d24ea5b.png#pic_center =500)

1.2.2.1 选择排序的关键
  • 确定总共需要选择几轮:数组的长度 - 1
  • 控制每轮从以前位置为基准,与后面元素选择几次

代码实现
package Advanced.b_algorithm;import java.util.Arrays;/*** 目标:掌握选择排序*/
public class 选择排序 {public static void main(String[] args) {// 1. 准备好一个数组int[] arr = {5, 1, 3, 2};// 2. 控制选择几轮for (int i = 0; i < arr.length - 1; i++) {// 3. 控制每轮选择几次for (int j = i + 1; j < arr.length; j++) {// 判断当前位置是否大于后面位置处的元素值,若大于则交换if (arr[i] > arr[j]) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5]}
}
  • 优化
package Advanced.b_algorithm;import java.util.Arrays;/*** 目标:掌握选择排序*/
public class 选择排序 {public static void main(String[] args) {// 1. 准备好一个数组int[] arr = {5, 1, 3, 2};// 2. 控制选择几轮for (int i = 0; i < arr.length - 1; i++) {int minIndex = i;// 3. 控制每轮选择几次for (int j = i + 1; j < arr.length; j++) {// 判断当前位置是否大于后面位置处的元素值,若大于则交换if (arr[minIndex] > arr[j]) {minIndex = j;}}// 决定是否交换if (i != minIndex) {int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}}System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5]}
}

1.3 查找算法

1.3.1 基本查找/顺序查找

就是暴力一个一个循环查找

注意:在数据量特别大的时候,基本查找这种从前往后挨个找的形式,性能是很差的!

1.3.2 二分查找(折半查找)

前提条件:数组中的数据必须是有序的

核心思想:每次排除一半的数据,查询数据的性能明显提高极多

二分查找正常的折半条件应该是开始位置 left <= 结束位置 right

代码实现
package Advanced.b_algorithm;import java.util.Arrays;/*** 目标:掌握二分查找*/
public class 二分查找 {public static void main(String[] args) {// 1. 准备号一个数组int[] arr = {7, 23, 79, 81, 103, 127, 131, 147};System.out.println(binarySearch(arr, 81)); // 3System.out.println(Arrays.binarySearch(arr, 81)); // 3}public static int binarySearch(int[] arr, int data) {// 1. 定义两个变量,一个站在左边位置,一个站在右边位置int left = 0;int right = arr.length - 1;// 2. 定义一个循环控制折半while (left <= right) {// 3. 每次折半,都算出中间位置处的索引int middle = (left + right) / 2;// 4. 判断当前要找的元素值,与中间位置处的元素值的大小情况if (data < arr[middle]) {// 往左走,截止位置(右边位置) = 中间位置 - 1right = middle - 1;} else if (data > arr[middle]) {// 往右边找,起始位置(左边位置) = 中间位置 + 1} else {// 中间位置处的元素值,正好等于我们要找的元素值return middle;}}return -1; // -1特殊结果,就代表没有找到数据,数组中不存在该数据}
}

2. 正则表达式

2.1 概述、初体验

  • 就是由一些特定的字符组成,代表的是一个规则

作用一:用来校验数据格式是否合法

作用二:在一段文本中查找满足要求的内容

使用正则表达式校验数据,你的代码风格会非常的简单、便捷

package Advanced.c_regex;/*** 目标:体验一下使用正则表达式来校验数据格式的合法性* 需求:校验QQ号是否正确:要求全部是数字,长度是(6-20)之间,不能以0开头*/
public class RegexTest1 {public static void main(String[] args) {System.out.println(checkQQ(null)); // falseSystem.out.println(checkQQ("123456789")); // trueSystem.out.println(checkQQ("21478fadf15")); // falseSystem.out.println("------------------------");System.out.println(checkQQ1(null)); // falseSystem.out.println(checkQQ1("123456789")); // trueSystem.out.println(checkQQ1("21478fadf15")); // false}public static boolean checkQQ1(String qq) {return qq != null && qq.matches("[1-9]\\d{5,19}");}public static boolean checkQQ(String qq) {// 1. 判断qq号码是否为nullif (qq == null || qq.startsWith("0") || qq.length() < 6 || qq.length() > 20) {return false;}// 2. qq至少不是null,不是以0开头,满足6-20之间的长度// 判断qq号码中是否都是数字for (int i = 0; i < qq.length(); i++) {// 根据索引提取当前位置处的字符char ch = qq.charAt(i);// 判断ch记住的字符,如果不是数字,qq号就不合法if (ch < '0' || ch > '9') {return false;}}// 3. 说明qq号肯定是合法的return true;}
}

2.2 书写规则

String 提供了一个匹配正则表达式的方法

public boolean matches(String regex) 判断字符串是否匹配正则表达式,匹配返回 true,不匹配返回 false

2.2.1 正则表达式的书写规则
字符类(只能匹配单个字符)说明
[abc]只能是 a,b 或 c
[^abc]除了 a,b,c 之外的任何字符
[a-zA-Z]a 到 z,A 到 z,包括(范围)
[a-d[m-p]]a 到 d,或 m 到 p
[a-z&&[def]]d,e 或 f(交集)
[a-z&&[^bc]]a 到 z,除了 b 和 c(等同于 [ad-z]
[a-z&&[^m-p]]a 到 z,除了 m到 p(等同于 [a-lq-z]
预定义字符(只能匹配单个字符)说明
.任何字符
\d一个数字:[0-9]
\D非数字:[^0-9]
\s一个空白字符
\S非空白字符:[^\s]
\w[a-zA-Z_0-9]
\W[^\w] 一个非单词字符
数量词说明
X?X,一次或0次
X*X,零次或多次
X+X,一次或多次
X{n}X,正好 n 次
X{n, }X,至少 n 次
X{n,m}X,至少 n 但不超过 m 次
2.2.2 其他几个常用的符号

(?i) :忽略大小写

| :或

() :分组


2.3 应用案例

需求:

校验用户输入的电话、邮箱、时间是否合法

代码演示
package Advanced.c_regex;import java.util.Scanner;/*** 目标:校验用户输入的电话、邮箱、时间是否合法*/
public class RegexTest3 {public static void main(String[] args) {checkPhone();}public static void checkPhone() {while (true) {System.out.println("请您输入您的电话号码(手机|座机):");Scanner sc = new Scanner(System.in);String phone = sc.nextLine();if (phone.matches("(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})")) {System.out.println("您输入的号码格式正确~~~");break;} else {System.out.println("您输入的号码格式不正确");}}}public static void checkEmail() {while (true) {System.out.println("请您输入您的邮箱:");Scanner sc = new Scanner(System.in);String phone = sc.nextLine();if (phone.matches("\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}")) {System.out.println("您输入的邮箱格式正确~~~");break;} else {System.out.println("您输入的邮箱格式不正确");}}}
}

2.4 用于查找信息

在一段文本中查找满足要求的内容

需求:

请把下面文本中的电话、邮箱、座机号码、热线都爬取出来

代码实现
package Advanced.c_regex;import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** 目标:掌握使用正则表达式查找内容*/
public class RegexTest4 {public static void main(String[] args) {method1();}// 需求1:从一下内容中爬取出:手机、邮箱、座机、400电话等信息public static void method1() {String data = "来黑马程序员学习Java,\n" +"电话:1866668888,18699997777,\n" +"或者联系邮箱:boniu@itcast.cn,\n" +"座机电话:01036517895,010-98951256\n" +"邮箱:bozai@itcast.cn,\n" +"邮箱:dlei0009@163.com,\n" +"热线电话:400-618-9090,400-618-4000,400618400,4006189090";// 1. 定义爬取规则String regex = "(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|(\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2})" + "|(400-?\\d{3,7}-?\\d{3,7})";// 2. 把正则表达式封装成一个Pattern对象Pattern pattern = Pattern.compile(regex);// 3. 通过pattern对象去获取查找内容的匹配器对象Matcher matcher = pattern.matcher(data);// 4. 定义一个循环开始爬取信息while (matcher.find()) {String rs = matcher.group();System.out.println(rs);}}
}

2.5 用于搜索替换、分割内容

正则表达式用于搜索替换、分割内容,需要结合 String 提供的如下方法完成:

方法名说明
public String replaceAll(String regex, String newStr)按照正则表达式匹配的内容进行替换
public String[] split(String regex)按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组
代码演示
package Advanced.c_regex;import java.util.Arrays;/*** 目标:掌握使用正则表达式做搜索替换、内容分割*/
public class RegexTest5 {public static void main(String[] args) {// 1. public String replaceAll(String regex, String newStr):按照正则表达式匹配的内容进行替换// 需求1:请把 古力娜扎ai888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴,中间的非中文字符替换成 ”-“String s1 = "古力娜扎ai888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";System.out.println(s1.replaceAll("\\w+", "-")); // 古力娜扎-迪丽热巴-马尔扎哈-卡尔扎巴// 需求2(拓展):某语言系统,收到一个口吃的人说”我我我喜欢编编编编编编程!“,需要优化成”我喜欢编程“String s2 = "我我我喜欢编编编编编编程!";/*** (.)一组,匹配任意字符的* \\1:为这个组声明一个组号:1号* +:声明必须是重复的字* $1:可以去到第1组代表的那个重复的字*/System.out.println(s2.replaceAll("(.)\\1+", "$1")); // 我喜欢编程!// 2. public String[] split(String regex):按照正则表达式的内容进行分割字符串,返回一个字符串数组// 需求1:请把 古力娜扎ai888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴 中的人名获取出来String s3 = "古力娜扎ai888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";String[] names = s3.split("\\w+");System.out.println(Arrays.toString(names)); // [古力娜扎, 迪丽热巴, 马尔扎哈, 卡尔扎巴]}
}

3. 异常

3.1 认识异常

3.1.1 什么是异常?

异常就是代表程序出现的问题

3.1.2 异常的体系

Error:代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题,sun 公司会把这些问题封装成 Error 对象给出来,说白了,Error 是给 sun 公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它

Exception:叫异常,它代表的才是我们程序员可能出现的问题,所以,我们程序员通常会用 Exception 以及它的孩子来封装程序出现的问题

  • 运行时异常:RuntimeException 及其子类,编译阶段不会出现错误提醒,运行时出现异常(如:数组索引越界异常)
  • 编译时异常:编译阶段就会出现错误提醒的(如:日期解析异常)
3.1.3 抛出异常(throws)
  • 在方法上使用 throws 关键字,可以将方法内部出现的异常抛出去给调用者处理
方法 throws 异常1, 异常2, 异常3...{...
}
3.1.4 捕获异常(try…catch)
  • 直接捕获程序出现的异常
try{// 监视可能出现异常的代码!
} catch (异常类型1 变量) {// 处理异常
} catch (异常类型2 变量) {// 处理异常
}...
代码演示
package Advanced.d_exception;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** 目标:认识异常*/
public class ExceptionTest1 {public static void main(String[] args) throws ParseException {
//        Integer.valueOf("abc");//        int[] arr = {11,22,33};
//        System.out.println(arr[5]);//        try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d = sdf.parse("2023-11-11 10:24");System.out.println(d);
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }}
}

3.2 自定义异常

  • Java 无法为这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了
3.2.1 自定义异常的种类
自定义运行时异常
  • 定义一个异常类继承 RuntimeException
  • 重写构造器
  • 通过 throw new 异常类(xxx) 来创建异常对象并抛出
  • 编译阶段不报错,提醒不强烈,运行时才可能出现!!!
自定义编译时异常
  • 定义一个异常类继承 Exception
  • 重写构造器
  • 通过 throw new 异常类(xxx) 来创建异常对象并抛出
  • 编译阶段就报错,提醒更加强烈!
3.2.2 异常有什么作用?
  1. 异常是用来查询系统 Bug 的关键参考信息
  2. 异常可以作为方法内部的一种特殊返回值,以便通知上层调用者底层的执行情况
代码演示
  • AgeIllegalRuntimeException.java
package Advanced.d_exception;// 1. 必须让这个类继承自RuntimeException,才能成为一个运行时异常类
public class AgeIllegalRuntimeException extends RuntimeException {public AgeIllegalRuntimeException() {}public AgeIllegalRuntimeException(String message) {super(message);}
}
  • AgeIllegalException.java
package Advanced.d_exception;// 1. 必须让这个类继承自Exception,才能成为一个编译时异常类
public class AgeIllegalException extends Exception {public AgeIllegalException() {}public AgeIllegalException(String message) {super(message);}
}
  • ExceptionTest2.java
package Advanced.d_exception;/*** 目标:掌握自定义异常,以及异常的作用*/
public class ExceptionTest2 {public static void main(String[] args) {// 需求:保存一个合法的年龄try {saveAge(160);System.out.println("底层执行成功!");} catch (Exception e) {e.printStackTrace();System.out.println("底层出现了bug!");}try {saveAge2(195);System.out.println("saveAge2底层执行是成功的!");} catch (AgeIllegalException e) {e.printStackTrace();System.out.println("saveAge2底层执行是出现bug的!");}}public static void saveAge(int age) {if (age > 0 && age < 150) {System.out.println("年龄被成功保存:" + age);} else {// 用一个异常对象封装这个问题// throw 抛出去这个异常对象throw new AgeIllegalRuntimeException("/age is illegal, your age is " + age);}}public static void saveAge2(int age) throws AgeIllegalException {if (age > 0 && age < 150) {System.out.println("年龄被成功保存:" + age);} else {// 用一个异常对象封装这个问题// throw 抛出去这个异常对象// throws 用在方法上,抛出方法内部的异常throw new AgeIllegalException("/age is illegal, your age is " + age);}}
}

3.3 异常的处理

3.3.1 开发中对于异常的常见处理方式

3.3.2 抛出异常(throws)
  • 在方法上使用 throws 关键字,可以将方法内部出现的异常抛出去给调用者处理
方法 throws 异常1, 异常2, 异常3...{...
}
// 推荐方式
方法 throws Exception{
}
// Exception代表可以捕获一切异常
3.3.3 捕获异常(try…catch)
  • 直接捕获程序出现的异常
try{// 监视可能出现异常的代码!
} catch (异常类型1 变量) {// 处理异常
} catch (异常类型2 变量) {// 处理异常
}...
// 推荐方式
try {// 可能出现异常的代码!
} catch (Exception e) {e.printStackTrace(); // 直接打印异常对象的信息
}
// Exception代表可以捕获一切异常
代码演示
  • ExceptionTest3_2.java
package Advanced.d_exception;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/*** 目标:异常的处理*/
public class ExceptionTest3_2 {public static void main(String[] args) {try {test1();} catch (Exception e) {System.out.println("您要找的文件不存在!");e.printStackTrace(); // 打印出这个异常对象的信息,记录下来}}public static void test1() throws Exception {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date d = sdf.parse("2023-11-11 10:24:11");System.out.println(d);test2();}public static void test2() throws Exception {// 读取文件的FileInputStream is = new FileInputStream("D:/meinv.png");}
}
  • ExceptionTest4.java
package Advanced.d_exception;import java.util.Scanner;/*** 目标:掌握异常的处理方式:捕获异常,尝试修复*/
public class ExceptionTest4 {public static void main(String[] args) {// 需求:调用一个方法,让用户输入一个合适的价格返回为止// 尝试修复while (true) {try {System.out.println(getMoney());break;} catch (Exception e) {System.out.println("请您输入合法的数字!!!");}}}public static double getMoney() {Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请您输出合适的价格:");double money = scanner.nextDouble();if (money >= 0) {return money;} else {System.out.println("您输入的价格是不合适的!");}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91939.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题单【排序】

P1271 【深基9.例1】选举学生会 P1271 【深基9.例1】选举学生会 - 洛谷 【方法一】快速排序 使用sort()&#xff0c;注意数组的范围&#xff01;&#xff01;&#xff01; #include<bits/stdc.h> using namespace std;int a[2000000],n,m;int main() {cin>>n>&g…

【机器学习】(算法优化二)提升算法之:AdaBoost与随机梯度

文章目录一、 AdaBoost&#xff1a;自适应提升算法1、AdaBoost数学原理详解1.1、 目标函数1.2、 样本权重更新的逻辑1.3、 模型权重计算的含义1.4、 AdaBoost的核心思想2、为什么AdaBoost如此有效&#xff1f;二、 随机梯度提升算法&#xff1a;梯度优化下更精细的优化1、随机梯…

力扣 hot100 Day65

75. 颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地 对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函…

12.Linux 磁盘管理

Linux : 磁盘管理 一、磁盘设备命名规则磁盘类型设备命名模式示例特点SATA/SCSI/SAS/dev/sdXsda&#xff08;第一块硬盘&#xff09; sda1&#xff08;第一块硬盘第一分区&#xff09;机械硬盘/通用接口NVMe/dev/nvmeXnYpZnvme0n1&#xff08;第一通道第一块盘&#xff09; …

《Linux服务与安全管理》| DHCP服务器安装和配置

《Linux服务与安全管理》| DHCP服务器安装和配置 目录 《Linux服务与安全管理》| DHCP服务器安装和配置 一、点击“编辑虚拟机设置”&#xff0c;配置三台虚拟机为“仅主机”模式。 二、server01开机&#xff0c;root用户登录&#xff0c;输入nmtui&#xff0c;进入图形界面…

赛博威携手Dify,助力AI在企业的场景化落地

人工智能正以前所未有的速度重塑商业世界。我们经历了从理论探索到大语言模型&#xff08;LLM&#xff09;的爆发式增长&#xff0c;如今&#xff0c;一个以“AI Agent&#xff08;智能体&#xff09;”为核心的新阶段已然来临。AI Agent代表了人工智能应用的未来形态。它不再被…

嵌入式硬件中三极管推挽电路控制与实现

我们昨天讲到了这个电路。 如果 A 电是 PWM 波,那么请问 B 点是不是 PWM 波呢?那么,当 PWM 为高时, B 点的电流是从哪里流过来的?

数据结构——查找(三、树形查找)

一、二叉排序树&#xff08;BST&#xff09;1、二叉排序树的定义构造一棵二叉排序树的目的并不是排序&#xff0c;而是提高查找、插入和删除关键字的速度二叉排序树&#xff08;也称二叉搜索树&#xff09;或者是一颗空树&#xff0c;或者是具有以下性质的二叉树1、若左子树非空…

八股——Kafka相关

文章目录1、 消息队列的作用什么&#xff1f;思&#xff1a;消息队列是什么?消息队列的定义消息队列的工作原理消息队列的作用消息队列的常见类型消息队列的简单例子2、Kafka 集群的架构是什么样子的&#xff1f;3、Kafka 消费者组和生产者组是什么&#xff1f;定义与核心作用…

墨者学院SQL手工注入漏洞测试(MySQL数据库)题目,纯手工注入教程

打开练习手工注入的靶场,发现此时为一个登录页面,我们先试着登录看看注入点在不在登录页面 使用用户:or 1=1# 密码:admin123;尝试登录,发现显示错误后直接弹回原页面,无sql报错相关语句,这里不存在sql注入点 一:判断注入点以及猜测是否有注入 此时点击这里的动态页面…

[硬件电路-140]:模拟电路 - 信号处理电路 - 锁定放大器概述、工作原理、常见芯片、管脚定义

一、锁定放大器概述锁定放大器&#xff08;Lock-in Amplifier&#xff09;是一种基于相干检测技术的高灵敏度测量仪器&#xff0c;通过将待测信号与参考信号进行同步处理&#xff0c;从强噪声中提取微弱信号并精确测量其振幅与相位。其核心优势包括&#xff1a;信噪比提升&…

下载 | Windows Server 2025官方原版ISO映像!(7月更新、标准版、数据中心版、26100.4652)

⏩ 资源A066_Windows_Server_2025系统映像&#x1f536; Windows Server 2025官方原版ISO映像&#xff0c;7月更新版已放出。提供来自微软官方每月更新的ISO原版映像&#xff0c;内部包含了标准版和数据中心版&#xff0c;可选择无GUI界面版或桌面体验版&#xff0c;满足不同部…

Go 语言模糊测试 (Fuzz Testing) 深度解析与实践

学习一个知识&#xff0c;要先了解它的来源 1. 模糊测试的诞生&#xff1a;Barton Miller 的故事 “Fuzz”一词起源于1988年&#xff0c;由威斯康星大学麦迪逊分校的Barton Miller教授及其研究生团队在一个高级操作系统课程项目中提出 。这个概念的诞生颇具戏剧性。Miller教授在…

【软考和软著】

一、&#x1f4ab; 杭州E类人才政策 在这里插入图片描述 二、人才认定标准 三、关于软考 1、什么是软考&#xff1f; 软考指的是“计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试”。计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下…

「源力觉醒 创作者计划」开源大模型重构数智文明新范式

起来轻松玩转文心大模型吧一文心大模型免费下载地址&#xff1a;https://ai.gitcode.com/paddlepaddle/ERNIE-4.5-VL-424B-A47B-Paddle开源大模型的崛起与AI幻觉挑战&#xff1a;中国AI发展的双重使命 ——从技术追赶到生态引领的跨越之路一、开源大模型&#xff1a;重构数智文…

政务云数智化转型:灵雀云打造核心技术支撑能力

政务云数智化转型进行时&#xff0c;亟需体系升级政务信息化作为政府治理与服务的重要支撑&#xff0c;业务呈现出政策性强、数据敏感度高、系统复杂度高、服务连续性要求严等特点&#xff0c;对IT系统提出了极高要求&#xff1a;不仅需支撑高并发、高可用的政务应用&#xff0…

软件测试自学之路

别找了&#xff01;2025B站最全最细的软件测试教程&#xff0c;7天从零基础小白到精通软件测试&#xff0c;学完即上岗&#xff01;自学软件测试对于小白来说还是有一定的难度&#xff0c;各种专业术语的不熟悉&#xff0c;各种电脑操作的不熟悉&#xff0c;有时候要安装一个学…

备案期间老网站有什么要求

老网站的内容必须符合法律法规和互联网管理规定。这可不是开玩笑的事儿&#xff0c;相关部门对于网站内容的审核可是相当严格的。比如说&#xff0c;不能有违法犯罪、色情低俗、虚假信息等不良内容。根据互联网信息管理专家的建议&#xff0c;网站内容应该积极健康、真实准确。…

Java数组转换为逗号分隔字符串的方法

Java数组转换为逗号分隔字符串的方法 在Java中&#xff0c;将数组转换为逗号分隔的字符串有几种常用方法&#xff0c;以下是清晰可靠的实现方案&#xff1a; 方法1&#xff1a;使用Arrays.toString() 字符串处理&#xff08;通用型&#xff09; import java.util.Arrays;publi…

抗辐照DCDC与MCU在核环境监测设备中的集成应用

摘要核环境监测设备对保障核设施安全、保护环境与人员健康意义重大&#xff0c;需在复杂恶劣的核环境中稳定运行。电子设备易受核辐射影响产生单粒子效应等故障&#xff0c;选用具备抗辐照能力的DCDC与MCU芯片至关重要。本文结合实际测试数据&#xff0c;深入探讨抗辐照DCDC与M…