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

Java语言程序设计 选填题知识点总结

第一章

  1. javac.exe是JDK提供的编译器
  2. public static void main (String args[])是Java应用程序主类中正确的main方法
  3. Java源文件是由若干个书写形式互相独立的类组成的
  4. Java语言的名字是印度尼西亚一个盛产咖啡的岛名
  5. Java源文件中可以有一个或多个类
  6. Java源文件的扩展名是.java
  7. 如果源文件中有多个类,那么至少有一个类必须是public类 (错)如果源文件中有多个类,这些类可以都不是public类
  8. JDK的全称是Java Development Kit
  9. 源文件中如果有多个类,那么至多有一个类可以是public类
  10. 如果一个源文件中有public类,那么源文件名必须和这个public类的类名相同(即类名.java)
  11. Java语言是1995年5月Sun公司推出的编程语言
  12. 开发Java应用程序的基本步骤是:编写源文件->编译源文件->运行程序
  13. 编译java源文件时,将根据java源文件中类的个数产生相应数量的字节码文件

第二章

  1. Java声明数组时,不能在声明时就定义数组长度
  2. int [] a,b[];是声明了1个int型一维数组a和1个int型二维数组b
  3. 1e2和2.05E2都是double型常量
  4. Boolean yes = false;是正确的boolean变量声明
  5. System不是Java关键字,只是java.lang包里提供了这个类,我们也可以自己创建类名为System
  6. char型字符在Unicode表中的位置范围是0至65535
  7. _class可以作为标识符
  8. 对于int a = new int[3];a.length的值是3
  9. good-class不能作为标识符是因为出现了非法符号,标识符只能由标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成,同时不能以数字开头,区分大小写,不可以是关键字和保留字,标识符长度不限
  10. float变量的声明中,float foo = 1;是对的,因为整数类型的精度小于浮点类型,不会造成赋值后精度缺失,而float foo = 1.0;是错的,因为没有注明类型的浮点数都默认为double类型,而double类型的精度要高于float类型,赋值后会导致精度丢失,因此不允许
  11. char类型数据的声明需要使用单引号,例如char c = ‘c’,也可以使用整数赋值,支持十进制、八进制和十六进制声明,范围是0~65535。也可以使用unicode编码声明,例如char c = ‘\u数字’,当然编码值需要正确,其中的数字是十六进制数。还有一些特殊的声明也可算作正确,如’\\’,’\n’,’\t’
  12. Java中int,byte,short,long类型的数组的默认值是0,float和double数组默认0.0,char类型数组默认值是空格,boolean类型数组的默认值为false
  13. 对于int a[][] = new int [2][9];a.length = 2,a[0].length = 9,a[1].length = 9
  14. byte类型的数据范围是-128~127

第三章

  1. 精度从‘低’到‘高’的排列顺序是byte->short->char->int->long->float->double
  2. 在java中计算算术表达式使用下列精度运算规则:
  1. 如果表达式中的最高精度高于int,则表达式结果的精度就是最高精度,例如5.0/2+10,其中5.0是double型数据,故运算结果12.5也为double型数据
  2. 如果表达式中的最高精度低于int型,那么就按int精度进行运算。而同时java允许把不超出byte、short和char的取值范围的常量算术表达式的值覆给byte、short和char型变量。例如byte x = (byte)30+‘a’;这刚好是127,可以赋值。其次为什么要对常量标红呢,如果计算表达式中有变量,则无法进行赋值,例如byte x = 97+1是对的,但byte x = 97+y是不对的,即使byte y = 1,因为编译器不会检查表达式中变量y的值,只会检查y的类型,并认为97+y此时是int型精度,赋给byte会导致精度损失,因此编译失败;需要注意的是,对于 +=,*=,/=,-= 缩略运算符,编译器自动将赋值符号右侧的表达式的值转换成左边变量所要求的类型,例如b += 120等同于b =(byet)(b+120)
  1. switch语句中不一定要有default选项
  2. 关系运算符和逻辑运算符的运算结果都是boolean型数据,关系运算符即“大于小于等于”,逻辑运算符即“或且非”
  3. while(表达式2)...语句和for(表达式1;表达式2;表达式3)...语句中的“表达式2”的值必须是boolean型数据,很好理解,都是用来判断是否符合循环条件的语句
  4. 12 = 12是非法的表达式,因为“=”实际上是赋值表达式

第四章

  1. Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类
  2. 局部变量没有默认值,在Java中,成员变量会有默认的初始值,而局部变量不同,局部变量没有默认值,如果试图使用一个局部变量的值,而这个局部变量尚未初始化,就会产生编译错误
  3. 构造方法不定义返回类型,连void也不需要写
  4. 如果没有编写任何构造方法,则编译器会默认一个无参构造方法,如果写了构造方法,则编译器不再提供默认构造方法
  5. 构造方法的重载方法,方法名称相同,参数类型不同
  6. this不能出现在static方法中,也叫静态方法,因为一个类的static方法会在类的任何一个对象之前初始化,而this是当前对象,因此在static方法初始化时,this所对应的对象还未构造,自然static方法无法处理this的,因此this不能出现在static方法中
  7. 类的实例方法无法通过类名调用,因为类的实例方法在类初始化的过程中,没有被分配入口地址,只有在该类创建对象以后,才会分配入口地址,所以实例对象只能通过对象调用,而类方法在类初始化时就分配了入口地址,因此可以通过类名调用,有static修饰的是类方法,没有的是实例方法
  8. 构造方法的访问权限可以是public、protected、private或友好的
  9. 方法中声明的局部变量不可以使用访问修饰符
  10. this可以出现在实例方法和构造方法中
  11. 成员变量的名字可以和局部变量的相同,方法编译时局部变量会隐藏成员变量。
  12. static方法可以重载,不能被重写
  13. 类所声明的变量被称为对象
  14. 方法的参数名不能与方法内的局部变量名相同
  15. 类体中成员变量的声明和方法的定义可以交叉进行
  16. 进行重载时,参数类型不能相同
  17. 类体中定义的非构造方法是为了体现对象的行为

第五章

  1. Java中子类不会继承父类的构造方法,如果子类中没有声明构造方法,那么在子类声明对象变量时,会默认调用父类的无参构造方法
  2. 抽象(abstract)类的子类也可以是抽象类
  3. 子类继承的方法只能操作子类继承和隐藏的成员变量
  4. 不可以同时用final和abstract修饰同一个方法
  5. 抽象类中的非抽象方法可以使用final修饰
  6. 不允许使用static修饰abstract方法
  7. Java中继承关系是可传递的
  8. Java继承中可以提高父类方法的访问权限,但是不能降低父类方法的访问权限
  9. 对父类方法进行重载的时候,必须更改参数类型或参数个数或参数顺序
  10. 关于重写方法:1.重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。2.重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。3.只有实例方法才能被重写。
  11. 如果父类中没有无参构造方法,那么需要在子类的构造方法中以super()方法调用父类的构造方法
  12. 子类中想使用被子类隐藏的实例成员变量或实例方法就需要使用关键字super
  13. 不可以使用final修饰构造方法
  14. 如果在子类的构造方法中,没有显示地写出super关键字来调用父类的某个构造方法,那么编译器默认地有:super()调用父类的无参构造方法,如果父类没有无参构造方法,则会出现编译错误,即第11条
  15. 如果一个类中的所有构造方法的访问权限都是private,那么这个类不能有子类,因为一个类的private方法不能在其他类中被使用,但子类的构造方法中一定会调用父类的某个构造方法
  16. 子类在方法重写时,不可以把父类的实例方法重写为类(static)方法,也不可以把父类的类方法重写为实例方法
  17. abstract类中可以有非abstract方法,但非abstract类中不能有abstract方法,即一个类中如果有abstract方法,那么这个类必定是abstract类
  18. 一个类只能有一个父类,但是可以有多个子类
  19. Java.lang包中的object类是所有其他类的祖先类
  20. 如果子类和父类不在同一个包中,子类不继承父类的友好成员
  21. 所谓子类继承父类的成员变量作为自己的一个成员变量,就好像它们在子类中直接声明一样,可以被子类中自己定义的任何实例方法操作。
  22. 多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为(多:子类数目,态:父类某个方法)

第六章

  1. 允许接口中只有一个抽象方法
  2. 一个抽象类实现接口后,不需要重写接口中的所有方法,其他未重写的方法可以由这个抽象类的子类进行重写
  3. 一个非抽象类实现接口后,需要重写接口中的所有方法
  4. 一个类只能继承一个父类,但可以实现多个接口
  5. 类实现接口中方法是必须加上public,因为接口中方法权限为public,类中默认访问权限是default,小于public,而类重写接口方法时,只能提供权限,不能降低权限,因此要加上public
  6. 接口中不能声明变量,但可以有常量
  7. Java8之后,接口中也能定义非抽象的不加default修饰的方法
  8. Java8之后,接口中可以定义private方法
  9. 关于7,8点的解释
  10. 接口中声明常量时一定要给初值
  11. 可以在接口中只声明常量,不定义任何方法
  12. 一个源文件中既可以定义接口,也可以定义类
  13. 接口中可以有abstract方法或default修饰的带方法体的方法(JDK8版本)(对,不用理为啥对)
  14. 接口中int x= 10等价于public static final int x =10,即默认是常量
  15. 接口中不能定义非abstract方法()

(没有给定jdk版本,jdk8之后可以有static方法,jdk9之后可以有private方法)青览题库答案是“否”,考试如果遇到选择“是”

  1. 可以使用接口名直接访问接口中的常量
  2. 不能用final修饰接口,因为final意味着接口中的方法不再更改,而接口中的方法是需要实现接口的类去重写的,即对方法进行修改
  3. 接口中的方法的访问权限一定都是public()

jdk9以后有private方法,清览答案是对,考试遇到选错

  1. 子接口将继承父接口中的全部方法和常量()

子接口不能继承private方法,清览答案提供的是对,考试遇到选错

  1. 抽象类中既可以有常量也可以有变量
  2. 把实现某一接口的类创建的对象的引用赋值给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口方法
  3. 接口变量中可以存放实现该接口的类的实例的引用(对象的引用)

第七章

  1. 一个方法使用throws关键字声明要产生的若干个异常,使用throw关键字抛出异常对象
  2. 非匿名内部类也可以实现接口
  3. 不能用匿名类声明对象,但却可以直接用匿名类创建一个对象
  4. 匿名子类(和子类有关的匿名类)可以继承父类的方法也可以重写父类的方法
  5. 匿名子类(和子类有关的匿名类)的类体中不可以声明static成员变量和static方法
  6. 接口匿名类(和接口有关的匿名类)的类体中不可以声明static成员变量和static方法
  7. 匿名类一定是内部类
  8. try~catch语句可以由几个catch组成,分别处理发生的相应异常
  9. 匿名类不能是抽象类
  10. 匿名类有构造方法
  11. 匿名类一定是final类,所以匿名类一定不是抽象类
  12. 和类有关的匿名类一定是该类的一个非抽象子类

第八章

  1. String类是final类,不可以有子类
  2. String类在java.lang包中
  3. int m = Short.parseShort(“567”)正确,将字符串转为对应的short型数据。
  4. int m = Float.parseFloat(“567”)错误,将字符串转为对应float型数据,但int型数据无法接收float型数据,因此错误
  5. float m = Float.parseDouble(“2.9”)错误,首先float不能接收double类型数据,其次调用parseDouble方法需要用Double调用
  6. new Date(1000)对象含有的时间是距1970年1月1日相差1000毫秒的时间
  7. “\\hello\n”是正确的字符串,而“\hello”是错误的字符串,因为“\”后应该是转义字符,可以写“\\”,“\h”不是正确的转义字符,因此出错
  8. “9dog”.matches(“\\ddog”)的值是true,\d用于匹配数字
  9. “12hello567”.replaceAll(“[123456789]+”,“@”)返回的字符串是“@hello@”
  10. Random对象的nextInt(int n)方法随机返回[0,n)之间的一个整数
  11. "RedBird".indexOf("Bird")的值是3,从零开始数
  12. 表达式“\t\nABC”.length()的值是5,一个转义字符记一个长度
  13. “Bird”.compareTo(“Bird fly”)的值是-4,“Bird”.compareTo(“Bird”)的值是0,“Bird”.compareTo(“Bir”)的值是1,具体的计算方式暂时不用在意,关注正负即可
  14. "I love this game".contains("love")的值是true
  15. Integer.parseInt("12.9");会触发NumberFormatException异常
  16. 表达式"89762.34".startsWith("89")的值是true
  17. 表达式"89762.34".endsWith("34")的值是true

第九章

  1. 一个应用程序可以有多个窗口
  2. JFrame创建的窗口默认是不可见的,需要调用setVisible(boolean b)设置窗口的可见性
  3. 可以向JFrame窗口中添加JFrame窗口
  4. 窗口可以调用setTitle(String s)方法设置窗口的标题
  5. 对于有监视器的JTextField文本框,如果该文本框处于活动状态(有输入焦点)时,用户即使不输入文本,只要按回车键也可以触发ActionEvent事件
  6. 监视KeyEvent事件的监视器必须实现KeyListener接口
  7. 监视WindowEvent事件的监视器,必须实现WindowListener接口
  8. 使用BorderLayout布局的容器被划分为5个区域
  9. Jpanel的默认布局是FlowLayout布局
  10. JDialog的默认布局是BorderLayout布局
  11. 使用FlowLayout布局的容器最多可以添加的组件数量由窗口和组件的大小决定,如果一行放不下则会移动到下一行
  12. 没有实现ActionListener接口的类的实例不能被注册为监视器
  13. javax.swing包中JComponent类是java.awt包中Container类的子类
  14. java.awt包中的Container类是java.awt.Component类的子类,javax.swing包中JComponent类又继承自Container类。因此,JComponent类是AWT和Swing的联系之一
  15. Container类提供了一个public方法:add(Component com),一个容器可以调用这个方法将组件com添加到该容器中
  16. Java提供的JFrame类的实例是一个底层容器,即通常所称的窗口
  17. 窗口默认地被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中
  18. 容器不可以添加JFrame实例到其中,因为JFrame已经是底层容器了,不能把一个大容器装进小容器里
  19. JTextField文本框允许用户在文本框中输入单行文本
  20. JTextArea文本域允许用户在文本域中输入多行文本
  21. JFrame类的对象的默认布局是BorderLayout布局
  22. JTextField可以触发ActionEvent事件
  23. addXXXListener(XXXListener listener) 将某个对象注册为自己的监视器,方法中的参数是一个接口,listener可以引用任何实现了该接口的类所创建的对象,当事件源发生事件时,接口listener立刻回调被类实现的接口中的某个方法
  24. MVC是: 模型(model) 用于存储数据的对象。 视图(view) 为模型提供数据显示的对象。 控制器(controller) 处理用户的交互操作,对于用户的操作作出响应,让模型和视图进行必要的交互
  25. 一个容器可以调用setLayout(LayoutManager mgr)方法更改自己的布局
  26. 能触发ActionEvent事件的组件调用addActionListener(ActionListener listen)方法为自己注册一个监视器

第十章

  1. BufferedWrite流可以指向FileWrite流(字符输出流),BufferedRead流可以指向FlieRead流(字符输入流)
  2. 创建File对象不会发生异常,创建新文件时可能发生IOException异常
  3. RandomAccessFile流指向文件时,不会刷新文件,插入内容时才会刷新该文件
  4. File类在java.io包中
  5. 输入流的指向称为流的源,输出流的指向称为流的目的地
  6. 程序如果需要读取程序“外部”的数据,可以创建指向外部的输入流,例如,FileInputStream输入流、FileReader输入流;程序如果需要将程序中数据,写入到程序“外部”,可以创建指向外部的输出流,例如,FileOutputStream输出流、FileWrite输出流,其中FileInputStream流和FileOutputStream流都是按字节(byte)操作数据的,FileReader流和FileWrite流都是按字符(char)操作数据的
  7. 创建File对象f时:File f = new File("perrty.txt"),要求磁盘上不必有真实有perrty.txt文件,如果没有系统会创建的
  8. File类的long length()返回文件的长度(单位是字节)
  9. FileOutputStream流顺序地写文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭
  10. FileInputStream流顺序地读取文件,只要不关闭流,每次调用read方法就顺序地读取源中其余的内容,直到源的末尾或流被关闭
  11. FileInputStream流的int read(byte b[]) 方法从源中试图读取b.length个字节到字节数组b中,返回实际读取的字节数目。如果到达文件的末尾,则返回-1
  12. FileNotFoundException类是IOException类的子类
  13. 创建FileInputStream 对象,即文件字节输入流可能触发FileNotFoundException异常

第十一章

  1. Win10操作系统,然后键入:net start mysql(Win7 键 入mysqld),回车确认,启动MySQL数据库服务器
  2. 在MySQL安装目录的bin子目录下键入mysql 启动MySQL数据库服务器(错)亲测不行,需要键入mysql.exe
  3. MySQL服务器默认占用的端口是3306
  4. MySQL服务器的默认用户是root,对Win10 系统,root的初始密码是随机的,对于Win7系统,root 初始是无密码
  5. Navicat for MySQL是一款MySQL客户端管理工具
  6. 对于 MySQL8.0,Class.forName("com.mysql.cj.jdbc.Driver")是加载的JDBC-MySQL数据库驱动
  7. ResultSet对象和数据库连接对象(Connection对象)实现了紧密的绑定,一旦连接对象被关闭,ResultSet对象中的数据立刻消失
  8. ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面
  9. ResultSet对象其实就是结果集,用于存放查询语句所返回的结果的一种对象
  10. SQL语句:select * from mess where height>1.6 and height<=1.8 是查询mess表中字段(列)height值在1.6和1.8之间的记录(记录的各个列值都要)
  11. SQL语句 select * from mess where name like '%林%' 是查询mess表中字段(列)name值包含有“林”的记录(记录的各个列值都要)
  12. SQL语句 update mess set height =1.77 where name='张三' 是将mess表中name字段(列)值是张三的记录(行)的height的值更新为1.77
  13. SQL语句 insert into mess values ('R1008','将林','2010-12-20',1.66),('R1008','秦仁','2010-12-20',1.66) 是向表mess里添加了两条记录(两行)
  14. SQL语句delete from mess where number = 'R1002' 是删除了mess表中字段number值是R1002的记录
  15. 事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行
  16. PreparedStatement对象被习惯地称作预处理语句对象
  17. 程序使用PreparedStatement对象不仅减轻了数据库的负担,而且也提高了访问数据库的速度
  18. 连接对象调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,并返回一个PreparedStatement对象
  19. 结果集rs执行rs.getString(1)按字符串返回结果集当前行第1列的值
  20. "jdbc:mysql://localhost:3306/students?useSSL=true"中的"students"是用户数据库的名字
  21. JDBC-MySQL数据库驱动:"com.mysql.cj.jdbc.Driver"
  22. JDBC-SQLServer数据库驱动:"com.microsoft.sqlserver.jdbc.SQLServerDriver"
  23. JDBC-Oracle数据库驱动:"oracle.jdbc.driver.oracleDriver"
  24. JDBC-Derby数据库驱动:"org.apache.derby.jdbc.EmbeddedDriver"
  25. 加载对应数据库驱动的代码格式是:try{Class.forName(“驱动”);} catch(Exception e){},如果没有进行捕获异常,则代码报错,如例题18
  26. sql=con.createStatement();也需要捕获异常,否则会报错,如果在写数据库相关代码题时,找不到语句本身的错误,那就留意一下是不是没有进行try..catch捕获异常

第十二章

  1. 线程新建后,需要调用start方法,才有机会获得CPU资源
  2. 如果两个线程需要调用同一个同步方法,那么一个线程调用该同步方法时,另一个线程必须等待
  3. 目标对象中的run方法可能不启动多次
  4. 默认情况下,所有线程的优先级都是5级
  5. 线程不是进程,但其行为很像进程,线程是比进程更小的执行单位
  6. 这个程序段中共有两个线程,一个是main,即主线程,一个是thread,通过start方法有机会获得cpu资源,是一个thread线程
  7. 这个程序段中只有主线程,虽然创建了thread对象,但是没有通过调用start方法,jvm会认为只有一个主线程
  8. 一个进程在其执行过程中,可以产生多个线程
  9. Java应用程序总是从主类的main方法开始执行,JVM加载代码,发现main方法之后,就会启动一个线程,这个线程称为“主线程”(main线程),该线程负责执行main方法
  10. 线程在它的一个完整的生命周期中通常要经历如下的四种状态:1.新建, 2.运行 ,3中断,4.死亡
  11. 可以使用Thread类或其子类创建(新建)线程
  12. 线程不调用start方法,JVM就不会把它当作一个线程来对待,仅仅当作一个普通的对象而已
  13. 线程调用start方法将启动线程,使之从新建状态进入就绪队列排队. 一旦轮到它来享用CPU资源时,就可以脱离创建它的线程独立开始自己的生命周期了
  14. 线程处于“新建”状态时(在调用start方法之前),线程调用isAlive()方法返回的值是false,进入运行状态的线程,调用isAlive方法后返回的值是true
  15. currentThread()方法是Thread类中的static方法,该方法返回当前正在使用CPU资源的线程
  16. 线程调用interrupt()方法将使得处于speep方法或wait方法中断的线程触发InterruptedException异常
  17. 当一个线程调用synchronized方法时,其他线程想调用这个synchronized方法时就必须等待,直到线程A调用完该synchronized方法
  18. wait()、notify()和notifyAll()都是Object类中的final方法, 被所有的类继承、且不允许重写的方法
  19. 一个线程在执行同步方法时,如果执行wait()方法,使本线程进入中断,就允许其它线程使用这个同步方法,而由sleep方法进入中断的线程不允许其他线程使用这个同步方法
  20. 一个因执行wait方法进入中断状态的线程,需要其他线程执行notify()或notifyAll()通知它结束中断状态
  21. 线程在执行完run()方法之前,如果再次让线程执行start方法, 就会发生ILLegalThreadStateException 异常
  22. javax.swing.Timer类称为计时器线程,计时器的监视器必须是组件类的子类的实例,否则计时器无法启动
  23. Java中的线程可以共享数据
  24. 线程调用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行,这只是意味着该线程可被JVM的线程调度程序调度而不是意味着它可以立即运行
  25. run()方法是Runnable接口中唯一的方法,sleep,start,interrput都不是Runnable接口中的方法

相关文章:

Java语言程序设计 选填题知识点总结

第一章 javac.exe是JDK提供的编译器public static void main (String args[])是Java应用程序主类中正确的main方法Java源文件是由若干个书写形式互相独立的类组成的Java语言的名字是印度尼西亚一个盛产咖啡的岛名Java源文件中可以有一个或多个类Java源文件的扩展名是.java如果…...

基于Springboot+Vue社区养老服务管理系统(源码+lw+讲解部署+PPT)

前言 详细视频演示 论文参考 系统介绍 系统概述 核心功能 用户角色与功能 具体实现截图 1. 服务信息查看功能 主要代码实现 截图&#xff1a; 2. 服务申请功能 主要代码实现 截图&#xff1a; 3. 公告信息查看功能 主要代码实现 截图&#xff1a; 4. 服务信息…...

Linux基本指令的使用

当然可以&#xff01;以下是一些常用的Linux指令及其示例&#xff1a; 1. ls 列出目录内容。 ls 显示当前目录下的文件和文件夹。 ls -l 以详细格式列出文件和文件夹的信息&#xff08;如权限、拥有者、大小等&#xff09;。 2. cd 改变当前目录。 cd /path/to/dire…...

Momenta C++面试题及参考答案

vtable 的创建时机 在 C 中&#xff0c;vtable&#xff08;虚函数表&#xff09;是在编译阶段创建的。当一个类包含虚函数时&#xff0c;编译器会为这个类生成一个 vtable。vtable 本质上是一个函数指针数组&#xff0c;其中每个元素指向一个虚函数的实现。这个表的布局是由编译…...

AI 在软件开发流程中的优势、挑战及应对策略

AI 在软件开发流程中的优势、挑战及应对策略 随着人工智能技术的飞速发展&#xff0c;AI大模型正在逐步渗透到软件开发的各个环节&#xff0c;从代码自动生成到智能测试&#xff0c;AI的应用正在重塑传统的软件开发流程。本篇文章将分析AI在软件开发流程中带来的优势&#xff0…...

langchain runnable

LangChain 文档详细解析 LangChain 是一个用于构建与语言模型&#xff08;如GPT-4&#xff09;交互的框架。本文档介绍了LangChain v0.1版本中的Runnable接口及其相关功能。 目录 Runnable接口输入和输出模式使用示例异步方法事件流并行处理 1. Runnable接口 为了简化自定义…...

nginx配置不缓存资源

方法1 location / {index index.html index.htm;add_header Cache-Control no-cache,no-store;try_files $uri $uri/ /index.html;#include mime.types;if ($request_filename ~* .*\.(htm|html)$) {add_header Cache-Control "private, no-store, no-cache, must-revali…...

Linux系统程序设计--4.进程

程序与进程 内核中的进程结构 task_struct(进程表项和进程控制块) 位于/usr/src/linux-headers-4.15.0-213-generic/include/linux/sched.h C程序启动过程 进程终止方式 进程终止函数 atexit 小案例 #include<stdio.h> #include<string.h> #include<stdlib…...

springboot/ssm网购平台管理系统Java在线购物商城管理平台web电商源码

springboot/ssm网购平台管理系统Java在线购物商城管理平台web电商源码 基于springboot(可改ssm)vue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&…...

2024年Android面试总结

2024年Android面试总结 1.动画类型有哪些&#xff1f;插值器原理&#xff1f; 2.StringBuffer和StringBuilder区别&#xff1f; 3.jvm内存模型&#xff1f; 4.线程池7大核心参数及原理&#xff1f; 5.Android多进程通信方式有哪些&#xff1f;各自的优缺点&#xff1f; 6…...

UE5 slate BlankProgram独立程序系列

源码版Engine\Source\Programs\中copy BlankProgram文件夹&#xff0c;重命名为ASlateLearning&#xff0c;修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…...

小米PC电脑手机互联互通,小米妙享,小米电脑管家,老款小米笔记本怎么使用,其他品牌笔记本怎么使用,一分钟教会你

说在前面 之前我们体验过妙享中心&#xff0c;里面就有互联互通的全部能力&#xff0c;现在有了小米电脑管家&#xff0c;老款的笔记本竟然用不了&#xff0c;也可以理解&#xff0c;毕竟老款笔记本做系统研发的时候没有预留适配的文件补丁&#xff0c;至于其他品牌的winPC小米…...

家庭智慧工程师:如何通过科技提升家居生活质量

在今天的数字化时代&#xff0c;家居生活已经不再只是简单的“住”的地方。随着物联网&#xff08;IoT&#xff09;、人工智能&#xff08;AI&#xff09;以及自动化技术的快速发展&#xff0c;越来越多的家庭开始拥抱智慧家居技术&#xff0c;将他们的家变得更加智能化、便捷和…...

云计算-华为HCIA-学习笔记

笔者今年7月底考取了华为云计算方向的HCIE认证&#xff0c;回顾从IA到IE的学习和项目实战&#xff0c;想整合和分享自己的学习历程&#xff0c;欢迎志同道合的朋友们一起讨论&#xff01; 第二章&#xff1a;服务器基础 服务器是什么&#xff1f; 服务器本质上就是个性能超强的…...

webgl threejs 云渲染(服务器渲染、后端渲染)解决方案

云渲染和流式传输共享三维模型场景 1、本地无需高端GPU设备即可提供三维项目渲染 云渲染和云流化媒体都可以让3D模型共享变得简单便捷。配备强大GPU的远程服务器早就可以处理密集的处理工作&#xff0c;而专有应用程序&#xff0c;用户也可以从任何个人设备查看全保真模型并与…...

【中间件】Redis

一、什么是Redis Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合&#xff0c;位图&#xff0c;hyperloglogs等数据类型。内置…...

请结合给定资料中的具体事例,谈谈你对“海洋的污染将毁灭鱼儿的家园,但让人类不寒而栗的毁灭绝非仅此而已!”这句话的理解。(10分)

题目 【2010年国考省级以上&#xff08;含副省级&#xff09;申论真题】2&#xff0e;请结合给定资料中的具体事例&#xff0c;谈谈你对“海洋的污染将毁灭鱼儿的家园&#xff0c;但让人类不寒而栗的毁灭绝非仅此而已&#xff01;”这句话的理解。&#xff08;10分&#xff09…...

Java SE 与 Java EE:基础与进阶的探索之旅

在编程世界中&#xff0c;Java语言以其跨平台、面向对象、丰富的类库等特点&#xff0c;成为了众多开发者和企业的首选编程语言。而Java SE与Java EE&#xff0c;作为Java平台的两个重要组成部分&#xff0c;各自承载着不同的使命&#xff0c;同时又紧密相连&#xff0c;共同构…...

PH热榜 | 2024-11-24

DevNow 是一个精简的开源技术博客项目模版&#xff0c;支持 Vercel 一键部署&#xff0c;支持评论、搜索等功能&#xff0c;欢迎大家体验。 在线预览 1. AutoFlow Studio 标语&#xff1a;借助简化的AI质检&#xff0c;更快发布产品&#xff0c;更聪明地进行测试。 介绍&…...

LLM 系列学习教程

LLM101 检查 Tokenizer 词表大小与 LLM 的 Embedding 和 LM_head 输入大小是否匹配对 SBert 进行训练、预测、评估使其进行相似度计算对 BERT 进行训练、预测、评估使其进行文本分类使用 CLIP 模型进行文本图像匹配对 JoinBERT 进行训练、预测使其进行对话意图和槽位联合识别对…...

基于yolov8、yolov5的茶叶等级检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要&#xff1a;茶叶等级检测在茶叶生产、质量控制和市场销售中起着至关重要的作用&#xff0c;不仅能帮助相关部门实时监测茶叶质量&#xff0c;还为智能化检测系统提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的茶叶等级检测模型&#xff0c;该模…...

Excel求和如何过滤错误值

一、问题的提出 平时&#xff0c;我们在使用Excel时&#xff0c;最常用的功能就是求和了&#xff0c;一说到求和你可能想到用sum函数&#xff0c;但是如果sum的求和区域有#value #Div等错误值怎么办&#xff1f;如下图&#xff0c;记算C列中工资的总和。 直接用肯定会报错&…...

头文件包含

大家好&#xff0c;今天我们来聊聊头文件包含这方面的知识&#xff0c;并且在这里提出几个问题&#xff0c;头文件多次包含有什么影响吗&#xff1f;“”和〈〉这两种方式都能包含标准头文件吗&#xff1f; 一.文件包含 #include指令可以使另外一个文件被编译。就像它实际出现…...

37_U-Net网络详解

1.U-Net 网络概述 U-Net 是一种深度学习模型&#xff0c;广泛用于图像的语义分割任务。U-Net 网络的结构特别适合医学影像分割&#xff0c;尤其在少量训练数据的情况下表现优异。该网络由一个编码器-解码器架构组成&#xff0c;具有对称的“U”形结构&#xff0c;因此得名为 U…...

fastapi入门

好的&#xff0c;我将为您生成一个更详细、易于理解的 FastAPI 入门学习文档&#xff0c;特别是对复杂概念&#xff08;如依赖注入&#xff09;进行深入解释&#xff0c;帮助您在没有太多基础的情况下也能顺利学习和掌握 FastAPI。 FastAPI 入门学习文档 目录 简介环境搭建 2…...

RabbitMQ 之 死信队列

一、死信的概念 先从概念解释上搞清楚这个定义&#xff0c;死信&#xff0c;顾名思义就是无法被消费的消息&#xff0c;字面意思可以这样理 解&#xff0c;一般来说&#xff0c;producer 将消息投递到 broker 或者直接到 queue 里了&#xff0c;consumer 从 queue 取出消息进行…...

Android-如何实现Apng动画播放

01 Apng是什么 Apng&#xff08;Animated Portable Network Graphics&#xff09;顾名思义是基于 PNG 格式扩展的一种动画格式&#xff0c;增加了对动画图像的支持&#xff0c;同时加入了 24 位图像和8位 Alpha 透明度的支持&#xff0c;并且向下兼容 PNG。 Google封面图 02 A…...

微服务系统架构图

微服务架构是一种将单一应用程序开发为一组小型服务的架构风格。每个服务都在自己的进程中运行&#xff0c;它们之间采用轻量级的通信机制&#xff08;如 HTTP/REST 或消息队列&#xff09;进行相互协作。以下是关于微服务系统架构的简要介绍&#xff1a;一、核心特点独立部署 …...

04 —— Webpack打包CSS代码

加载器css-loader &#xff1a;解析css代码 webpack 中文文档 | webpack中文文档 | webpack中文网 加载器style-loader&#xff1a;把解析后的css代码插入到DOM style-loader | webpack 中文文档 | webpack中文文档 | webpack中文网 准备css代码&#xff0c;放到src/login目…...

【数据结构专栏】二叉搜索树(Binary Search Tree)的剖析?

文章目录 &#x1f9e8;前言1、二叉搜索树的基本概念&#xff1f;2、二叉搜索树的节点结构组成&#xff1f;3、二叉搜索树的插入操作&#xff1f;4、二叉搜索树的删除操作&#xff1f;5、二叉搜索树的遍历&#xff1f; 6、二叉搜索树的性能分析&#xff1f; &#x1f389;完整代…...

SSM全家桶 1.Maven

或许总要彻彻底底地绝望一次 才能重新再活一次 —— 24.11.20 maven在如今的idea中已经实现自动配置&#xff0c;不需要我们手动下载 一、Maven的简介和快速入门 Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件)&#xff0c;使用 Maven 可以自动化构建测试、打包和发…...

前端三剑客(二):CSS

目录 1. CSS 基础 1.1 什么是 CSS 1.2 语法格式 1.3 引入方式 1.3.1 行内样式 1.3.2 内部样式 1.3.3 外部样式 1.4 CSS 编码规范 2. 选择器 2.1 标签选择器 2.2 id 选择器 2.3 class 选择器(类选择器) 2.4 复合选择器 2.5 通配符选择器 3. 常用 CSS 样式 3.1 c…...

解析html将表格插入word文档

用到依赖包 <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.2</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweav…...

Java核心知识详解:String类、StringBuffer、数组及日期时间的全面解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 标题 Java核心知识详解&#xff1a;String类、StringBuffer、数组及日期时间的全面解析 摘要 在Java中…...

唯一设备序列号(UID)、唯一产品识别码(UPI)和备份寄存器BKP

文章目录 一、唯一设备序列号UID二、唯一产品识别码UPI三、备份寄存器BKP 一、唯一设备序列号UID MCU 系列产品内置两个不同长度的唯一设备序列号&#xff0c;分别为 96 位的 UID(Unique device ID)和 128 位的UCID(Unique Customer ID)&#xff0c;这两个设备序列号存放在闪存…...

Kafka - 消费者程序仅消费一半分区消息的问题

1. 问题描述 修改安全服务状态有时逻辑正常有时候逻辑不正常&#xff0c;排查incident服务的日志发现消息可以正常发送到 kafka topic &#xff0c;但是incident-cron 服务有时候有拉取消息的日志有时候没有日志。 kafka 生产者可以将消息正常发送到 kafka topic &#xff0c…...

养老院管理系统+小程序项目需求分析文档

智慧综合养老服务平台是以业务为牵引、场景为驱动&#xff0c;围绕“老人”业务域&#xff0c;持续沉淀和打磨形成适应不同养老业务发展需要的业务能力&#xff0c;推动业务模式升级&#xff0c;为养老服务提供数字化解决方案&#xff0c;并依托实体站点与养老机构实现线上线下…...

K8s 下通过prometheus监控 nginx

k8s 下有两个版本的nginx ingress 分别是 ingress nginx 以及 nginx ingress Ingress-nginx 与 Nginx-ingress - LeoZhanggg - 博客园 这里我讨论的是 nginx ingress Nginx Ingress 使用Prometheus 导出数据 nginx ingress 本身支持通过支持这个提供prometheus 格式的…...

基于SpringBoot的京东绿谷旅游信息服务平台设计与实现(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

使用Redis生成全局唯一id

为了生成一个符合要求的分布式全局ID&#xff0c;我们可以使用 StringRedisTemplate 来实现。这个ID由三部分组成&#xff1a; 符号位&#xff08;1 bit&#xff09;&#xff1a;始终为0&#xff0c;表示正数。时间戳&#xff08;31 bit&#xff09;&#xff1a;表示从某个起始…...

pytorch自定义算子导出onnx

文章目录 1、为什么要自定义算子&#xff1f;2、如何自定义算子3、自定义算子导出onnx4、example1、重写一个pytorch 自定义算子&#xff08;实现自定义激活函数&#xff09;2、现有算子上封装pytorch 自定义算子&#xff08;实现动态放大超分辨率模型&#xff09; 1、为什么要…...

从搭建uni-app+vue3工程开始

技术栈 uni-app、vue3、typescript、vite、sass、uview-plus、pinia、axios 一、项目搭建 1、创建以 typescript 开发的工程 npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project2、安装sass npm install -D sass// 安装sass-loader&#xff0c;注意需要版本10&…...

波点音乐自动点击

波点音乐 import uiautomator2 as u2 import time import sys import os# 动态点击时间&#xff0c;打印剩余时间 def dynamic_sleep(seconds):wait_time secondsfor i in range(wait_time):print(f"Waiting... {wait_time - i} seconds remaining")sys.stdout.flu…...

【一篇搞定配置】wget 下载与安装(Window)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;各种软件安装与配置_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1.…...

2025年春招修订版《C/C++笔面试系列》(1) C语言经典笔面试题(上)

C语言是嵌入式开发的常用语言&#xff0c;也是主要语言&#xff0c;很多企业在招聘嵌入式软件工程师时&#xff0c;C语言的熟练程度是一个重要考察点。笔试也是以C语言为主&#xff0c;所以想要拿到面试机会&#xff0c;还得通过C语言笔试&#xff0c;本专题总结了各大企业C语言…...

【042C】基于51RFID门禁系统(LCD12864显示)【Proteus仿真+Keil程序+报告+原理图】

☆、设计硬件组成&#xff1a;51单片机最小系统RFID读卡器4*4矩阵键盘AT24C02存储芯片LCD12864液晶显示继电器蜂鸣器LED灯。 1、设计采用STC89C52、AT89C52、AT89S52作为主控芯片&#xff0c;采用LCD12864液晶显示屏实时显示门禁系统&#xff1b; 2、系统集成两种解锁方式&am…...

scratch二次开发:blockly工作区垃圾桶和进度条的隐藏和显示

大家好&#xff0c;我是小黄。 本期给大家介绍的内容是实现blockly工作区的垃圾桶和进度条的显示和隐藏实现。 本次基于的项目源码大家可以关注小黄回复垃圾桶自行获取。 一.垃圾桶的显示和实现。 在blockly中&#xff0c;我们进行块的删除的时候最常用的两种方法是&#xf…...

【STM32】MPU6050初始化常用寄存器说明及示例代码

一、MPU6050常用配置寄存器 1、电源管理寄存器1&#xff08; PWR_MGMT_1 &#xff09; 此寄存器允许用户配置电源模式和时钟源。 DEVICE_RESET &#xff1a;用于控制复位的比特位。设置为1时复位 MPU6050&#xff0c;内部寄存器恢复为默认值&#xff0c;复位结束…...

LDR6020驱动的Type-C接口显示器解决方案

一、引言 随着科技的飞速发展&#xff0c;Type-C接口凭借其高速数据传输、强大的电力传输能力以及便捷的正反可插设计&#xff0c;正逐渐成为现代电子设备的主流接口标准。在显示器领域&#xff0c;Type-C接口的引入不仅简化了线缆连接&#xff0c;还为用户带来了更丰富的功能…...

Spring Boot + Android 实现登录功能

在移动互联网的今天&#xff0c;许多应用需要通过移动端实现与服务器的交互功能&#xff0c;其中登录是最常见且基础的一种功能。通过登录&#xff0c;用户可以获得独特的身份标识&#xff0c;从而访问特定的资源或服务。本篇博客将详细介绍如何使用 Spring Boot 和 Android 实…...