当前位置: 首页 > news >正文

java面试复习巩固

韩顺平Java__哔哩哔哩_bilibili

1、Java中源文件中可以有多个类,最多只能有一个public类?

程序分为编译和执行两个阶段。

编译阶段

如果存在public类,那么一个源文件中只能够存在一个而且要与源文件的名字相同。----------否则编译会报错

如果不存在public类,那么程序也可以成功编译。

执行阶段

只有存在main()方法程序就可以执行,和public类无关。

也就是必须要有main方法,可以没有public类,main也可以不在public类中,只要程序能找到启动的main就行,不管有多少个main方法。

而找到的话默认从public类中找,所以public类必须与文件同名,否则编译报错。

没有public类只要指定一个类并且该类有main就行。

参考:为什么Java源文件只能有一个public类?

2、变量

定义变量=声明+赋值

三要素:变量名、值、类型

基本数据类型:char\int\double\float\byte\long\short\boolean

3、浮点数细节

float4字节、double8字节

浮点型常量默认为double

float a=1.1;错误

float b=2.2f;正确

double c=3.3;正确

double d=4.4f;正确

 科学计数法形式:3.14e12、66.6e-3

精度问题:2.7!=8.1/3

判断在一定范围内就行:Math.abs(a-b)<1e-6;

4、算术运算符

+-*/     ++   --  %  

除法注意数据类型转换

取模:a%b=a-a/b*b

10%3=1;

-10%3=-1;

10%-3=1;

-10%-3=-1;

练习:

int i=1;
i=i++;
//i=1
/*
因为会使用temp临时变量。temp=i,i=i+1,i=temp;所以i=1;
*/
int i=1;
i=++i;
//i=2
/*
还是用temp,i=i+1,temp=i,i=temp;
i=2*/

5、运算符优先级

括号、单目、算术、位移、比较、逻辑、三元、赋值

6、标识符

规则:

规范:

7、switch细节

 8、循环细节

for循环

循环条件表达式返回一个布尔值的表达式

循环初始值和迭代可多条语句,但必须类型一样

for(int i=0,j=1;i<10;i++,j+=1){}

while循环

循环条件仍是返回布尔值的表达式

先判断再执行

9、数组

数组名.length

int a[]=new int[5];

int a[]       int[]  a  //声明  为null

a=new int[10];   //分配空间

int a[1]={1}

 10、类与对象

类是一种数据类型。对象是它的实例

对象在内存中存在形式:

创建对象:

Cat a;  /*null*/a=new Cat();

Cat b=new Cat();

 内存分配机制:

内存结构:

栈:一般存基本数据类型、变量

堆:存放对象

方法区:常量池、类加载

 举例:

输出:小明

        200

         空指针异常

基本数据类型值传递,引用数据类型传递地址

11、方法重载

方法名必须相同,形参类型、个数、顺序至少一个不一样,返回类型随意。

12、作用域

 13、构造器

细节:

1、构造器可以重载

2、构造器与类名要一样

3、构造器无返回值

4、构造器是完成对象初始化、不是创建对象

5、创建对象时,系统自动调用该类的构造方法

6、系统默认有无参构造器

7、一旦定义了自已的构造器,则无默认构造器

对象创建流程:

  1. 加载Person类信息
  2. 堆中分配空间
  3. 完成对象初始化,先默认初始化,再显式初始化、最后构造器初始化
  4. 将对象的地址返回给引用的变量 

14、this

 this代表当前对象。

15、包

不同的包下可重名类,不同级目录用.隔开

用不同包名区分

a.cat cat1=new a.cat();

b.cat cat2=new b.cat();

 16、访问修饰符

17、封装

把抽象出的属性和方法封装在一起。程序的其它部分只有通过被授权的方法才能进行操作。

好处:隐藏实现细节,可以对数据进行验证,保证安全合理。

一般步骤:属性private。设置set\get方法

封装与构造器:构造时也用set方法验证

this.name=name;//×

setName(name);//√

18、继承

提高代码复用性。

class 子类 extends 父类{} 

细节:

  1. 子类继承了所有的属性和方法。但是私有属性/方法不能在子类直接访问,要通过公共的方法访问。
  2. 子类必须调用父类的构造器完成父类的初始化
  3. 当创建子类对象时,不管使用子类的哪个构造器,默认调用父类的无参构造器。若父类没有无参构造器,子类构造器中必须用super指定用父类的哪个构造器,否则编译不通过。
  4. super()与this()不能共存在一个构造器
  5. 子类最多只能继承一个父类

 查找某一属性,从子类一直到父类递归访问,直到Object都没有那就是没有可访问的该属性,会报错。(无权限访问则直接报错不再递归)

练习:(黄色的为后添加的答案)

19、多态

方法和对象体现多态

方法的重载与重写体现多态。

对象的多态:

  1. 一个对象的编译类型和运行类型可以不一致
  2. 编译类型在定义对象时确定,不能改变
  3. 运行类型是可以变化的
  4. 编译类型看定义时=号的左边,运行类型看等号的右边
  5. 编译从Object到父类结束(限制能找到的方法),运行则是从子类开始找(最终效果看子类的实现)
  6. 属性没有重写之说,具体调用哪个看编译类型

20、Object类关键方法

public boolean equals(Object obj)  //举例,重写equals
{if(this ==obj)
{return true;
}
if(obj instanceof Person)
{Person p=new  (Person) obj;
return this.name.equals(p.name) && this.age==p.age;}
return false;}

 练习

 object的equals默认判断对象的地址是否相等

==判断引用的值是否一样(是否指向同一对象),基本数据类型比值

String重写了equals,比较值是否相等

答案:FTFTF

 答案:TTTFT编译错误,无法进行类型比较

toString方法

21、String

方法:

substring(0,5)

substring(7)//到最后

trim()//去开头结尾的空格

split(“\\s”)//正则分割,返回String数组

indexOf("wor")

indexOf("a",0)//0处开始查找

length()

isEmpty()

charAt()

valueOf()//其它数据类型转为字符串

toCharArray()

concat()

字符串常量池:

创建字符串对象时先在常量池里创建(池里没有),再在堆里创建。String s=new String("aaas")创建了两个对象。若常量池有则只创建一个对象。

用String s="aaa"创建字符串引用,则会在常量池中创建对象,引用赋值也为常量池中的地址

new 的方式始终会创建一个对象,不管字符串的内容是否已经存在,而双引号的方式会重复利用字符串常量池中已经存在的对象

String.intern():如果常量池中已经存在该字符串,则返回池中该字符串的引用。
如果常量池中没有该字符串,则将其添加到常量池中,并返回这个新添加字符串的引用。

String s1 = new String("6666");//引用堆中对象

String s2 = s1.intern();//引用常量池中对象

System.out.println(s1 == s2);//false

String s1 = new String("555") + new String("666");//堆中创建555666对象但常量池没有

//因为此处+调用了StringBuilder创建的是可变长的字符串变量 可变长就意味着不可能是常量,所以自然不会在常量池创建

String s2 = s1.intern();//常量池保存堆中对象的引用

System.out.println(s1 == s2); //true 

StringBuffer/StringBuilder:

new StringBuilder().append("5555").append("6666").toString();

value数组默认大小是16

Object 类的 .equals() 方法默认采用的是==操作符进行比较。假如子类没有重写该方法的话,那么==操作符和 .equals() 方法的功效就完全一样——比较两个对象的内存地址是否相等。

练习:

new String("小萝莉").equals("小萝莉")//true

new String("小萝莉") == "小萝莉"//false

new String("小萝莉") == new String("小萝莉")//false

"小萝莉" == "小萝莉"//true

"小萝莉" == "小" + "萝莉"  //true

new String("小萝莉").intern() == "小萝莉"//true

编译的时候把“+”号操作符替换成了 StringBuilder 的 append() 方法

方法:

append()

concat()和 + 号操作符相比,concat() 方法在遇到字符串为 null 的时候,会抛出 NullPointerException,而“+”号操作符会把 null 当做是“null”字符串来处理。 

22、final

使用final:

  1. 不希望类被继承
  2. 不希望父类的某个方法被子类重写
  3. 不希望某个属性值被修改
  4. 不希望局部变量被修改

细节:

  1. final修饰的属性一般叫常量
  2. final修饰的属性赋值可在定义时、构造器中、代码块中
  3. final修饰的属性若为静态的,则在定义时、静态代码块中赋值
  4.  final类可以实例化对象,但不能被继承
  5. 非final类的final方法可以被继承,只是不能重写,可以用
  6. final类不能修饰构造器
  7. final和static同时修饰属性不会加载类,更迅速使用变量
  8. 包装类和String类都是final

23、抽象类

当父类有一些方法不确定如何实现,可写成抽象方法和抽象类。使用abstract

细节:

  1. 抽象方法不能有方法体
  2. 抽象类不能被实例化
  3. 抽象类可以没有抽象方法
  4. abstract只能修饰方法和类
  5. 本质还是类,可以有类的任意成员(非抽象方法,构造器,静态属性。。。)
  6. 如果一个类继承了抽象类则必须实现抽象类的方法,否则它本身也必须是抽象类
  7. 抽象方法不能有private\final\static

 24、接口

interface,其它类实现接口inplements

细节:

  1. 在接口中抽象方法可以省略abstract
  2. 如果类实现了接口,那么需要把该接口的方法全部实现,且必须加public(alt+enter)
  3. jdk8以后,接口可以有默认实现方法,用default修饰
  4. 接口不能被实例化
  5. 接口中所有方法都是public,默认的可以不写
  6. 抽象类实现接口可以不实现接口的方法
  7. 一个类可以实现多个接口
  8. 接口中的属性必须是public static  final (默认的) ,且必须初始化 
  9. 接口不能继承其它的类,但可以继承其它接口,但不能写implements

main中:TTTT,全都正确

实现接口是对单继承的一种补充

继承满足is-a的关系,接口满足like-a的关系

接口在一定程度上实现代码解耦 

多态:向上转型、向下转型

多态继承:

interface IH{}

interface IG extends IH{}

class teacher implements IG{}

IG ig=new teacher();   //对

IH ih =new teacher();   //对,多态继承

编译器报错,x不知道是哪个,x不明确。

应用A.x或super.x

25、四种内部类 

类的五大成员:属性、方法、构造器、代码块、内部类

内部类分类:局部内部类、匿名内部类、成员内部类、静态内部类

局部内部类:

26、枚举类enum

27、注解

28、异常

try-catch{

}catch(){

}finally{}

 

29、反射

在不修改源码的情况下来控制程序,通过外部配置文件。

Class c1=Class.forName("com.cat");
Constructor cons=c1.getConstructor();
Cat cat1=(Cat)cons.newInstance();
Field fie=c1.getField();
Method me=c1.getMethods();
String name = (String) getNameMethod.invoke(c1);Field ageField = c1.getDeclaredField("age");ageField.setAccessible(true);

二、JVM 

1、概述

只要能生成jvm的规则的字节码文件则就能在jvm上运行

跨平台、指令集小、指令多;执行性能比寄存器差。

JVM的生命周期:

  1. 启动:由引导类加载器创建一个初始类来完成的
  2. 执行:启动java虚拟机进程来执行java程序
  3. 退出:正常退出、执行出现异常、操作系统错误、调用某些方法退出

2、类加载子系统

1、类加载器只负责class文件的加载,至于它是否可以运行则由执行引擎决定

2、一般分为加载、链接、初始化三个环节

1、加载

读取class文件,将其转换为静态数据结构存在方法区,并在堆中生成一个java.lang.Class的对象。 

2、链接

  1. 验证:对加载的class类进行语法和语义上的分析使其不会产生危害虚拟机的行为
  2. 准备:为其中的静态变量赋值0
  3. 解析:将符号引用替换为解析引用,a中的class引用了b中的class,会触发bclass的类加载,并生成加载后的地址来让a能找到。如果这里涉及动态绑定(也就是java的多态特性)那么虚拟机不知道b的具体实现类是哪个所以并不会加载,等到运行时知道了再加载解析。(这里解析阶段在初始化之后了)

三、JUC

1、概述

进程与线程:

进程是系统在运行中的一个应用程序,程序一旦运行就是进程,进程是资源分配的最小单位。

线程是系统分配处理器时间资源的基本单元,也可以说是进程之内独立执行的一个单元。是程序执行的最小单元

线程状态:

NEW, RUNNABLE, BLOCKED, WAITING(不见不散), TIMED_WAITING(过时不候), TERMINATED;

wait与sleep:

  1. sleep是Thread的静态方法,wait是Object的方法,任何对象都能调用
  2.  sleep不会释放锁也不占用锁,wait会释放锁,调用它需要当前线程占有锁
  3. 都会被interrupt方法中断

并发和并行:

并发:间这些任务可能不会同时执行,而是交替执行,给人一种“同时处理”的错觉。

并行是同一时刻多个任务同时进行,执行通常需要多个处理器或者处理器核心

 管程:锁
是一种同步机制,保证同一个时间只有一个线程访问被保护的数据或者代码。

用户线程:自定义线程,jvm存活

守护线程:运行在后台,jvm结束

Synchronized:是一种同步锁,

多线程编程:创建资源类,在资源类中创建属性和操作方法。创建多个线程,调用资源类的方法。

创建线程的方式:

  1. 继承Thread类重写run方法
  2. 创建一个类实现Runnable接口,并重写run方法
  3. 实现Callable接口,重写call方法

Lock接口:

2、集合的线程安全问题

四、spring家族

1、spring使用

1、获取bean对象

ApplicationContext context =new ClassPathXmlApplicationContext("bean.xml");
User user1=(User)context.getBean("user");//id获取对象
User user2=(User)context.getBean(User.class);//根据类型获取对象
User user3=(User)context.getBean("user",User.class);//结合id和class

根据类型获取bean时,容器中同类型bean对象只能一个。

如果多个实现类实现同一个接口则找不到接口的bean对象

2、setter注入

<property name="set后面的字母小写“ value="设置的属性值"></property>

3、构造器注入 

<constructor-arg name=""  value=""></constructor-arg>

<:&lt;   >:&gt;

 4、特殊类型注入

2、SpringMVC

3、Spring Boot

1、相关注解

@RestController

@RequestMapping

@RequestParam

@RequestBody

@PathVariable

@ResponseBody

@Component

@Autowired

@Controller

@Service

@Repository

@ComponentScan

@Primary

@Qualifier

@Resource

HttpServletRequest:封装了请求的所有数据

 2、请求参数

1、普通参数

保证方法形参名与请求参数名一致即可,若参数对应不上则不会报错继续接受

在形参前加注解@RequestParam(name="age")int userage,且这个参数必须传递

可修改required=false来取消必须传递

2、实体参数

保证实体变量名与请求参数名一致即可,若参数对应不上则不会报错继续接受

实体中有实体对象,有.连接封装

3、数组集合参数

数组形参名与请求参数名一致即可

也可以存到集合里,前面需要加上注解

@RequestParam List<String> hobby

4、日期时间参数

形参名与请求参数名一致,并格式也要一样

5、json参数

保证实体变量名与请求参数名一致即可,前面加上注解

@RequestBody User user

6、路径参数

请求参数属于路径的一部分,使用注解PathVariable

3、响应参数

ResponseBody注解:该类的所有方法都作为响应数据

 对象返回Json格式,集合返回json格式的数组,字符串就是字符串

统一响应结果:

编写Result类:code\msg\data等

直接调用Result类的方法,保证响应的数据格式一致

三层架构:

分层解耦:

减少三层之间的耦合,实现高内聚低耦合。

解决:IOC、DI

使用注解@Component(IOC)  @Autowired(DI).

service层、dao层类交给容器管理,controller层、service层使用依赖注入

4、IOC

会强制类的首字母小写生成bean对象

组件扫描:@ComponentScan,默认扫描启动类所在包及其子包

手动设置:

@ComponentScan("dao","begin"),写在启动类上面

//一般按照要求,包位置不要随意安排

5、DI

同时有多个同类型bean对象,则会报错

解决:

  1. 使用注解@Primary在想被注入的类上,设置它的优先级最高
  2. @Qualifier("bean的名字“),写在@Autowired上面
  3. @Resource(name="bean的名字“),注释掉Autowired,写在它的位置

五、MySql

1、常用命令:

show databases;

use thissql;

create database thatsql;

desc thissql;

select version();

select database();

2、分类

DQL:数据查询语言(select)

DML:数据操纵语言(增删改、insert\delete\update)

 DDL:数据定义语言(create\drop\alter)

TCL:事务控制语言(commit\rollback)

DCL:数据控制语言(grant\revoke)

3、 查询

select a from tb;

select a,b from tb;

select * from tb;

select a as aa from tb;(as可省略)

select a as 'a a' from tb;   //一般字符串都用单引号

select a*10  '总结果'  from tb;

select a from tb where a=10;

select a from tb where a is null ;  (=null  不行)

select a from tb where a in (88,99);

select a from tb where  name like '%o%';   //找_用\转义

select a from tb order by a desc;//降序

select a  from tb order by a asc, b asc,c desc;

数据处理常用函数:

 lower \upper\substr(串,起始,长度)\length\trim\str_to_date\format\round\rand()\ifnull

concat(a,b)字符串拼接

4、分组

分组函数自动忽略null

count

sum

avg

max

min

分组、连接查询

select distinct a from tb;

select count(distinct a) from tb;

select a from tb join bt on tb.a=bt.a; //等值连接

select a from tb join bt on tb.a>bt.a; //非等值连接

select aa.name,ab.name from tb as aa join tb as ab on aa.sal=ab.s;//内连接

select tb.a ,bt.a from tb right join bt on tb.a=bt.a; //右连接,右边的表的数据

select tb.a ,bt.a from tb left join bt on tb.a=bt.a; //左连接

5、limit用法 

limit startindex,length(默认下标从0开始)

分页:limit (pagenumber -1)*pagesize,pagesize

练习:表emp,dept,salgrade

1、查询每个部门最高薪水的人员名称.

select e.ename,t.*

from emp e

join (select deptno ,max(sal) from emp group by deptno) t

on t.deptno=e.deptno and t.maxsal=e.sal;

2、哪些人的薪水在部门平均薪水之上

select e.ename,e.sal,t.*

from emp e

join (select deptno ,avg(sal) avgsal from emp group by deptno) t

on e.deptno=t.deptno and e.sal>t.avgsal;

3、取得部门中所有人的平均的薪水等级

select e.deptno,avg(s.grade)

from emp e

join slagrade s

on e.salgrade between s.losal and s.hisal

group by e.deptno

 6、Mybatis

1、入门

注解:

@Mapper

@Select

@Test

@Results

@Result

使用java程序操作数据库,是优秀的持久层框架,简化jdbc的开发。

Springboot配置文件

@Mapper写在接口上,会自动生成该接口的实现类对象,并且将该对象交给IOC容器管理 

注意实体类的变量名与数据库一致

@Select(”select * from user"),编写sql语句

JDBC:

  1. 注册驱动,使用哪个数据库的驱动类
  2. 获取连接对象,提供url,用户名密码
  3. 获取Statement对象执行sql,得到结果集
  4. 解析结果集,封装结果数据
  5. 释放资源 

数据库连接池:

lombok:

 

2、基础操作

删除:

#{},预编译SQL

?{},直接拼接,存在SQL注入问题

新增:

主键返回:

更新:

查询:

 使用@Results\@Result注解手动进行封装(不推荐)

column是数据库字段名

正解:打开驼峰命名自动映射开关

将数据库中a_column与类中aColumn映射

条件查询:返回多条结果用列表封装

XML映射文件:

前面使用注解方式配置SQL语句,现在使用xml映射文件配置

3、动态SQL 

动态SQL:使用mybatis的动态sql的标签

<where>:判断条件是否有成立的,去除前面多余的and或or

<if>:

<set>:生成set关键字并去除多余的逗号

<foreach>:

<sql>:提高复用性

<include>:引用

 4、实战代码练习

使用日志:加上注解@Slf4j

log.info("输出。。。。“) 

 

或用注解@GetMapping(@DeleteMapping等)

步骤:controller->service接口->service实现->Mapper

 

7、redis

1、基础篇

是Nosql非关系型数据库,存储键值对信息,单线程,每个命令具有原子性。低延迟、速度快(基于内存、IO多路复用、良好的编码)、支持数据持久化、支持主从集群、分片集群。支持多语言客户端。

数据结构:

通用命令:

KEYS *age*

KEYS a??

DEL name name1     //返回删除的键的数量

EXITST  age

EXPIPE    age  20                     //设置有效期

 TTL  age           //查看剩余时间     -1表示永久有效   -2表示已过期

 String:

相关文章:

java面试复习巩固

韩顺平Java__哔哩哔哩_bilibili 1、Java中源文件中可以有多个类&#xff0c;最多只能有一个public类&#xff1f; 程序分为编译和执行两个阶段。 编译阶段 如果存在public类&#xff0c;那么一个源文件中只能够存在一个而且要与源文件的名字相同。----------否则编译会报错…...

《STL源码剖析》笔记记录

《STL源码剖析》笔记记录 2.空间适配器(allocator) 分配的是空间&#xff0c;而不一定是内存 为了精密分⼯&#xff0c;STL allocator 决定将这两个阶段操作区分开来。 1、对象构造由 ::construct() 负责&#xff1b;对象释放由 ::destroy() 负责。 2、内存配置由 alloc::al…...

《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》

1. 标准库IO简介 标准库IO特点&#xff1a;通过操作系统提供的接口&#xff08;API&#xff09;和操作系统进行交互。&#xff08;接近100个函数&#xff09; 1.1. IO的过程 操作系统&#xff1a;向上为用户提供操作接口&#xff0c;向下为统筹控制硬件。 操作系统的组成&#…...

idea生成自定义Maven原型(archetype)项目工程模板

一、什么是Maven原型&#xff08;Maven archetype&#xff09; 引自官网的介绍如下&#xff1a; Maven原型插件官网地址 这里采用DeepSeek助手翻译如下&#xff1a; Maven 原型 什么是原型&#xff1f; 简而言之&#xff0c;原型是一个 Maven 项目模板工具包。原型被定义为一…...

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…...

(二 十 二)趣学设计模式 之 备忘录模式!

目录 一、 啥是备忘录模式&#xff1f;二、 为什么要用备忘录模式&#xff1f;三、 备忘录模式的实现方式四、 备忘录模式的优缺点五、 备忘录模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…...

物联网同RFID功能形态 使用场景的替代品

在物联网&#xff08;IoT&#xff09;和自动识别技术领域&#xff0c;除了RFID标签外&#xff0c;还有一些其他技术产品可以在形态和大小上与RFID标签相似&#xff0c;同时提供类似或更强大的功能。以下是几种能够替代RFID标签的产品&#xff1a; 一、NFC标签 NFC&#xff08;…...

蓝陵科技:以“数字底座”之力,全面布局影视行业工业化

“在数字技术与文化产业深度融合的今天&#xff0c;海南蓝陵数字科技有限公司&#xff08;以下简称蓝陵科技&#xff09;凭借其卓越的渲染实力和前瞻性的战略布局&#xff0c;正逐步成为推动中国影视行业工业化进程的重要力量。2025年2月&#xff0c;蓝陵科技不仅获得了陵水融媒…...

React + TypeScript 实战指南:用类型守护你的组件

TypeScript 为 React 开发带来了强大的类型安全保障&#xff0c;这里解析常见的一些TS写法&#xff1a; 一、组件基础类型 1. 函数组件定义 // 显式声明 Props 类型并标注返回值 interface WelcomeProps {name: string;age?: number; // 可选属性 }const Welcome: React.FC…...

本地部署大数据集群前置准备

1. 设置VMware网段 虚拟网络编辑器——更改设置——选择VMnet8——子网改成192.168.88.0——NAT设置——网关设置为192.168.88.2 2. 下载CentOS操作系统 下载CentOS 7.6(1810)版本 3. 在VMware中安装CentOS操作系统 创建新的虚拟机——典型——安装光盘映像文件——输入账…...

016.3月夏令营:数理类

016.3月夏令营&#xff1a;数理类&#xff1a; 中国人民大学统计学院&#xff1a; http://www.eeban.com/forum.php?modviewthread&tid386109 北京大学化学学院第一轮&#xff1a; http://www.eeban.com/forum.php?m ... 6026&extrapage%3D1 香港大学化学系夏令营&a…...

历年北京理工大学计算机复试上机真题

历年北京理工大学计算机复试上机真题 在线评测&#xff1a;https://app2098.acapp.acwing.com.cn/ 分段函数 题目描述 编写程序&#xff0c;计算下列分段函数 yf(x) 的值。 当 0< x <2&#xff0c;y -x2.5&#xff1b;当 2< x <4&#xff0c;y2-1.5(x-3)(x-3)…...

Linux的缓存I/O和无缓存IO

一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域&#xff0c;存放用来接收用户输入和用于计算机输出的数据&#xff0c;以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作&#xff08;标准IO操作&#xff09;。为什么存在C标准I/O库…...

题目 3216 ⭐团建⭐【DFS】蓝桥杯2024年第十五届省赛

小蓝正在和朋友们团建&#xff0c;有一个游戏项目需要两人合作&#xff0c;两个人分别拿到一棵大小为 n 和 m 的树&#xff0c;树上的每个结点上有一个正整数权值 c 1 , c 2 , ⋅ ⋅ ⋅ , c n c_1, c_2, , c_n c1​,c2​,⋅⋅⋅,cn​, d 1 , d 2 , ⋅ ⋅ ⋅ , d m d_1, d_…...

从0到1入门Linux

一、常用命令 ls 列出目录内容 cd切换目录mkdir创建新目录rm删除文件或目录cp复制文件或目录mv移动或重命名文件和目录cat查看文件内容grep在文件中查找指定字符串ps查看当前进程状态top查看内存kill终止进程df -h查看磁盘空间存储情况iotop -o直接查看比较高的磁盘读写程序up…...

战略合作升级 | 大势智慧携手广西地测院,共绘智慧测绘新蓝图

2月26日&#xff0c;武汉大势智慧科技有限公司&#xff08;以下简称“大势智慧”&#xff09;与广西壮族自治区地理信息测绘院&#xff08;以下简称“广西地测院”&#xff09;在南宁举行战略合作升级签约仪式暨技术交流座谈会。 大势智慧董事长黄先锋与广西地测院党委书记、院…...

批量插入对比-mysql-oracle-sqlserver

单个插入mysql //单个 根据有值就插入&#xff0c;无值不改动 <insert id"insertOne" keyColumn"id" keyProperty"id"parameterType"com.test.log" useGeneratedKeys"true">insert into test_mysql_tab<trim p…...

jmeter阶梯式压测

1、安装plugins manager 链接 Install :: JMeter-Plugins.org 将下载下来的jar包放置在jemter文件的lib\ext下&#xff0c; 重启Jmeter 2、安装阶梯测试第三方插件 在Available Plugins中找到Custom Thread Groups&#xff0c;点击Apply Changes and Restart JMeter后等待插件…...

nginx.conf 完整配置总结概述

----------------------------------------------------------- /usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件 /usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx /usr/local/nginx/sbin/nginx -s stop # 停止 Nginx /usr/local/nginx/sbin/nginx …...

docker常规命令和高级用法

Docker 是一个强大的容器化平台&#xff0c;提供了丰富的命令和功能来管理容器、镜像、网络和存储等。以下是一些常用的 Docker 命令及其高级用法。 1. 容器管理 1.1 启动容器 基本用法&#xff1a; docker run <image_name>示例&#xff1a; docker run ubuntu高级用法…...

Spark核心之02:常用算子详解

1、RDD操作详解 # 启动spark-shell spark-shell --master local[2] 1.1 基本转换 1) map map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。 举例&#xff1a; scala> val a sc.parallelize(1 …...

【CSS—前端快速入门】CSS 常用样式

CSS 常用 CSS 样式 1. 前端样式查询网站&#xff1a; MDN Web Docs (mozilla.org) w3school 2. border 2.1 借助 MDN 了解 border 我们借助 MDN 网站来学习 border 样式的使用&#xff1a; 2.2 border 常见属性 保存代码&#xff0c;打开页面&#xff1a; 对于标签不同样式的…...

探索DeepSeek-R1的核心秘诀:突破SFT技术的新篇章

摘要 近期&#xff0c;一种显著超越SFT&#xff08;Sequence-to-Sequence with Teacher Forcing&#xff09;的技术成为研究焦点。作为o1/DeepSeek-R1的核心秘诀&#xff0c;该技术不仅提升了模型性能&#xff0c;还成功应用于多模态大型模型中&#xff0c;实现了功能扩展。与传…...

DailyNotes 增加提醒功能

TODO&#xff1a;准备给 DailyNotes 增加一个提醒功能&#xff0c;准备接入 AI 来做一些事情。试了一下&#xff0c;非常靠谱。 具体 DailyNotes 和 Ollama 的交互方式&#xff0c;可以直接调用命令行&#xff0c;也可以走网络API。 rayuK2CD9WCYN4 ~ % ollama run deepseek-…...

[Computer Vision]实验六:视差估计

目录 一、实验内容 二、实验过程 2.1.1 test.py文件 2.1.2 test.py文件结果与分析 2.2.1 文件代码 2.2.2 结果与分析 一、实验内容 给定左右相机图片&#xff0c;估算图片的视差/深度&#xff1b;体现极线校正&#xff08;例如打印前后极线对&#xff09;、同名点匹配…...

软件测试基础:功能测试知识总结

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中…...

171. Excel 表列序号

Excel 表列序号 题目描述尝试做法推荐做法 题目描述 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: colum…...

03.05 QT事件

实现一个绘图工具&#xff0c;具备以下功能&#xff1a; 鼠标绘制线条。 实时调整线条颜色和粗细。 橡皮擦功能&#xff0c;覆盖绘制内容。 撤销功能&#xff0c;ctrl z 快捷键撤销最后一笔 程序代码&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET…...

es如何进行refresh?

在 Elasticsearch 中,refresh 操作的作用是让最近写入的数据可以被搜索到。以下为你介绍几种常见的执行 refresh 操作的方式: 1. 使用 RESTful API 手动刷新 你可以通过向 Elasticsearch 发送 HTTP 请求来手动触发 refresh 操作。可以针对单个索引、多个索引或者所有索引进…...

unity6 打包webgl注意事项

webgl使用资源需要异步加载 使用localization插件时要注意&#xff0c;webgl不支持WaitForCompletion&#xff0c;LocalizationSettings.InitializationOperation和LocalizationSettings.StringDatabase.GetTable都不能用 web里想要看到具体的报错信息调试开启这两个&#xf…...

【前端基础】Day 9 PC端品优购项目

目录 1. 品优购项目规划 1.1 网站制作流程 1.2 品优购项目整体介绍 1.3 学习目的 1.4 开发工具以及技术栈 1.5 项目搭建工作 1.6 网站favicon图标 1.7 网站TDK三大标签SEO优化 2. 品优购首页制作 2.1 常见模块类命名 2.2 快捷导航shortcut制作 2.3 header制作 2.4…...

【django初学者项目】

下面为你详细介绍如何创建一个简单有趣的 Django 项目——博客系统。这个项目允许用户创建、查看、编辑和删除博客文章。 步骤 1&#xff1a;环境准备 首先&#xff0c;确保你已经安装了 Python 和 pip。然后&#xff0c;创建一个虚拟环境并激活它&#xff0c;接着安装 Django…...

自学微信小程序的第十三天

DAY13 1、使用map组件在页面中创建地图后&#xff0c;若想在JS文件中对地图进行控制&#xff0c;需要通过地图API来完成。先通过wx.createMapContext()方法创建MapContext&#xff08;Map上下文&#xff09;实例&#xff0c;然后通过该实例的相关方法来操作map组件。 const m…...

gitbash忽略未追踪文件的解决方式

文章目录 问题描述&#xff0c;如下图解决方式 问题描述&#xff0c;如下图 因为这些事项目本地运行或者IDE环境配置时产生的文件或目录&#xff0c;手动删除后还来出现&#xff0c;怎么实现忽略不显示呢&#xff1f; 解决方式 查看项目的根目录下是否存在.gitignore文件&…...

React生态、Vue生态与跨框架前端解决方案

React生态系统 1 基础框架 React.js 是一个用于构建UI的JavaScript库。 2 应用框架 Next.js 是基于React.js的完整应用框架。主要负责应用如何工作&#xff1a; 应用架构&#xff1a;路由系统、页面结构渲染策略&#xff1a;服务端渲染(SSR)、静态生成(SSG)、客户端渲染性…...

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks

GPPT: Graph Pre-training and Prompt Tuning to Generalize Graph Neural Networks KDD22 推荐指数&#xff1a;#paper/⭐⭐#​ 动机 本文探讨了图神经网络&#xff08;GNN&#xff09;在迁移学习中“预训练-微调”框架的局限性及改进方向。现有方法通过预训练&#xff08…...

【Elasticsearch】Elasticsearch 的`path.settings`是用于配置 Elasticsearch 数据和日志存储路径的重要设置

Elasticsearch 的path.settings是用于配置 Elasticsearch 数据和日志存储路径的重要设置&#xff0c;这些路径在elasticsearch.yml配置文件中定义。以下是关于 Elasticsearch 的路径设置&#xff08;path.data和path.logs&#xff09;以及快照存储库配置的详细说明&#xff1a;…...

使用vue3+element plus 的table自制的穿梭框(支持多列数据)

目录 一、效果图 二、介绍 三、代码区 一、效果图 话不多说&#xff0c;先上图 二、介绍 项目需要&#xff1a;通过穿梭框选择人员信息&#xff0c;可以根据部门、岗位进行筛选&#xff0c;需要显示多列&#xff08;不光显示姓名&#xff0c;还包括人员的一些基础信息&…...

学习笔记:IC存储总结(ROM,RAM, EEPROM, Flash, SRAM, DRAM, DDL)

一&#xff0c;概述 半导体存储器是一种可以存储大量二值信息的半导体器件。在电子计算机及一些其他的数字系统的工作过程中&#xff0c;需要对大量的数据进行储存。由于数据处理的数据量和运算速度的要求&#xff0c;因此把存储量和存取速度作为衡量存储器的重要指标。 在电子…...

本地部署pangolin获取谱系,从而达到预测新冠的流行趋势

步骤 1&#xff1a;安装Docker 注&#xff1a;此步骤忽略&#xff0c;可通过Docker官网对于文档进行安装,地址如下 Docker: Accelerated Container Application Developmenthttps://www.docker.com/ 步骤 2&#xff1a;拉取Pangolin镜像 docker pull staphb/pangolin:latest 步…...

【Python】文件File处理详细解释,附示例(文件操作、模式、编码、指针、调试、大文件处理、文件管理等)

文件 File 处理方法 1. 前言2. 文件基础操作2.1 文件打开与关闭2.2 with 语句(上下文管理器)3. 文件模式详解3.1 基础模式3.2 扩展模式4. 文件读写操作4.1 读取内容4.2 写入内容5. 文件指针和随机访问5.1 seek(offset.whence)5.2 二进制模式下的指针操作6. 文件编码处理6.1 指定…...

Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南

以下是 Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南&#xff1a; Windows 10/11 系统下 Git 的详细安装步骤和基础设置指南 一、详细安装步骤1. 下载 Git 安装包2. 运行安装程序1. 双击安装包&#xff0c;按以下选项配置&#xff1a;2. 点击 Install 完成安装。 二…...

RabbitMQ的四种交换机

RabbitMQ交换机 什么是RabbitMQ RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用于在分布式系统中存储和转发消息。它基于 AMQP&#xff08;高级消息队列协议&#xff09;实现&#xff0c;支持多种消息传递模式&#xff0c;广泛应用于异步通信、应用解耦、负载均衡…...

探秘基带算法:从原理到5G时代的通信变革【一】引言

文章目录 一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究内容与创新点 本博客为系列博客&#xff0c;主要讲解各基带算法的原理与应用&#xff0c;包括&#xff1a;viterbi解码、Turbo编解码、Polar编解码、CORDIC算法、CRC校验、FFT/DFT、QAMtiaozhi/解调、QPSK调制/解…...

ES中数据刷新策略refresh

在 Elasticsearch 中&#xff0c;插入数据时的 refresh 参数控制文档在写入后何时对搜索可见&#xff0c;其行为直接影响数据可见性和系统性能。以下是 refresh 参数的三个可选值&#xff08;true、false、wait_for&#xff09;的详细说明及适用场景&#xff1a; 1. refreshtr…...

【向量数据库Weaviate】 和Elasticsearch的区别

Weaviate 和 Elasticsearch 是两种不同类型的数据库&#xff0c;设计目标和应用场景有显著差异。以下是它们的核心区别和适用场景的详细对比&#xff1a; 1. 设计目标与核心能力 维度WeaviateElasticsearch核心能力向量数据库 图数据库&#xff08;语义搜索优先&#xff09;全…...

【Wireshark 02】抓包过滤方法

一、官方教程 Wireshark 官网文档 &#xff1a; Wireshark User’s Guide 二、显示过滤器 2.1、 “数据包列表”窗格的弹出过滤菜单 例如&#xff0c;源ip地址作为过滤选项&#xff0c;右击源ip->prepare as filter-> 选中 点击选中完&#xff0c;显示过滤器&#…...

【零基础到精通Java合集】第十五集:Map集合框架与泛型

课程标题:Map集合框架与泛型(15分钟) 目标:掌握泛型在Map中的键值类型约束,理解类型安全的键值操作,熟练使用泛型Map解决实际问题 0-1分钟:泛型Map的意义引入 以“字典翻译”类比泛型Map:明确键和值的类型(如英文→中文)。说明泛型Map的作用——确保键值对的类型一…...

三参数水质在线分析仪:从源头保障饮用水安全

【TH-ZS03】饮用水安全是人类健康的重要保障&#xff0c;其质量直接关系到人们的生命健康。随着工业化、城市化的快速发展&#xff0c;水体污染问题日益严峻&#xff0c;饮用水安全面临着前所未有的挑战。为了从源头保障饮用水安全&#xff0c;科学、高效的水质监测手段必不可少…...

Java8-Stream流介绍和使用案例

Java 8 引入了 Stream API&#xff0c;它提供了一种高效且声明式的方式来处理集合数据。Stream 的核心思想是将数据的操作分为中间操作&#xff08;Intermediate Operations&#xff09;和终端操作&#xff08;Terminal Operations&#xff09;&#xff0c;并通过流水线&#x…...