面试最常被问的 Java 后端题目及参考答案

2023-11-10

一、Java 基础篇

1. Object 有哪些常用方法?大致说一下每个方法的含义

2. Java 创建对象有几种方式?

3. 获取一个类对象的方式有哪些?

4. ArrayList 和 LinkedList 的区别有哪些?

5. 用过 ArrayList 吗?说一下它有什么特点?

6. 有数组了为什么还要搞个 ArrayList 呢?

7. 说说什么是 fail-fast?

8. Hashtable 与 HashMap 的区别

9. HashMap 中的 key 我们可以使用任何类作为 key 吗?

10. HashMap 的长度为什么是 2 的 N 次方呢?

11. HashMap 与 ConcurrentHashMap 的异同

13. 红黑树有哪几个特征?

14. 说说你平时是怎么处理 Java 异常的

15. finally 模块执行了吗?是先执行 return 还是先执行 finally 模块?返回什么?

二、JVM 篇

16. Java 类加载器有几种?

17. 说一下有哪些类加载场景?

18. 说说 Java 类加载机制是什么?说说 new 创建一个普通对象的过程?

19. 说说类的生命周期?

20. 什么是双亲委派模型?

21. 如何破坏双亲委派模型?

22. 能不能自己也写一个 java.lang.String 类?

23. 说一下 JVM 运行时数据区有哪些?分别说一下它们的功能

24. 方法区和永久代有什么区别?

24. JVM 运行时数据区哪些地方会产生内存溢出?

25. 为什么要用 metaspace 替换 permspace 呢?

26. 熟悉哪些 JVM 调优参数?

27. Java 对象的引用类型有哪些?

28. JVM 垃圾回收算法有哪些?

29. 垃圾收集器有哪些?

30. 说说 JVM 中内存的分配与回收策略

三、Dubbo 篇

31. 说说一次 Dubbo 服务请求流程?

32. 说说 Dubbo 工作原理

33. Dubbo 支持哪些协议?

34. 注册中心挂了,consumer 还能不能调用 provider?

35. 怎么实现动态感知服务下线的呢?

36. Dubbo 负载均衡策略?

37. Dubbo 容错策略

38. Dubbo 动态代理策略有哪些?

39. 说说 Dubbo 与 Spring Cloud 的区别?

40. 说说 TCP 与 UDP 的区别,以及各自的优缺点

41. 说一下 HTTP 和 HTTPS 的区别

42. 说说 HTTP、TCP、Socket 的关系是什么?

43. 说一下 HTTP 的长连接与短连接的区别

四、MyBatis 篇

44. 说说 MyBatis 的缓存

45. JDBC 编程有哪些步骤?

46. 说一下 MyBatis 中使用的 #和 $ 有什么区别

47. MyBatis 中比如 UserMapper.java 是接口,为什么没有实现类还能调用?

48. MyBatis 中见过什么设计模式?

五、MySQL 篇

49. 简单说说在 MySQL 中执行依据查询 SQL 是如何执行的?

50. MySQL 有哪些存储引擎?

51. MySQL 中 varchar 与 char 的区别?varchar(30) 中的 30 代表的涵义?

52. int(11) 中的 11 代表什么涵义?

53. 为什么 SELECT COUNT(*) FROM table 在 InnoDB 比 MyISAM 慢?

54. 说说数据库的三范式和反模式

55. 在设计数据库表的时候,字段用于存储金额、余额时,选择什么类型比较好?

56. 大概说说 InnoDB 与 MyISAM 有什么区别?

57. 什么是索引?

58. 索引有什么优缺点?

59. MySQL 索引类型有哪些?

60. 什么时候不要使用索引?

61. 使用 MySQL 的索引应该注意些什么?

62. 怎么知道一条查询语句是否用到了索引,用了什么类型的索引?

63. 说说什么是 MVCC?

64. MVCC 可以为数据库解决什么问题?

65. 说说 MVCC 的实现原理

66. 什么是死锁?

67. MySQL 事务隔离级别?

69. 请说说 MySQL 数据库的锁?

70. 说说什么是锁升级?

71. 说说悲观锁和乐观锁

72. 怎样尽量避免死锁的出现?

六、RabbitMQ 篇

73. 看你简历上写了 RabbitMQ,通常会问:为什么要用 RabbitMQ?

74. 可能你讲了上面三个 RabbitMQ 的优点后,会继续问:使用 RabbitMQ 容易带来什么问题?

75. 那么多消息队列,为什么选 RabbitMQ 呢?

75. RabbitMQ 中什么是死信队列?

76. 如何处理死信队列?

77. 怎么保证消息不会被丢失?

78. RabbitMQ 怎么高可用呢?

79. RabbitMq 怎么保证消息的顺序性?

80. 如果有大量消息持续积压在队列了,怎么处理?

七、Redis 篇

81. 为什么要用缓存

82. 为什么 使用 Redis 而不是用 Memcached 呢?

83. 为什么 Redis 单线程模型效率也能那么高?

84. 说说 Redis 的线程模型

85. 说一下 Redis 有什么优点和缺点

86. Redis 缓存刷新策略有哪些?

87. Redis 持久化方式有哪些?以及有什么区别?

88. 持久化有两种,那应该怎么选择呢?

89. 怎么使用 Redis 实现消息队列?

90. 熟悉哪些 Redis 集群模式?

91. 缓存和数据库谁先更新呢?

八、Spring Boot 篇

92. Spring Boot 提供了哪些核心功能?

93. Spring Boot 核心注解是什么?

94. 说说 Spring Boot 的自动装配原理

95. Spring Boot 常用 starter 有哪些?

96. Spring 中的 starter 是什么?

97. Spring Boot 有什么优缺点?

98. 读取配置文件中配置项的有哪些方法?

九、Spring 篇

99. Spring 中 ApplicationContext 和 BeanFactory 的区别

100. 说一下你对 Spring IOC 的理解

101. Spring IOC 有什么优点?

102. Bean 的生命周期

103. Spring Bean 的作用域有哪些?

104. Spring 是怎么管理事务的?

105. 说说你对 Spring AOP 的理解

106. Spring 中用到了哪些设计模式?

107. Spring 框架中的单例 Bean 是线程安全的么?

108. Spring 是怎么解决循环依赖的?

十、ZooKeeper 篇

109. 说说 ZooKeeper 是什么?

110. ZooKeeper 有哪些应用场景?

111. ZooKeeper 有哪些节点类型?

112. 请描述一下 ZooKeeper 的通知机制是什么?

113. ZooKeeper 对节点的 watch 监听通知是永久的吗?

114. ZooKeeper 集群中有哪些角色?

115. ZooKeeper 集群中 Server 有哪些工作状态?

116. ZooKeeper 集群中是怎样选举 leader 的?

117. ZooKeeper 是如何保证事务的顺序一致性的呢?

118. ZooKeeper 集群中各服务器之间是怎样通信的?

119. ZooKeeper 分布式锁怎么实现的?

十一、并发编程篇

120. 通常创建线程有几种方式?

121. 说说线程的生命周期

122. 说说 synchronized 的使用和原理

123. synchronized 和 ReentrantLock 区别

124. 什么是线程安全?

125. 线程安全需要保证几个基本特征

126. 说一下线程之间是如何通信的?

127. 说说你对 volatile 的理解

128. 说一下 volatile 和 synchronized 的区别?

129. Thread 调用 run 方法和调 start 方法的区别?

130. 说一下 Java 创建线程池有哪些方式?

131. 说说 ThreadLocal 底层原理是什么,怎么避免内存泄漏?

132. 说说你对 JUC 下并发工具类

133. CyclicBarrier 和 CountdownLatch 有什么区别?

十二、设计模式篇

134. 你都熟悉哪些设计模式

十三、其他篇

135. 有 8 个球(大小颜色都一模一样),其中一个球比其他 7 个球中的任何一个都重,使用天平秤最多几次能找到最重的那个球?

136. 分布式幂等性如何设计?

137. 简单一次完整的 HTTP 请求所经历的步骤?

138. 说说分布式事务解决方案有哪些?

139. 说说常用的 JVM 调优命令和工具有哪些?

140. 说说你对 JVM 内存溢出和内存泄漏的理解

141. 说说 JVM 中有哪些常用参数?

一、Java 基础篇

1. Object 有哪些常用方法?大致说一下每个方法的含义

java.lang.Object

 

下面是对应方法的含义。

clone 方法

保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出
CloneNotSupportedException 异常,深拷贝也需要实现 Cloneable,同时其成员变量为引用类型的也需要实现 Cloneable,然后重写 clone 方法。

finalize 方法

该方法和垃圾收集器有关系,判断一个对象是否可以被回收的最后一步就是判断是否重写了此方法。

equals 方法

该方法使用频率非常高。一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。

hashCode 方法

该方法用于哈希查找,重写了 equals 方法一般都要重写 hashCode 方法,这个方法在一些具有哈希功能的 Collection 中用到。

一般必须满足 obj1.equals(obj2)==true。可以推出 obj1.hashCode()==obj2.hashCode(),但是 hashCode 相等不一定就满足 equals。不过为了提高效率,应该尽量使上面两个条件接近等价。

  • JDK 1.6、1.7 默认是返回随机数;
  • JDK 1.8 默认是通过和当前线程有关的一个随机数 + 三个确定值,运用 Marsaglia’s xorshift scheme 随机数算法得到的一个随机数。

wait 方法

配合 synchronized 使用,wait 方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait() 方法一直等待,直到获得锁或者被中断。wait(long timeout) 设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

  1. 其他线程调用了该对象的 notify 方法;
  2. 其他线程调用了该对象的 notifyAll 方法;
  3. 其他线程调用了 interrupt 中断该线程;
  4. 时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个 InterruptedException 异常。

notify 方法

配合 synchronized 使用,该方法唤醒在该对象上等待队列中的某个线程(同步队列中的线程是给抢占 CPU 的线程,等待队列中的线程指的是等待唤醒的线程)。

notifyAll 方法

配合 synchronized 使用,该方法唤醒在该对象上等待队列中的所有线程。

总结

只要把上面几个方法熟悉就可以了,toString 和 getClass 方法可以不用去讨论它们。该题目考察的是对 Object 的熟悉程度,平时用的很多方法并没看其定义但是也在用,比如说:wait() 方法,equals() 方法等。

Class Object is the root of the class hierarchy.Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.

大致意思:Object 是所有类的根,是所有类的父类,所有对象包括数组都实现了 Object 的方法。

面试扩散

上面提到了 wait、notify、notifyAll 方法,或许面试官会问你为什么 sleep 方法不属于 Object 的方法呢?因为提到 wait 等方法,所以最好把 synchronized 都说清楚,把线程状态也都说清楚,尝试让面试官跟着你的节奏走。

2. Java 创建对象有几种方式?

这题目看似简单,要好好回答起来还是有点小复杂的,我们来看看,到底有哪些方式可以创建对象?

1. 使用 new 关键字,这也是我们平时使用的最多的创建对象的方式,示例:

User user=new User();

2. 反射方式创建对象,使用 newInstance(),但是得处理两个异常 InstantiationException、IllegalAccessException:

User user=User.class.newInstance();
Object object=(Object)Class.forName("java.lang.Object").newInstance()

3.使用 clone 方法,前面题目中 clone 是 Object 的方法,所以所有对象都有这个方法。

4.使用反序列化创建对象,调用 ObjectInputStream 类的 readObject() 方法。

我们反序列化一个对象,JVM 会给我们创建一个单独的对象。JVM 创建对象并不会调用任何构造函数。一个对象实现了 Serializable 接口,就可以把对象写入到文件中,并通过读取文件来创建对象。

总结

创建对象的方式关键字:new、反射、clone 拷贝、反序列化。

3. 获取一个类对象的方式有哪些?

搞清楚类对象和实例对象,但都是对象。

第一种:通过类对象的 getClass() 方法获取,细心点的都知道,这个 getClass 是 Object 类里面的方法。

User user=new User();
//clazz就是一个User的类对象
Class<?> clazz=user.getClass();

第二种:通过类的静态成员表示,每个类都有隐含的静态成员 class。

//clazz就是一个User的类对象
Class<?> clazz=User.class;

第三种:通过 Class 类的静态方法 forName() 方法获取。

Class<?> clazz = Class.forName("com.tian.User");    

面试扩散

可能面试官会问相关的题目,比如:

Class.forName 和 ClassLoader.loadClass 的区别是什么?

参考:

反射中 Class.forName() 和 ClassLoader.loadClass() 的区别

4. ArrayList 和 LinkedList 的区别有哪些?

ArrayList

  • 优点:ArrayList 是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。
  • 缺点:因为地址连续,ArrayList 要移动数据,所以插入和删除操作效率比较低。

LinkedList

  • 优点:LinkedList 基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等一个连续的地址。对于新增和删除操作,LinkedList 比较占优势。LinkedList 适用于要头尾操作或插入指定位置的场景。
  • 缺点:因为 LinkedList 要移动指针,所以查询操作性能比较低。

适用场景分析

  • 当需要对数据进行对随机访问的时候,选用 ArrayList。
  • 当需要对数据进行多次增加删除修改时,采用 LinkedList。

如果容量固定,并且只会添加到尾部,不会引起扩容,优先采用 ArrayList。

当然,绝大数业务的场景下,使用 ArrayList 就够了,但需要注意避免 ArrayList 的扩容,以及非顺序的插入。

5. 用过 ArrayList 吗?说一下它有什么特点?

只要是搞 Java 的肯定都会回答“用过”。所以,回答题目的后半部分——ArrayList 的特点。可以从这几个方面去回答:

Java 集合框架中的一种存放相同类型的元素数据,是一种变长的集合类,基于定长数组实现,当加入数据达到一定程度后,会实行自动扩容,即扩大数组大小。

底层是使用数组实现,添加元素。

  • 如果 add(o),添加到的是数组的尾部,如果要增加的数据量很大,应该使用 ensureCapacity() 方法,该方法的作用是预先设置 ArrayList 的大小,这样可以大大提高初始化速度。
  • 如果使用 add(int,o),添加到某个位置,那么可能会挪动大量的数组元素,并且可能会触发扩容机制。

高并发的情况下,线程不安全。多个线程同时操作 ArrayList,会引发不可预知的异常或错误。

ArrayList 实现了 Cloneable 接口,标识着它可以被复制。注意:ArrayList 里面的 clone() 复制其实是浅复制。

6. 有数组了为什么还要搞个 ArrayList 呢?

通常我们在使用的时候,如果在不明确要插入多少数据的情况下,普通数组就很尴尬了,因为你不知道需要初始化数组大小为多少,而 ArrayList 可以使用默认的大小,当元素个数到达一定程度后,会自动扩容。

可以这么来理解:我们常说的数组是定死的数组,ArrayList 却是动态数组。

7. 说说什么是 fail-fast?

fail-fast 机制是 Java 集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生 fail-fast 事件。

例如:当某一个线程 A 通过 iterator 去遍历某集合的过程中,若该集合的内容被其他线程所改变了,那么线程 A 访问集合时,就会抛出
ConcurrentModificationException 异常,产生 fail-fast 事件。这里的操作主要是指 add、remove 和 clear,对集合元素个数进行修改。

解决办法:建议使用“java.util.concurrent 包下的类”去取代“java.util 包下的类”。

可以这么理解:在遍历之前,把 modCount 记下来 expectModCount,后面 expectModCount 去和 modCount 进行比较,如果不相等了,证明已并发了,被修改了,于是抛出
ConcurrentModificationException 异常。

8. Hashtable 与 HashMap 的区别

本来不想这么写标题的,但是无奈,面试官都喜欢这么问 HashMap。

  1. 出生的版本不一样,Hashtable 出生于 Java 发布的第一版本 JDK 1.0,HashMap 出生于 JDK 1.2。
  2. 都实现了 Map、Cloneable、Serializable(当前 JDK 版本 1.8)。
  3. HashMap 继承的是 AbstractMap,并且 AbstractMap 也实现了 Map 接口。Hashtable 继承 Dictionary。
  4. Hashtable 中大部分 public 修饰普通方法都是 synchronized 字段修饰的,是线程安全的,HashMap 是非线程安全的。
  5. Hashtable 的 key 不能为 null,value 也不能为 null,这个可以从 Hashtable 源码中的 put 方法看到,判断如果 value 为 null 就直接抛出空指针异常,在 put 方法中计算 key 的 hash 值之前并没有判断 key 为 null 的情况,那说明,这时候如果 key 为空,照样会抛出空指针异常。
  6. HashMap 的 key 和 value 都可以为 null。在计算 hash 值的时候,有判断,如果 key==null,则其 hash=0;至于 value 是否为 null,根本没有判断过。
  7. Hashtable 直接使用对象的 hash 值。hash 值是 JDK 根据对象的地址或者字符串或者数字算出来的 int 类型的数值。然后再使用除留余数法来获得最终的位置。然而除法运算是非常耗费时间的,效率很低。HashMap 为了提高计算效率,将哈希表的大小固定为了 2 的幂,这样在取模预算时,不需要做除法,只需要做位运算。位运算比除法的效率要高很多。
  8. Hashtable、HashMap 都使用了 Iterator。而由于历史原因,Hashtable 还使用了 Enumeration 的方式。
  9. 默认情况下,初始容量不同,Hashtable 的初始长度是 11,之后每次扩充容量变为之前的 2n+1(n 为上一次的长度)而 HashMap 的初始长度为 16,之后每次扩充变为原来的两倍。

另外在 Hashtable 源码注释中有这么一句话:

Hashtable is synchronized.  If a thread-safe implementation is not needed, it is recommended to use HashMap in place of Hashtable . If a thread-safe highly-concurrent implementation is desired, then it is recommended to use ConcurrentHashMap in place of Hashtable.

大致意思:Hashtable 是线程安全,推荐使用 HashMap 代替 Hashtable;如果需要线程安全高并发的话,推荐使用 ConcurrentHashMap 代替 Hashtable。

这个回答完了,面试官可能会继续问:HashMap 是线程不安全的,那么在需要线程安全的情况下还要考虑性能,有什么解决方式?

这里最好的选择就是 ConcurrentHashMap 了,但面试官肯定会叫你继续说一下 ConcurrentHashMap 数据结构以及底层原理等。

9. HashMap 中的 key 我们可以使用任何类作为 key 吗?

平时可能大家使用的最多的就是使用 String 作为 HashMap 的 key,但是现在我们想使用某个自定义类作为 HashMap 的 key,那就需要注意以下几点:

  • 如果类重写了 equals 方法,它也应该重写 hashCode 方法。
  • 类的所有实例需要遵循与 equals 和 hashCode 相关的规则。
  • 如果一个类没有使用 equals,你不应该在 hashCode 中使用它。
  • 咱们自定义 key 类的最佳实践是使之为不可变的,这样,hashCode 值可以被缓存起来,拥有更好的性能。不可变的类也可以确保 hashCode 和 equals 在未来不
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

面试最常被问的 Java 后端题目及参考答案 的相关文章

  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 使用python程序进行手势识别

    python代码 从视频读取帧保存为图片 import cv2 import numpy as np cap cv2 VideoCapture C Users lenovo Videos 1 mp4 读取文件 cap cv2 VideoCa
  • QGraphicsScene管理QGraphicsItem(单击/选择/移动/缩放/删除)

    文章目录 前言 简述 操作细节 示例 效果 源码 疑问自解自答 那么正方形旋转参照的是哪个点那 前言 本文参考博文https blog csdn net liang19890820 article details 53504323 简述 在
  • 初级运维(九)

    1 静态资源和动态资源的区别 优缺点如何 答 静态资源 URL固定 后缀名诸如 html和 jpg和 gif 它是服务端存在的一种文件 浏览器进行解析 不与数据库交互 有利于网站推广 SEO 维护麻烦 动态资源 有数据库支持 内容丰富 后缀
  • Linux操作系统 第八章

    实验1 磁盘引导 开启虚拟机 mbr 主引导记录 0磁道1扇区446 作用 记录grub2引导文件的位置 dd if dev zero of dev vda bs 446 count 1 清空系统 dev sda上的mbr数据 fdisk
  • android app 跳转到微信

    公司做了个微信投票活动 必须下载安装我们的app才能参加 所以当新客户投票时就会下载安装我们的 然后在注册完成后客户信息同步到微信接口上 然后就有一个回到微信的跳转 主要代码如下 try catch 捕捉到ActivityNotFoundE
  • 【论文笔记04】Model-driven approach for the design of multi-chainsmart contracts—用于设计多链智能合约的模型驱动方法

    A Bari i E Zhu and F Mallet Model driven approach for the design of Multi Chain Smart Contracts 2021 3rd Conference on B
  • g++十个最常用参数

    g 重要参数 1 g 产生调试信息 可以调试程序 2 O n 优化源代码 O0 不作优化 O1 默认 O2 指令调整 O3 循环展开 处理特性优化 编译速度会变慢 3 l指定库文件 L指定库文件路径 要链接哪些库 库直接紧接着比如 lglo
  • 36 openEuler搭建repo服务器-部署远端repo源

    文章目录 36 openEuler搭建repo服务器 部署远端repo源 36 1 nginx安装与配置 36 2 启动nginx服务 36 3 repo源部署 36 openEuler搭建repo服务器 部署远端repo源 安装openE
  • uniapp的分页方法skip方法调用报错 “offsetmust be integer“

    开发中使用官方分页查询列表数据报错 官方写法 一直报错 后面通过官网的文档找到skip方法介绍才知道问题 skip的参数必须是一个正整数 发现改成整数后可以调用成功 希望能给大家一点帮助 发现uniapp的云开发使用调试还是很麻烦 经常调用
  • 使用QT进行WIFI无线传输数据

    好久没有更新博客了 今天简单写下关于WiFi无线通信进行数据传输的相关内容 基于TCP IP协议的通信 代码在文章末尾 具体实现如下 1 首先win R 进入命令行 输入ipconfig查看WiFi网卡的IP地址 2 使用WiFi网址对网关
  • Python 字典 keys() 方法

    描述 Python 字典 keys 方法以列表形式 并非直接的列表 若要返回列表值还需调用list函数 返回字典中的所有的键 语法 keys 方法语法 D keys 参数 无 返回值 以列表形式返回字典中的所有的键 实例 以下实例展示了 k
  • hadoop3.1.1:启动hadoop进程提示ssh 22端口不能连接

    分析 由于在生产环境下 ssh的端口被修改成220 不是使用的默认端口 但是hadoop在启动相应进程的时候 使用的ssh默认端口 解决 1 命令行 临时 这种方式会导致关闭当前终端 该值失效 export HADOOP SSH OPTS
  • java ddd开发_Java开发架构篇《初识领域驱动设计DDD落地》

    作者 小傅哥 博客 https bugstack cn gt 沉淀 分享 成长 让自己和他人都能有所收获 一 前言 gt DDD Domain Driven Design 领域驱动设计 是由Eric Evans最先提出 目的是对软件所涉及到
  • 使用Vue的transition组件写一个数字滚动竟然如此简单

    使用vue的transition组件 来实现一个数字滚动效果 其实不仅可以是数字滚动 还可以是文字 段落滚动 代码片段使用了定位做的 还可以使用transform 只是一种思路 不限制方案 布局 没有别人写的东西炫酷 我都不知道怎么写内容了
  • PCA、SVD、谱聚类

    PCA SVD 谱聚类 1 PCA 2 SVD 3 LDA 4 谱聚类 4 1 无向权重图 4 2 相似矩阵 4 3 拉普拉斯矩阵 4 4 无向图切图 附录1 秩 和 特征值 附录2 协方差 附录3 卡方检验 1 PCA 所谓降维 就是要把
  • testt

    test
  • visio2016企业批量授权版本的激活方式

    首先先下载visio2016的企业批量授权版本 下载地址 用window的资源管理器打开压缩包 点击setup exe 之后默认安装 接下来就是激活的过程 win r快捷键 输入cmd cd C Program Files Microsof
  • anaconda 安装 for macOSX

    步骤 1 登陆官网 https www anaconda com 2 点击 get started 开始 3 选择下载 下载 4 根据自己的电脑来选择下载的方式 我用的是mac所以就选择这个 这里有两种选择 其实都可以 选择一个就行 4 1
  • osgEarth的Rex引擎原理分析(二十一)创建瓦片模型过程详解

    目标 十七 中问题47 瓦片模型的作用是负责管理瓦片中的影像 高程等图层信息 这些信息的获取最终通过createTileModel函数来实现 负责维护瓦片版本等 应当是每一个瓦片都对应有一个瓦片模型 这个瓦片模型是在瓦片请求过程中创建的 具
  • 面试最常被问的 Java 后端题目及参考答案

    一 Java 基础篇 1 Object 有哪些常用方法 大致说一下每个方法的含义 2 Java 创建对象有几种方式 3 获取一个类对象的方式有哪些 4 ArrayList 和 LinkedList 的区别有哪些 5 用过 ArrayList