第一次面试的经历(java开发实习生)
面试官的问题
- 我想问一下你这边有做过什么项目吗?
- 你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?(项目经验)
- 八大基本数据类型是什么?(基础)
- 你说一下long类型能直接运转吗?应该是问是否可以直接运算?(基础)
- 你了解单例模式吗?你可以讲一下吗(设计模式)
- 懒汉模式跟饿汉模式有什么区别?
- 说一下事务的几种特性?(事务)
- 说一下你在做项目的过程中都遇到过哪些异常吗?(异常)
- 说一下时间常用的三个类?(基础)
- 说一下日历的三个方法?
- 说一下session的生命周期吧。(session)
- 你在做项目的过程中有遇到过浮点精度的丢失吗?你是怎么解决的?
- 那我们有一个如果通过浮点进行计算的话,你会选择哪个数据类型去进行计算?
- 你能说一下常用的注解吗?spring的?还是其他呢?
- 你对线程了解吗?
- 线程跟进程有什么区别?
- 那你说一下什么是线程安全?
- 说一下==和equals的区别?
- 那你平常有用过linux吗?可以简单说一下一些常用命令吗?
问题解决
- 我想问一下你这边有做过什么项目吗?
我觉得挑一两个比较熟练的项目去说即可
- 你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?
挑一个最熟的项目去说。
- 八大基本数据类型是什么?
byte、short、int、long、float、double、char、boolean
- 你说一下long类型能直接运转吗
(我觉得是问long类型的数据可以直接运算吗)
long类型的数据是可以直接运算的,当你在一个表达式中混合使用 int 和 long 类型的值时,int 类型的值会被自动提升为 long 类型,以确保整个表达式的结果是 long 类型的。
- 你了解单例模式吗?你可以讲一下吗
单例模式(Singleton Pattern)是一种常用的软件设计模式,它的目的是确保一个类仅有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源访问,或者当实例化对象很消耗资源或很耗时,且这些资源或实例在全局只需要一个时非常有用。常见的单例模式的实现方式主要有:懒汉模式和饿汉模式。
- 懒汉模式跟饿汉模式有什么区别?
-
可以从对象的初始化时机、线程安全性以及资源利用方面等方面进行对比:
-
- 初始化时机
- 懒汉模式:懒汉模式是一种
延迟加载
的单例模式。它的特点是在第一次使用时创建实例对象
,而不是在类加载时就创建。这种模式避免了在不需要实例对象时的资源浪费
,只有在需要时才进行创建。 - 饿汉模式:饿汉模式则是一种
在类加载时就创建实例
的单例模式。它的特点是无论是否会被使用到,实例对象都在类加载时被创建。这种方式可以确保在任何情况下都能获取到同一个实例对象,但是可能会导致一些性能和资源上的浪费
,特别是在某些情况下实例对象并没有被使用到。
-
- 线程安全性
- 懒汉模式:懒汉模式本身是
非线程安全的
,因为存在多个线程同时调用getInstance()方法并同时进入判断语句的可能性,从而导致创建了多个实例。为了实现线程安全,可以在getInstance()方法上添加synchronized关键字
,但这会带来性能上的开销。此外,还可以使用双重检查锁定(Double-Checked Locking)等方式来减少同步开销。 - 饿汉模式:饿汉模式是
线程安全
的,因为实例对象已经在类加载时就创建好了,不存在多线程环境下的竞争问题。
-
- 资源利用与性能
- 懒汉模式:懒汉模式可以节省资源,因为它避免了在不需要实例对象时的资源浪费。但是,由于它需要在第一次使用时进行初始化,如果初始化过程比较复杂或者耗时较长,可能会影响到性能。
- 饿汉模式:饿汉模式在资源利用方面可能不如懒汉模式灵活,因为它无论是否会被使用到都会创建实例对象。但是,由于实例对象在类加载时就已经创建好了,所以在第一次调用时速度会更快,因为不需要进行初始化。
-
-
适用场景
- 懒汉模式:适用于在第一次使用时才进行对象创建的场景,并且在实例对象初始化过程中没有复杂的线程安全要求。例如,文件管理器就是一个典型的例子,因为在应用程序启动时可能不需要立即读写文件,而是在需要的时候才进行相关操作。
- 饿汉模式:适用于需要在程序启动时就初始化的资源,且在整个应用程序的生命周期中都需要使用到的场景。例如,日志记录器就比较适合使用饿汉模式,因为日志记录功能通常需要在应用程序启动之初就准备好,并在整个应用程序的运行过程中记录日志消息。
- 综上所述,懒汉模式和饿汉模式各有优缺点,在实际应用中应根据具体场景进行综合考虑和设计。
- 说一下事务的几种特性?
- 事务具有四个基本特性,这四个特性也简称为ACID特性,具体包括:
- 原子性(Atomicity):原子性是指事务中的所有操作要么全部完成,要么全部不执行,它们是一个不可分割的工作单位。如果在执行事务的过程中发生了任何错误或者故障,那么已经执行的操作将会被撤销(回滚),整个事务就像是一个从未发生过的操作。这一特性确保了事务的完整性和一致性。
- 一致性(Consistency):一致性是指事务必须使数据库从一个一致性状态转变到另一个一致性状态。在事务开始之前和事务结束之后,数据库的完整性约束(如主键约束、外键约束等)没有被破坏,所有的数据都保持逻辑上的一致性。如果在执行事务的过程中,数据库的完整性被破坏,那么事务将被终止,并且已经执行的操作会被回滚。
- 隔离性(Isolation):隔离性是指多个事务并发执行时,各个事务之间是相互隔离的,一个事务的执行不能被其他事务所干扰。数据库系统提供了一定级别的隔离性,使得并发执行的事务之间能够互不干扰,从而保证了数据的正确性和一致性。隔离性通常通过锁(如行锁、表锁等)或者多版本并发控制(MVCC)等机制来实现。
- 持久性(Durability):持久性也称永久性,是指一旦事务被提交,它对数据库的修改就是永久性的,即使系统发生故障也不会丢失。数据库系统通过日志和恢复机制来保证事务的持久性,即使发生系统故障,系统也能够通过日志来恢复已经提交的事务对数据库的修改。
- 说一下你在做项目的过程中都遇到过哪些异常吗?
(随便列举一些)
- 代码异常(Code Exceptions):
- 空指针异常(NullPointerException):尝试访问或操作一个未被初始化的对象时抛出。常见于忘记检查对象是否为null就直接使用。
- 数组越界异常(ArrayIndexOutOfBoundsException):访问数组时使用了无效的索引(索引小于0或大于等于数组大小)。
- 类型转换异常(ClassCastException):强制类型转换时,被转换的对象不是目标类型或其子类的实例。
- 除数为零异常(ArithmeticException / / by zero):进行除法运算时,除数为零。
- 数据异常(Data Exceptions):
- 数据格式错误:如解析JSON或XML数据时,数据格式不符合预期。
- 数据完整性异常:如数据库中的外键约束失败,尝试插入或更新数据时违反了数据完整性规则。
- 数据找不到异常:如查询数据库时,根据给定的条件没有找到相应的数据。
- 网络异常(Network Exceptions):
- 连接超时(ConnectTimeoutException):尝试建立网络连接时,连接请求在等待响应时超时。
- 读取超时(SocketTimeoutException):从连接中读取数据时,操作超时。
- 网络不可达(UnknownHostException):无法解析主机名。
- 连接拒绝(ConnectionRefusedError):目标机器拒绝连接请求。
- 系统资源异常(System Resource Exceptions):
- 内存溢出(OutOfMemoryError):JVM在尝试分配内存时,没有足够的内存空间可用。
- 文件不存在(FileNotFoundException):尝试访问的文件或目录不存在。
- 权限不足(SecurityException / AccessDeniedException):没有足够的权限执行某个操作,如读写文件、访问网络资源等。
- 第三方服务异常(Third-Party Service Exceptions):
- 服务不可用(ServiceUnavailableException):依赖的第三方服务暂时不可用。
- API限制(RateLimitException):对第三方API的请求超过了其限制(如请求频率限制)。
- 认证失败(AuthenticationException):访问第三方服务时,认证信息无效或已过期。
- 逻辑异常(Logical Exceptions):
- 业务逻辑错误:如订单金额计算错误、库存不足但订单仍被处理等。
- 状态不一致:系统的某个状态与预期不符,导致后续操作无法进行。
- 说一下时间常用的三个类?
LocalDate、LocalTime、LocalDateTime。(随便列举三个即可)
- 在Java中,处理时间常用的类分别是在java.util.Date、java.util.Calendar以及Java 8引入的java.time三个包下的类(如LocalDate、LocalTime、LocalDateTime等)
- 说一下日历的三个方法?
提到与日历相关的操作时,我们通常会想到java.util.Calendar类,因为它是一个抽象类,提供了操作日历字段(如年、月、日、小时等)的方法。从Java 8开始,引入了新的日期时间API(位于java.time包下),提供了更好的日期时间处理能力。
- LocalDateTime常用方法的介绍:
-
- 创建LocalDateTime对象
- now():创建一个表示当前日期和时间的LocalDateTime对象。
- of():通过指定的年、月、日、时、分、秒(以及可选的纳秒)来创建一个LocalDateTime对象。例如:LocalDateTime.of(2023, Month.JANUARY, 1, 12, 0, 0)。
-
- 获取LocalDateTime对象的属性
- getYear()、getMonth()、getDayOfMonth()、getHour()、getMinute()、getSecond()等:分别用于获取LocalDateTime对象中的年、月、日、小时、分钟和秒等属性。
-
- 修改LocalDateTime对象的属性
- withYear()、withMonth()、withDayOfMonth()、withHour()、withMinute()、withSecond()等:将LocalDateTime对象的某个属性设置为指定的值,并返回一个新的LocalDateTime对象,原对象保持不变(因为LocalDateTime是不可变的)。
-
- 日期时间的加减
- plusYears()、plusMonths()、plusDays()、plusHours()、plusMinutes()、plusSeconds()等:在LocalDateTime对象上添加指定的时间段,并返回一个新的LocalDateTime对象。minusYears()、minusMonths()、minusDays()、minusHours()、minusMinutes()、minusSeconds()等:从LocalDateTime对象中减去指定的时间段,并返回一个新的LocalDateTime对象。
-
- 比较LocalDateTime对象
- isBefore(LocalDateTime other):判断当前对象是否早于指定的LocalDateTime对象。
- isAfter(LocalDateTime other):判断当前对象是否晚于指定的LocalDateTime对象。
-
- 格式化LocalDateTime对象
- format(DateTimeFormatter formatter):将LocalDateTime对象格式化为指定的日期和时间格式的字符串。例如:DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”); String formattedDateTime = dateTime.format(formatter);。
-
- 计算时间差
- 虽然LocalDateTime本身不提供直接计算时间差的方法,但可以使用Duration类或ChronoUnit类来计算两个LocalDateTime对象之间的时间差。
- 使用Duration类:Duration duration = Duration.between(start, end);,然后可以通过duration对象获取到时间差的具体数值,如秒、毫秒等。
- 使用ChronoUnit类:可以指定计算时间差的单位,如年、月、日、小时等。例如:long days = ChronoUnit.DAYS.between(start, end);。
-
- 说一下session的生命周期吧。
- Session的创建
- 创建时机:Session在用户第一次访问服务器并请求JSP、Servlet等
动态资源
时创建。只访问HTML、图片等静态资源
并不会触发Session的创建。如果需要,可以通过调用request.getSession(true)来强制生成Session。 - 存储位置:Session存储在服务器端,通常保存在服务器的内存中,以便快速存取。
- 创建时机:Session在用户第一次访问服务器并请求JSP、Servlet等
- Session的维护
- 更新最后访问时间:只要用户继续访问服务器,每次请求无论是否读写Session,服务器都会更新Session的最后访问时间,并维护该Session。这表示用户的Session处于“活跃”状态。
- session的唯一性:每个用户都会有一个独立的Session,通过Session ID来唯一标识。Session ID通常通过Cookie(名为JSESSIONID)发送给客户端,以便服务器能够识别不同的用户会话。
- Session的销毁
- 自动销毁:当Session的生命周期超时(即长时间没有活动),服务器会自动将其从内存中清除。这个时间通常是可配置的,默认在Tomcat中为30分钟。
- 手动销毁:开发者可以通过调用Session的invalidate()方法来手动销毁Session。这通常用于登出、超时等场景。
- Session生命周期的设置
- 在Servlet中设置:通过调用session.setMaxInactiveInterval(int interval)方法,以秒为单位设置Session的超时时间。
- 在web.xml中设置:在web应用的web.xml文件中,
通过<session-config>标签的<session-timeout>子标签设置Session的超时时间,单位为分钟。
- 在Tomcat的全局配置中设置:在Tomcat的conf/web.xml文件中,也可以设置全局的Session超时时间,这将影响Tomcat服务器上所有未指定超时时间的web应用。
- Session的注意事项
- 内存管理:由于Session存储在
服务器端
,如果Session内容过于复杂或数量过多,可能会导致内存溢出。因此,应尽量减少Session中存储的数据量。 - Cookie依赖:Session的正常运行依赖于客户端浏览器的Cookie支持。如果浏览器禁用了Cookie,则需要通过URL地址重写等方式来传递Session ID。
- 内存管理:由于Session存储在
- 你在做项目的过程中有遇到过浮点精度的丢失吗?你是怎么解决的?
- 那我们有一个如果通过浮点进行计算的话,你会选择哪个数据类型去进行计算?
-
在项目开发过程中,确实经常会遇到
浮点数精度丢失的问题
,这主要是因为计算机内部使用二进制来表示浮点数
,而某些十进制小数在二进制下无法精确表示
,导致精度损失。这种问题在财务计算、科学计算等领域尤为关键。 -
以下是一些我遇到并解决浮点精度丢失的方法:
- 使用BigDecimal类:在Java中,BigDecimal类提供了一种精确的浮点数计算方式。这个类可以表示任意精度的十进制数,并且可以执行精确的数学运算。当需要处理精确的小数运算时,可以使用BigDecimal来代替基本数据类型float和double。
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal sum = a.add(b); // 结果为 0.3
-
设置浮点数的精度:如果必须使用float或double类型,并且可以接受一定程度的精度损失,可以通过设置浮点数的小数点后的位数来尽量减小误差。这通常通过四舍五入等方式实现,但需要注意,这并不能完全避免精度丢失。
-
避免不必要的浮点数运算:在算法设计时,尽量避免不必要的浮点数运算,或者通过数学变换将浮点数运算转化为整数运算。例如,在计算百分比时,可以先将百分比乘以100转换为整数进行计算,最后再除以100得到结果。
- 了解浮点数在计算机中的表示:深入理解浮点数在计算机中的表示方式,以及为什么会有精度丢失的问题,有助于在设计算法时考虑到这一点,并采取相应的措施来减少误差。
-
使用第三方库:有些第三方库提供了更精确的浮点数运算功能,可以考虑使用这些库来替代Java标准库中的浮点数运算。
-
测试和验证:在开发过程中,对涉及到浮点数运算的代码进行充分的测试和验证,确保在各种情况下都能得到预期的结果。特别是要关注那些可能导致精度丢失的边界情况。
-
文档和注释:在代码中添加适当的文档和注释,说明哪些部分使用了浮点数运算,并可能存在精度丢失的问题。这样有助于其他开发人员理解代码,并在使用时采取相应的措施来避免或减轻精度丢失的影响。
-
通过上述方法,可以在一定程度上解决或减轻浮点数精度丢失的问题。然而,需要注意的是,由于计算机内部表示的限制,完全避免精度丢失是不可能的。因此,在开发过程中需要根据实际情况选择合适的方法来尽量减小误差。
- 你能说一下常用的注解吗?spring的?
spring与springMVC常用注解
- 你对线程了解吗?
- 线程跟进程有什么区别?
- 进程是指运行中的程序
- 进程是程序的一次执行过程,或是正在运行的一个程序,是动态过程,有它自身的产生、存在和消亡的过程。
- 线程是由进程创建的,线程的进程的一个实体
- 一个进程可有多个线程
- 那你说一下什么是线程安全?
- **线程安全(Thread Safety)**是编程中的一个重要概念,特别是在
并发编程
中。它指的是在多线程环境下,一个类的实例在被多个线程同时访问时,能够表现出正确的行为,并且其内部数据在并发访问时保持一致性、完整性和原子性,不会出现数据污染等意外的副作用
。 - 线程安全性的几个关键方面:
- 原子性:一个或多个操作在执行过程中不会被其他线程中断或干扰。
- 可见性:当一个线程修改了某个共享变量的值,其他线程能够立即得知这个修改。
- 有序性:程序执行的顺序按照代码的先后顺序执行(但在多线程环境下,由于指令重排序等原因,实际执行顺序可能与代码顺序不一致,这需要通过同步机制来确保有序性)。
- 线程安全问题的常见原因:
- 共享资源:多个线程访问同一个资源(如变量、数据结构等),且至少有一个线程会修改这个资源。
- 竞态条件:两个或多个线程在访问共享资源时,它们的执行顺序或执行结果依赖于它们的相对执行速度,这可能导致不可预测的结果。
- 实现线程安全的方法:
- 使用同步机制:如Java中的synchronized关键字、ReentrantLock等,可以确保同一时刻只有一个线程能执行某个方法或代码块。
- 避免共享状态:如果可能,尽量设计避免共享状态的数据结构或类。
- 使用线程安全的类:Java中提供了许多线程安全的类,如Vector、Hashtable(尽管这些类通常因为性能原因不被推荐使用),以及ConcurrentHashMap、CopyOnWriteArrayList等并发集合。
- 不可变对象:创建不可变对象(一旦创建,其状态就不能被改变的对象),这样的对象自然是线程安全的。
- 使用并发工具:如CountDownLatch、CyclicBarrier、Semaphore等,可以帮助管理复杂的并发场景。
- 注意事项:
- 过度使用同步可能会导致性能问题,因为它限制了并发性。
- 在设计线程安全的类时,需要考虑其使用的上下文,因为线程安全通常是有代价的。
- 并不是所有的类都需要是线程安全的,只有那些会被多个线程同时访问且至少有一个线程会修改其状态的类才需要关注线程安全。
- 说一下==和equals的区别?
-
== :
- == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
- 1、比较的是操作符两端的操作数是否是同一个对象。
- 2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。
- 3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为true,如: int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆。
- == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
-
equals:
- equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。
-
总结:
所有比较是否相等时,都是用equals 并且在对常量相比较时,把常量写在前面,因为使用object在前面的话,object可能为null ,则发生空指针异常。- 在阿里的代码规范中只使用equals ,阿里插件默认会识别,并可以快速修改,推荐安装阿里插件来排查老代码使用“==”,替换成equals
- 那你平常有用过linux吗?可以简单说一下一些常用命令吗?
-
cd:进入到指定目录
-
ls:展示目录以及目录下的文件,-a展示隐藏文件
-
date:系统时间命令
-
clear:清屏
-
whoami:查看当前登录用户
-
shutdown:关机
-
init 0:也表示关机
-
reboot:重启
-
init 6:关机
-
grep:搜索命令(通过关键字过滤搜索条件)
-
echo:输出指定内容
-
>:重定向符:将左侧命令的结果,覆盖写入到符号右侧指定的文件中
-
>>:重定向符:将左侧命令的结果,追加写入到符号右侧指定的文件中
-
wc:统计文件的行数、单词数量等
-
|:管道符:将管道符左边命令的结果,作为右边命令的输入(可配合grep命令和wc命令使用)
-
&&:左边命令执行成功,再执行右边的命令
-
||: 左边命令执行失败,再执行右边的命令
-
ps:查看进程的状态
-
kill:关闭进程
-
vi/vim:进入文本编辑器
-
文件操作命令
- touch:主要作用是用来改变文件或目录的访问和修改时间。如果指定的文件或目录不存在,touch 命令会创建一个空的文件。
- cat:查看文本内容并输出到控制台上
- head:从头开始看文件。head -100 1.txt,查看前100行
- tail:从后开始查看文件。tail -100 1.txt,查看后100行。常用来查看日志。
- mkdir 创建文件夹。mkdir -p 当父目录不存在时,同时创建父目录
- mv:移动文件/文件夹
- cp:拷贝文件/文件夹
- rm:删除文件,-r表示删除文件夹
- pwd:显示当前目录
-
文件压缩解压
tar 压缩(解压)命令。常用组合命令
tar -xvf apache-tomcat-9.tar 解压tomcat压缩文件,显示详细过程
tar -zxvf apache-tomcat-9.tar.gz 解压zip格式的压缩文件
tar -zxvf apache-tomcat-9.tar.gz -C mydir 解压到mydir目录下。
tar -cvf my.tar apache/ 压缩apache,并命名为my.tar-c 创建压缩包
-x 解压
-v 回显
-f <指定包名>
-z 是否使用gzip格式压缩
- 权限控制方面
- groupadd:新增用户组
- groupdel:删除用户组
- groups:查看用户的用户组所属
- useradd -g 组名 用户名:给指定用户组新增用户
- usermod:修改用户的属性
- userdel:删除用户
- password:修改用户密码
- su:切换用户
- chmod:修改用户对文件操作的权限
- 防火墙配置
- systemctl status firewalld:查看防火墙的状态
- systemctl stop firewalld:关闭防火墙
- systemctl disable firewalld:关闭防火墙自启动
- firewall-cmd --list-ports:查看防火墙开放的端口
- irewall-cmd --add-port=80/tcp --permanent:开发指定端口,–permanent表示永久生效
- firewall-cmd --reload:重新加载防火墙配置
- firewall-cmd --remove-port=80/tcp --permanent:移除开放的端口
linux基础
自我总结
- 自我介绍不够流畅:
- java基础知识不扎实,一些基础概念说不明白
- 回答的时候没有思路,没有逻辑,都是想到什么就答什么的
- 太紧张了
相关文章:
第一次面试的经历(java开发实习生)
面试官的问题 我想问一下你这边有做过什么项目吗?你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?(项目经验)八大基本数据类型是什么?(基础)你说一下…...
GitHub Copilot API
1. 引言 GitHub Copilot:智能编程的革新者 在软件开发的浩瀚宇宙中,GitHub Copilot犹如一颗璀璨的新星,以其独特的魅力引领着智能编程的新纪元。作为GitHub与OpenAI合作推出的革命性工具,Copilot不仅仅是一个简单的代码补全插件…...
CobaltStrike的内网安全
1.上线机器的Beacon的常用命令 2.信息收集和网站克隆 3.钓鱼邮件 4.CS传递会话到MSF 5.MSF会话传递到CS 1上线机器的Beacon的常用命令 介绍:CobaltStrike分为服务端和客户端,一般我们将服务端放在kali,客户端可以在物理机上面࿰…...
Linux之进程控制(下)
目录 进程替换的概念 进程替换的函数 execl编辑 execlp execle execv execvp execve 上期,我们学习了进程创建,进程终止和进程等待,今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…...
Mac搭建anaconda环境并安装深度学习库
1. 下载anaconda安装包 根据自己的操作系统不同,选择不同的安装包Anaconda3-2024.06-1-MacOSX-x86_64.pkg,我用的还是旧的intel所以下载这个,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,如果mac用的是M1࿰…...
Linux:文件系统与日志分析
一、block与inode 1.1、概述 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。 文件数据包括实际数据…...
迈阿密色主题学科 HTML5静态导航源码
源码介绍 迈阿密色主题学科 HTML5静态导航源码,源码直接上传可用,有技术的可以拿去写个后端搜索调用百度接口,也可用于做引导页下面加你网址添加一个A标签就行了,很简单,需要的朋友就拿去吧 界面预览 源码下载 迈阿…...
Qt 基础组件速学 鼠标和键盘事件
学习目标: 鼠标事件和键盘事件应用 前置环境 运行环境:qt creator 4.12 学习内容和效果演示: 1.鼠标事件 根据鼠标的坐标位置,做出对应的事件。 2.键盘事件 根据键盘的输入做出对应操作 详细主要代码 1.鼠标事件 #include "main…...
【踩坑】解决undetected-chromedriver报错cannot connect to-chrome
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 更新: 发现一个非常好用的项目,直接内置uc: GitHub - seleniumbase/SeleniumBase: 📊 Pythons all-in…...
PyCharm 2024.1 版本更新亮点:智能编程,高效协作
目录 1. 前言2. 更新内容2.1 智能编码体验2.1.1 Hugging Face 文档预览2.1.2 全行代码补全 2.2 提升编辑器体验2.2.1 粘性行功能2.2.2 编辑器内代码审查 2.3 全新终端体验(测试版)2.3.1 新终端 Beta 2.4 智能助手(特定版本和专业用户…...
网络安全设备——蜜罐
网络安全设备蜜罐(Honeypot)是一种主动防御技术,它通过模拟真实网络环境中的易受攻击的目标,以吸引和监测攻击者的活动。具体来说,蜜罐是一种虚拟或实体的计算机系统,它模拟了一个真实的网络系统或应用程序…...
Java与Selenium配置及常见报错解决方法
Java与Selenium配置及常见报错解决方法 1. 简介 Java与Selenium是自动化测试中常用的工具和技术。正确配置开发环境并处理可能出现的问题,对于顺利开展测试工作至关重要。本文将为您详细介绍Java与Selenium的配置过程,并提供常见报错的解决方法。 2. …...
最新扣子(Coze)实战案例:使用图像流做超分,模糊图片秒变清晰,完全免费教程
🧙♂️ 大家好,我是斜杠君,手把手教你搭建扣子AI应用。 📜 本教程是《AI应用开发系列教程之扣子(Coze)实战教程》,完全免费学习。 👀 关注斜杠君,可获取完整版教程。👍Ἷ…...
数组相关内容
一、数组 就是一个集合,里面存放了相同类型的数据元素 特点: 1.数组中的每个数据元素都是相同的数据类型 2.数组是由连续内存位置组成的 二、一维数组 定义方式 1.数据类型 数组名[数组长度]; 2.数据类型 数组名[数组长度]{值1࿰…...
【Python机器学习】模型评估与改进——打乱划分交叉验证
打乱划分交叉验证是一种非常灵活的交叉验证策略。 在打乱划分交叉验证中,每次划分为训练集取样train_size个点,为测试集取样test_size个不相交的点。将这一划分方法重复n_iter次。 举例: import matplotlib.pyplot as plt import mglearnm…...
nodejs操作excel文件实例,读取sheets, 设置cell颜色
本代码是我帮客户做的兼职的实例,涉及用node读取excel文件,遍历sheets,给单元格设置颜色等操作,希望对大家接活有所帮助。 gen.js let dir"Z:\\武汉烟厂\\山东区域\\备档资料\\销区零售终端APP维护清单\\走访档案\\2024年6月…...
用GPT做足球预测案例分享
自从GPT出来后,一直想利用GPT的能力做点什么,想了很多项目,比如用GPT写小说,用GPT做股票分析,用GPT写营销文章,最终我选了一个比较有意思的方向:GPT足球预测。因为每天都有足球比赛,…...
代码随想录| 编辑距离
判断子序列[https://leetcode.cn/problems/is-subsequence/description/] 题意:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 思路:从动态规划, dp[i][j] 表示s的前i-1个元素和t的前j-1个元素相同的子序列元素的个数。 还要对d…...
MOJO编程语言的编译与执行:深入编译器与解释器的工作原理
引言 MOJO编程语言以其面向对象的特性和简洁的语法而受到开发者的欢迎。在MOJO的世界中,编译器和解释器是两个核心组件,它们负责将MOJO代码转换为机器可执行的指令。本文将探讨MOJO编译器和解释器的工作原理,以及它们如何在MOJO编程过程中发…...
nginx-限制客户端并发数
文章目录 前言一、ngx_http_limit_conn_module二、指令介绍1. limit_conn_zone2.limit_conn3. limit_conn_log_level4. limit_conn_status 案例未限制限制 总结 前言 瞬时大量用户访问服务器,导致服务器超载而宕机。 恶意请求攻击服务器,导致服务器超载…...
Vatee万腾平台:智能生活的新选择
在科技飞速发展的今天,智能生活已经不再是遥不可及的梦想,而是逐渐渗透到我们日常生活的方方面面。Vatee万腾平台,作为智能科技领域的佼佼者,正以其创新的技术、丰富的应用场景和卓越的用户体验,成为智能生活的新选择&…...
白嫖A100-interLM大模型部署试用活动,亲测有效-2.Git
申明 以下部分内容来源于活动教学文档: Docs git 安装 是一个开源的分布式版本控制系统,被广泛用于软件协同开发。程序员的必备基础工具。 常用的 Git 操作 git init 初始化一个新的 Git 仓库,在当前目录创建一个 .git 隐藏文件夹来跟踪…...
LeetCode 60.排序排列(dfs暴力)
给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下: "123""132""213""231""312""321" 给定…...
矩阵分析与应用1-矩阵代数基础
矩阵分析与应用1-矩阵代数基础 1 矩阵的基本运算2 矩阵的初等变换3 向量空间、线性映射与Hilbert空间4 内积与范数5 随机向量6 矩阵的性能指标7 逆矩阵与伪逆矩阵8 Moore-Penrose逆矩阵9 矩阵的直和与Hadamard积10 Kronecker积与Khatri-Rao积11 向量化与矩阵化12 稀疏表示与压缩…...
Vue的学习之生命周期
一、生命周期 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>Vue的学习</title><script src"vue.js" type"text/javascript" charset"utf-8"></script></head>&l…...
【MySQL】表的操作{创建/查看/修改/删除}
文章目录 1.创建表1.1comment:注释信息1.2存储引擎 2.查看表3.修改表3.1add添加列,对原数据无影响3.2drop删除列3.3modify修改列类型3.4change修改列名3.5rename [to]修改表名 4.删除表5.总结 1.创建表 CREATE TABLE table_name (field1 datatype,field…...
基于Python爬虫的城市二手房数据分析可视化
基于Python爬虫的城市二手房数据分析可视化 一、前言二、数据采集(爬虫,附完整代码)三、数据可视化(附完整代码)3.1 房源面积-总价散点图3.2 各行政区均价3.3 均价最高的10个小区3.4 均价最高的10个地段3.5 户型分布3.6 词云图四、如何更换城市一、前言 二手房具有价格普…...
这款新的 AI 语音助手击败了 OpenAI,成为 ChatGPT 最受期待的功能之一
OpenAI 推迟了 ChatGPT 令人印象深刻的语音模式,这让许多 AI 聊天机器人的粉丝感到不安,但他们现在可能已经被挖走了。法国人工智能开发商 Kyutai 推出了一款名为 Moshi 的实时语音 AI 助手。 Moshi 旨在通过语音(如 Alexa 或 Google Assista…...
CTS单测某个模块和测试项
1 ,测试单个模块命令 run cts -m <模块名> 比如:run cts -m CtsUsbTests模块名可以从测试报告中看,如下: 2, 测试单个测试项 run cts -m <模块名> -t <test_name> 比如:run cts -m ru…...
pytorch、pytorch_lightning、torchmetrics版本对应
目录 1.pytorch_lightning对应版本安装 2.PyTorch Lightning介绍 PyTorch Lightning 的作用: PyTorch Lightning 的基本用法: 报错:ModuleNotFoundError: No module named pytorch_lightning 这种报错一看就是缺了pytorch_lightning包&am…...
麒麟系统部署JeecgBoot
一、安装jdk 自带的即可,不必另外安装 二、安装MySQL 麒麟系统安装MySQL_麒麟系统安装万里数据库步骤-CSDN博客 三、安装Redis 麒麟系统安装Redis_麒麟上redis-CSDN博客 四、安装Nginx 1、下载 下载地址:https://redis.io/ 2、解压配置 tar .…...
要想贵人相助,首先自己得先成为贵人!
点击上方△腾阳 关注 转载请联系授权 在金庸江湖里,有两位大侠,一个是萧峰,一个是郭靖。 郭靖在《射雕英雄传》里是绝对的主角,在《神雕侠侣》当中也是重要的配角,甚至可以说是第二主角。 谈起郭靖,很多…...
使用块的网络 VGG
一、AlexNet与VGG 1、深度学习追求更深更大,使用VGG将卷积层组合为块 2、VGG块:3*3卷积(pad1,n层,m通道)、2*2最大池化层 二、VGG架构 1、多个VGG块后接全连接层 2、不同次数的重复块得到不同的架构&a…...
微信小程序性能与体验优化
1. 合理的设置可点击元素的响应区域大小; 比较常见的是页面的点击按钮太小,用户点击不到按钮,这样用户体验很不好。 2. 避免渲染页面耗时过长; 当页面渲染时间过长的话,会让用户感觉非常卡顿,当出现这种…...
Android14之获取包名/类名/服务名(二百二十三)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
FreeU: Free Lunch in Diffusion U-Net——【代码复现】
这篇文章发表于CVPR 2024,官网地址:ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net (CVPR2024 Oral) (github.com) 一、环境准备 提前准备好python、pytorch环境 二、下载项目依赖 demo下有一个requirements.txt文件, pip inst…...
第三方商城对接重构(HF202407)
文章目录 项目背景一、模块范围二、问题方案1. 商品模块整体来说这块对接的不是太顺利,梳理了几条大概的思路: 2. 订单模块3. 售后4. 发票5. 结算单 经验总结 项目背景 作为供应商入围第三方商城成功,然后运营了一段时间,第三方通…...
如何在Windows 11上复制文件和文件夹路径?这里提供几种方法
在Windows 11上复制文件或文件夹的路径就像在右键单击菜单中选择一个选项或按键盘快捷键一样简单。我们将向你展示如何在电脑上以各种方式进行操作。 从右键单击菜单 复制文件或文件夹路径的最简单方法是在该项目的右键单击菜单中选择一个选项。你也可以使用此方法复制多个项…...
大数据Spark 面经
1: Spark 整体架构 Spark 是新一代的大数据处理引擎,支持批处理和流处理,也还支持各种机器学习和图计算,它就是一个Master-worker 架构,所以整个的架构就如下所示: 2: Spark 任务提交命令 一般我们使用shell 命令提…...
绝区叁--如何在移动设备上本地运行LLM
随着大型语言模型 (LLM)(例如Llama 2和Llama 3)不断突破人工智能的界限,它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中,但到目前为止,它们理解和处理请求的能力还非常有限。然而,…...
Interview preparation--Https 工作流程
HTTP 传输的弊端 如上图,Http进行数据传输的时候是明文传输,导致任何人都有可能截获信息,篡改信息如果此时黑客冒充服务器,或者黑客窃取信息,则其可以返回任意信息给客户端,而且不被客户端察觉,…...
集成学习(三)GBDT 梯度提升树
前面学习了:集成学习(二)Boosting-CSDN博客 梯度提升树:GBDT-Gradient Boosting Decision Tree 一、介绍 作为当代众多经典算法的基础,GBDT的求解过程可谓十分精妙,它不仅开创性地舍弃了使用原始标签进行…...
后端工作之一:CrapApi —— API接口管理系统部署
一个API接口的网络请求都有这些基本元素构成: API接口大多数是由后端编写,前端开发人员进行请求调用 就是一个网络请求的流程。 API(Application Programming Interface)接口是现代软件开发中不可或缺的一部分。它们提供了一种…...
20240706 xenomai系统中网口(m2/minipcie I210网卡)的实时驱动更换
lspci 查看网口 查看网口驱动 1 ubuntu 查看网口驱动 在Ubuntu中,您可以使用lshw命令来查看网络接口的驱动信息。如果lshw没有安装,您可以通过执行以下命令来安装它: sudo apt-get update sudo apt-get install lshw 安装完成后ÿ…...
模型训练之数据集
我们知道人工智能的四大要素:数据、算法、算力、场景。我们训练模型离不开数据 目标 一、数据集划分 定义 数据集:训练集是一组训练数据。 样本:一组数据中一个数据 特征:反映样本在某方面的表现、属性或性质事项 训练集&#…...
【TB作品】数码管独立按键密码锁,ATMEGA16单片机,Proteus仿真 atmega16数码管独立按键密码锁
文章目录 基于ATmega16的数码管独立按键密码锁设计实验报告实验背景硬件介绍主要元器件电路连接 设计原理硬件设计软件设计 程序原理延时函数独立按键检测密码显示主函数 资源代码 基于ATmega16的数码管独立按键密码锁设计实验报告 实验背景 本实验旨在设计并实现一个基于ATm…...
数据库主从复制
目录 一.主从复制架构 二.主从复制原理 三.实现主从复制配置 1.新建主从复制 2.实战遇到问题 3.复制错误解决方法 4.级联 主从复制 5.半同步复制 MySQL数据库的主从复制(Master-Slave Replication)是一种常见的数据库复制架构,用于提…...
昇思25天学习打卡营第13天|BERT
一、简介: BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自…...
跨平台书签管理器 - Raindrop
传统的浏览器书签功能虽然方便,但在管理和分类上存在诸多局限。今天,我要向大家推荐一款功能强大的跨平台书签管理-Raindrop https://raindrop.io/ 📢 主要功能: 智能分类和标签管理 强大的搜索功能 跨平台支持 分享与协作 卡片式…...
均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)
S-G滤波器又称S-G卷积平滑器,它是一种特殊的低通滤波器,用来平滑噪声数据。该滤波器被广泛地运用于信号去噪,采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域-频域-时域变换…...