![](https://i-blog.csdnimg.cn/direct/95f56cd2755146eda8193c7e6f4c9779.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JAVA面试题集合
文章平均质量分 58
java相关的面试八股文合集
爱吃猫的鱼星
能得到你的喜欢,我十分荣幸。
展开
-
JAVA面试题 第六弹
而在面向切面编程中,我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制、事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用spring 提供的对象就可以了,这是控制反转的思想。依赖注入(DI),spring 使用 javaBean 对象的 set 方法或者带参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程,就是依赖注入的思想。原创 2024-08-02 11:06:19 · 678 阅读 · 3 评论 -
JAVA面试题 第五弹
该算法的基本思路就是通过一些被称为引用链(GC Roots)的对象作为起点,从这些节点开始向下搜索,搜索走过的路径被称为(Reference Chain),当一个对象到GC Roots没有任何引用链相连时(即从GC Roots节点到该节点不可达),则证明该对象是不可用的。在java中可以作为GC Roots的对象有以下几种:虚拟机栈中引用的对象、方法区类静态属性引用的对象、方法区常量池引用的对象、本地方法栈JNI引用的对象。第一:降低资源消耗。集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。原创 2024-08-01 15:17:52 · 511 阅读 · 0 评论 -
JAVA面试题 第四弹
上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的 Security 的含义,比如:通过 GET 提交数据,用户名和密码将明文出现在 URL 上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用 GET 提交数据还可能会造成 Cross-site request forgery 攻击。在存储的数据量方面:session 能够存储任意的java 对象,cookie 只能存储 String 类型的对象。原创 2024-07-31 10:42:03 · 488 阅读 · 0 评论 -
乐观锁与悲观锁
操作员 B 完成了操作,也将版本号( version=1 )试图向数据库提交数据( balance=$80 ),但此时比对数据库记录版本时发现,操作员 B 提交的数据版本号为 1 ,数据库记录当前版本也为 2 ,不满足 “ 提交版本必须等于当前版本才能执行更新 “ 的乐观锁策略,因此,操作员 B 的提交被驳回。但是,如果冲突频繁发生(写占比非常多的情况),会频繁失败和重试(悲观锁的开销是固定的),这样同样会非常影响性能,导致 CPU 飙升。CAS 是一个原子操作,底层依赖于一条 CPU 的原子指令。原创 2024-08-01 09:54:11 · 424 阅读 · 0 评论 -
SpringBoot面试题 第三弹
即url/{id}这种形式。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping: 映射请求,只能接收的对应的请求。主要是Spring Boot的启动类上的核心注解SpringBootApplication注解主配置类,有了这个主配置。②@EnableAutoConfiguration: 打开自动配置的功能,也可以关闭某个自动配置的选项, 例。@Component,@Service,@Controller,@Repository: 将类注入容器。原创 2024-07-23 10:00:24 · 455 阅读 · 0 评论 -
JAVA面试题 第三弹
HashMap是线程不安全的,HashTable是线程安全的,其中的方法是Synchronized,在多线程并发的情况下,可以直接使用HashTable,但是使用HashMap时必须自己增加同步处理。通过hash碰撞,让HashMap不断产生碰撞,那么相同的key的位置的链表就会不断增长,当对这个Hashmap的相应位置进行查询的时候,就会循环遍历这个超级大的链表,性能就会下降,所以改用红黑树。红黑树 JDK8使用红黑树来替代超过8个节点的链表,主要是查询性能的提升,从原来的O(n)到O(logn)。原创 2024-07-30 09:07:12 · 548 阅读 · 0 评论 -
网页代码报错大集合
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段。417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求。205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件。505——服务器不支持或拒绝支请求头中指定的HTTP版本。206——服务器已经完成了部分用户的GET请求。305——请求的资源必须从服务器指定的地址得到。414——请求的资源URL长于服务器允许的长度。原创 2024-07-26 13:42:11 · 549 阅读 · 0 评论 -
VUE2与VUE3的区别
vue2是采用ES5的object.definePropert()对数据进行劫持,结合发布订阅和观察者模式进行的。vue3是采用ES6的Proxy的数据代理来对数据进行代理,修复了v2中对象和数组的属性添加修改的问题。,新的合成型api能让我们使用方法来分割,相比于旧的api使用属性来分组,这样代码会更加简便和整洁。在v2中如果同时使用v-for 和 v-if 那么v-for的优先级是高于 v-if 的。vue2中使用new Vue()的方式,来创建实例。4、v-if和v-for优先级。原创 2024-07-22 10:46:51 · 400 阅读 · 0 评论 -
Java中的四种访问权限
要理解protected权限,就需要了解继承,因为这个权限处理的就是继承相关的概念,继承而来的子类可以访问public、protected。1、包访问权限: 没有任何修饰符的权限就是包访问权限,意味着当前包的所有类都可以访问这个成员,如表中所示,对于本包之外的类,这个成员就变成了private,访问不了。2、public: 被public修饰的成员对任意一个类都是可用的,任何一个类都可以访问到,通过操作该类的对象随意访问public成员。所谓访问权限,指的就是本类中的成员变量、成员方法对其他类的可见性。原创 2024-07-30 09:03:06 · 328 阅读 · 0 评论 -
SpringBoot面试题
跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。Spring Boot 推荐使用 Java 配置而非 XML 配置,但是 Spring Boot 中也可以使用 XML 配置,通过 @ImportResource 注解可以引入一个 XML 配置。2. Spring Boot 有哪些优点?原创 2024-07-22 14:35:31 · 459 阅读 · 0 评论 -
前端常用的4种请求方式
URL全称是资源描述符,可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE可以理解为就对应着对这个资源的查,改,增,删4个操作。总的来说,PUT和DELETE请求是对资源进行修改和删除的操作,而POST和GET请求则是对资源进行添加和查询的操作。此外,PUT和GET请求是幂等的,而POST和DELETE请求不是幂等的。POST请求:用于向指定资源提交数据,数据被包含在请求体中。GET请求是幂等的,即多次执行同一个GET请求所产生的结果都是相同的。原创 2024-07-29 09:43:57 · 233 阅读 · 0 评论 -
JAVA面试题 第一弹
浅拷贝是指,只会拷贝基本数据类型的值,以及实例对象的引用地址,并不会复制一份引用地址所指向的对象,也就是浅拷贝出来的对象,内部的类属性指向的是同一个对象。深拷贝是指,既会拷贝基本数据类型的值,也会针对实例对象的引用地址所指向的对象进行复制,深拷贝出来的对象,内部的类执行指向的不是同一个对象。而int则是直接存储数据值。深拷贝和浅拷贝就是指对象的拷贝,一个对象中存在两种类型的属性,一种是基本数据类型,一种是实例对象的引用。封装:封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。原创 2024-07-25 14:34:05 · 415 阅读 · 0 评论 -
SpringBoot面试题 第二弹
跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Crossorigin resource sharing) 来解决跨域问题。后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在\BOOTINF\classes 目录下才是我们的代码,因此无法被直接引用。普通的 jar 包,解压。1、SpringBoot如何实现打包。原创 2024-07-23 08:40:55 · 482 阅读 · 0 评论 -
JAVA面试题 第二弹
修饰方法时,也同样只能使用,不能在子类中被重写。void wait(long timeout)--->导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll()方法,或者超过指定的时间量。String 类中有native关键字修饰的调用系统级别的本地方法,调用了操作系统的 API,如果方法可以重写,可能被植入恶意代码,破坏程序。void wait()--->导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。原创 2024-07-29 09:47:10 · 605 阅读 · 0 评论 -
Postgresql如何获取表结构
【代码】Postgresql如何获取表结构。原创 2024-07-18 15:11:34 · 243 阅读 · 0 评论