自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java并发常见面试题总结(上)

由于绿色线程和原生线程比起来在使用时有一些限制(比如绿色线程不能直接使用操作系统提供的功能如异步 I/O、只能在一个内核线程上运行无法利用多核),在 JDK 1.2 及以后,Java 线程改为基于原生线程(Native Threads)实现,也就是说 JVM 直接使用操作系统原生的内核级线程(内核线程)来实现 Java 线程,由操作系统内核进行线程的调度和管理。如果线程是 CPU 密集型的,那么多个线程同时运行会导致频繁的线程切换,增加了系统的开销,降低了效率。与进程不同的是同类的多个线程共享进程的。

2025-01-16 21:16:42 1010

原创 Java并发常见面试题总结(中)

这个问题被称为 CAS 操作的。比如一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的,如果是不可重入锁的话,就会造成死锁。当多个线程同时使用 CAS 操作一个变量时,只有一个会胜出,并成功更新,其余均会失败,但失败的线程并不会被挂起,仅是被告知失败,并且允许再次尝试,当然也允许失败的线程放弃操作。是 Java 中的一个关键字,翻译成中文是同步的意思,主要解决的是多个线程之间访问资源的同步性,可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。

2025-01-16 21:15:33 1144

原创 ArrayList 源码分析

">>"(移位运算符):>>1 右移一位相当于除 2,右移 n 位相当于除以 2 的 n 次方。对于大数据的 2 进制运算,位移运算符比那些普通运算符的运算要快很多,因为程序仅仅移动一下而已,不去计算,这样提高了效率,节省了资源。的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。需要目标数组,将原数组拷贝到你自己定义的数组里或者原数组,而且可以选择拷贝的起点和长度以及放入新数组中的位置。内部没有被调用过,所以很显然是提供给用户调用的,那么这个方法有什么作用呢?

2025-01-14 22:22:31 691

原创 Java 语法糖详解

但有时候出于对程序代码优化的考虑,希望只对其中一部分内容进行编译,此时就需要在程序中加上条件,让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是条件编译。从反编译后代码可以看出,可变参数在被使用的时候,他首先会创建一个数组,数组的长度就是调用该方法是传递的实参的个数,然后再把参数值全部放到这个数组当中,然后再把这个数组作为参数传递到被调用的方法中。一步一步剥去糖衣,看看其本质。可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能。

2025-01-14 16:53:39 823

原创 布隆过滤器

首先,我们需要了解布隆过滤器的概念。布隆过滤器(Bloom Filter,BF)是一个叫做 Bloom 的老哥于 1970 年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的 List、Map、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。

2025-01-09 14:15:43 756

原创 Java基础常见面试题总结(上)

答:非常接近 - 我们的 Oracle JDK 版本构建过程基于 OpenJDK 7 构建,只添加了几个部分,例如部署代码,其中包括 Oracle 的 Java 插件和 Java WebStart 的实现,以及一些闭源的第三方组件,如图形光栅化器,一些开源的第三方组件,如 Rhino,以及一些零碎的东西,如附加文档或第三方字体。能表示的最大正数都减 1 了。我们知道计算机是二进制的,而且计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。

2025-01-06 22:25:22 705

原创 Java基础常见面试题总结(中)

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承,可以快速地创建新的类,可以提高代码的重用,程序的可维护性,节省大量创建新类的时间 ,提高我们的开发效率。因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是值,只是引用类型变量存的值是对象的地址。类型的对象时,虚拟机会在常量池中查找有没有已经存在的值和要创建的值相同的对象,如果有就把它赋给当前引用。

2025-01-06 22:20:00 721

原创 Redis实现优惠卷秒杀

3.1 全局唯一ID每个店铺都可以发布优惠券:场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。场景分析二:随着我们商城规模越来越大,mysql的单表的容量不宜超过500W,数据量过大之后,我们要进行拆库拆表,但拆分表了之后,他们从逻辑上讲他们是同一张表,所以他们的id是不能一样的, 于是乎我们需要保证id的唯一性。

2025-01-04 15:57:53 644

原创 卓望数码面试问题总结

○ 对于复合索引(多个列组成的索引),列的顺序非常重要。例如,假设有一个负责用户注册和订单处理的类,当需要修改用户注册的验证规则时,由于订单处理逻辑也在这个类中,开发人员需要在复杂的代码中仔细区分哪些代码是用于注册验证,哪些是用于订单处理,这增加了维护的难度。例如,在Windows系统中,打开命令提示符(CMD),输入“ping目标主机IP地址或域名”,如“ping 8.8.8.8”(8.8.8.8是谷歌的DNS服务器IP)或“ping www.google.com”,就会发送ICMP请求并显示结果。

2024-12-31 17:43:18 414

原创 Java泛型面试必问15题,深入详解泛型【附解答】

Java 泛型(Generics)是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Persion对象,如果传入其他类型的对象就会报错。可以用于构建泛型集合。原生List返回类型是Object,需要手动转换类型才能使用,使用泛型后编译器自动转换。

2024-12-29 21:03:14 850

原创 马力回忆笔试题

名称传输协议传输单元主要功能设备/接口物理层bit-flow 比特流光纤、双绞线、中继器和集线器 & RJ-45(网线接口)数据链路层frame 帧网桥、二层交换机网络层数据包(packet)路由器、三层交换机传输层TCP、UDP四层交换机会话层SMTP、DNS报文QoS表示层报文应用层报文。

2024-10-28 17:29:26 1159

原创 黑马头条项目经验话术

注意:一定要追求真实,一定要给一个真实背景。千万别完全照着头条课件上的东西去说,很容易撞车。项目介绍三要素:项目介绍、岗位职责、业绩、技术亮点下面的话术中,项目名称自己适当修改一下,依据所在城市进行包装。话术1:好的面试官,我最近做的这个项目是融媒体项目,准确来讲是一个融媒体平台,项目是我们公司自研的,核心业务就是基于我们公司自有的媒体资源、社群、自媒体资源进行整合。基于我们研发的融媒体平台,构建了多款App,分别针对不同的客户群体。

2024-10-28 17:15:40 2610 2

原创 苍穹外卖项目面试总结话术

美食速递这个项目最初是我参与制作的大创项目,是一款为中南学生提供校园外卖送至宿舍服务的软件,包含系统管理后台和小程序端两部分。其中系统管理后台主要提供给食堂内部员工使用,可以对食堂各个窗口、员工、订单、菜品等进行维护管理;小程序端可以在线浏览菜品、添加购物车、下单等,由学生兼职做跑腿送餐上门服务。这是个前后端分离的项目,我主要是负责后端的用户登录、员工管理,菜品管理,订单管理模块的编码实现。

2024-10-28 17:12:50 6623 1

原创 黑马头条遇到的问题、踩坑、搭建环境镜像

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网:开源的 Java语言开发持续集成工具,支持持续集成,持续部署。易于安装部署配置:可通过 yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。消息通知及测试报告:集成 RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。

2024-10-26 14:22:08 1762

原创 苍穹外卖遇到问题(包括跳过微信支付、nodejs不兼容等)

但在开发环境中,两者有所不同。所以 Vite 因为基于浏览器的原生功能,省掉了打包过程,在开发环境中体验及其愉快。本地安装了nvm用了切换node版本 但是当安装node20.9.0的时候 不小心自己重新 全局 装了npm,在切回低版本的时候 用了全局的 npm ,所以报错了 ,重新将node 切换回20.5的版本 npm这个时候可用 再执行npm uninstall -g npm ,取消全局安装的npm ,再使用nvm切换node版本的时候就可以了 自动使用node下自带的npm 版本 成功解决。

2024-09-21 11:18:42 2481

原创 使用MAVEN下载源码的时候,提示Cannot download sources,解决方案如下

在maven的conf文件中找到settings.xml 打开,大概在150多行。将上面代码注释掉就可以下载了。

2024-08-21 17:10:02 388 1

原创 IDEA出现XML注释的两个横线连起来解决方案

如上图所示,在配置xm文件的时候,发现注释变成如上情况。将Enable ligatures前面的勾去掉即可。

2024-08-21 16:17:06 294

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除