
Java学习进阶
文章平均质量分 71
这个专栏提供了从基础到高级的广泛内容,以满足各种学习需求。我们将为您深入探讨Java编程的各个方面,包括并发编程、性能优化、架构设计等。通过实际示例和项目,您将不仅了解Java的精髓,还能在实际项目中应用所学。无论您是学生、开发者还是工程师,这个专栏将加速您在Java编程领域的进步,为您的职业发展提
.whl
博客不仅仅是一个技术记录本,更是一个分享知识和经验的平台。毕设指导、程序开发、算法创新、专业助力!
展开
-
Java岗位面试--单例模式、生产者消费者线程同步
答:一个类的构造函数私有化,然后在类中定义一个私有静态变量,通过一个静态函数get获得私有变量实例即可实现单例。如果想要懒加载,可以用上双重检验锁在get函数中。9.手写一个生产者消费者模式,用的ReentrantLock,为什么判断当前count是否满足生产或者消费时用while。4.用volatile+synchronized写一个单例模式,用双重校验锁方法,说出两个if判断语句的作用。写个单例保证线程安全(虽然写出了,但被问住了,告诉我代码不能死记硬背)10.手写单例模式 1.写一个单例模式,原创 2024-08-04 10:15:00 · 139 阅读 · 0 评论 -
Java岗位面试--手撕算法题
假设有一个非常大的文件,全英文的,统计一下所有单词出现的频率,我回答的是mapreduce来查频率,他说单机情况下,用map,有改进吗?算法题1:出现奇数次的数字:给定一个非空整数数组,取值范围[0,100],除了某个元素出现1次以外,其余每个元素均出现次数为2次。1.编程题,快速排序(当时脑子不知道在想啥,没做出来,很尴尬,不过面试官一直引导我,后来写出来了还是有点问题,面试官一时也没发现哪里错了,就直接跳过了)算法题:一棵树的右视图,小哥哥说在框里写,,,我还没问能不能用ide呢,,, 5.5。原创 2024-08-03 11:15:00 · 190 阅读 · 0 评论 -
Java岗位面试总结--计算机网络
10.上面说到http建立在tcp连接上,所以开始了http和tcp连接之间的各种关系,这块复习的比较少,讲的不太好,问到了长连接/短连接,哪个版本开始支持长连接。一个tcp连接是否可以并发,这个没有复习到,所以一开始回答不能,后来面试官就问,如果现在一个网页要加载很多张图片,他们应该怎么样加载,根据平常上网经验,明显是多个图片同时向下加载,所以随即改口。校验和,流量控制,拥塞控制,连接管理,确认应答,超时重发都答了。答:物理层,链路层,网络层,传输层,应用层(应用层,展示层,通信层)原创 2024-08-03 14:30:00 · 132 阅读 · 0 评论 -
java岗位真实面试经验总结--基础知识
当JVM在加载一个类的时候,如果这个类在编译时是可用的,但是在运行时找不到这个类的定义的时候,JVM就会抛出一个NoClassDefFoundError错误。32 - 1,面试官可能知道我的意思,没有指出)最大值为什么要减一,int的最小值在计算机中怎么表示(我回答的是二进制表示,没有思考直接说是32位全是1,回答错了,实际是10000…结果是,不会有错误。答:一个是标记的变量只能自己使用,一个是标记的变量可以让父子都可以访问,一个是可以接收同一个包的其他类的引用,一个是所有的其他包都可以引用。原创 2024-08-02 10:15:00 · 117 阅读 · 0 评论 -
Java岗位面经--Spring相关
我:一开始没听明白,后来理解了,是url访问的流程加springmvc的过程,emmm不好意思,中间忘记说tomcat干啥活了。6.Spring的IOC和好处,AOP,问了动态代理的实现,两种动态代理的。答:简单解释了一下,动态代理和代理的两个类别;讲讲你熟悉的Java设计模式,知道装饰者模式吗,IoC机制符合了Java设计模式的什么原则。就比如注入的时候,我会依赖一个接口的注入或者基类注入,这种的话,怎么找到它的实例呢?注入的过程发生在什么时期我答的是初始化容器的时候。spring的ioc和aop。原创 2024-08-02 10:15:00 · 82 阅读 · 0 评论 -
Java岗位面试--MySQL相关
6.数据库问题,表结构是t ,sql语句是select * from t where a= , b= , c= 问这个语句执行的效率,我当时直接说会很慢,可以建立联合索引,然后就开始了最左匹配原则的各种情况。最后一个问题是如果查询条件固定,联合索引的顺序怎么样安排比较好,之前没考虑过,只能当场思考,回答的是区分度较高的排在前面,让搜索的范围尽早缩小。数据库一定会走索引吗回答了最左匹配原则和索引没及时更新数据位置,没答到他想要的点,他想问的是where语句中出现了!原创 2024-08-01 17:00:00 · 140 阅读 · 0 评论 -
Java岗位面经--JVM相关
强引用,在内存不足的时候,宁可报错:oom,也不会回收。这样内存不足的时候,标记了软弱虚引用的对象会被回收。虚引用:直接回收了,就像没有引用一样gcroot找不到一样。但是会有一个回调函数,比如打印一个日志:我被回收了之类的。答:强引用,就是标记了引用,不会直接回收的;而软引用是:在gc后还内存不足的时候,才会去回收,平时不会回收;弱引用是:在GC的时候,不管内存空间足不足都会回收这个对象。1.说一下几种引用方式,并说出其作用,以及垃圾回收时机。每种垃圾回收算法的原理和适用,G1简单说了下设计思想。原创 2024-08-01 12:00:00 · 66 阅读 · 0 评论 -
Java岗位面经--Java集合
ArrayList扩容机制,上次看ArrayList源码还是去年9月份,,,真的忘了,只记得1.5倍扩容和grow方法的流程,其他的模模糊糊。面试官可能将计就计的问了我add方法一次添加一个元素为什么会不满足条件呢,当时内心有点懵,所以也没回答出来,面试官又问如果让你去写这个代码,你觉得的该怎么写,只说思路就好。万年不变的集合开头,hashmap底层数据结构,什么时候转化为红黑树,put操作的流程,讲定位下标的时候说到了扰动,又问扰动的过程和好处(讲一半小哥哥网不稳定,掉线了,,,)线程安全的方式有哪些?原创 2024-07-31 15:00:00 · 89 阅读 · 0 评论 -
Java岗面经总结--Java多线程
1.多个线程同时对volatile类型的变量进行i++操作,可以保证结果吗,为什么不能,说说volatile的原理,那我们在什么时候使用volatile是正确的,刚才的场景怎么保证结果(synchronized),说说sync的原理,它和ReentrantLock有什么不同。2.Java的加锁的方式,读写锁的实现,synchronized和reentrantlock的比较,CAS的实现。4.说一下线程池,以及线程池的几个核心参数,如果提交一个cpu密集型的任务怎么选取线程池。对象锁和类锁互斥吗?原创 2024-07-31 10:15:00 · 84 阅读 · 0 评论 -
async、await剖析
JavaScript是单线程的,为了避免同步阻塞可能会带来的一些负面影响,引入了异步非阻塞机制,而对于异步执行的解决方案从最早的回调函数,到ES6的Promise对象以及Generator函数,每次都有所改进,但是却又美中不足,他们都有额外的复杂性,都需要理解抽象的底层运行机制,直到在ES7中引入了,他可以简化使用多个Promise时的同步行为,在编程的时候甚至都不需要关心这个操作是否为异步操作。原创 2024-08-01 14:00:00 · 65 阅读 · 0 评论 -
DOM和BOM的区别
在浏览器中运行的JavaScriptECMAScript描述了该语言的语法和基本对象,DOM文档对象模型描述了处理网页内容的方法和接口,BOM浏览器对象模型描述了与浏览器进行交互的方法和接口。原创 2024-07-17 17:10:12 · 109 阅读 · 0 评论 -
XSS跨站脚本攻击
跨站脚本攻击XSS,是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。原创 2024-05-17 11:06:30 · 164 阅读 · 0 评论 -
OAUTH开放授权
第三方应用程序,例如上文中的云冲印网站。: 服务提供商,例如上文中的Google。User Agent: 用户代理,一般都是使用浏览器。: 认证服务器,服务提供商用来处理认证的服务器。: 资源服务器,即服务提供商存放用户资源的服务器。原创 2024-05-12 13:15:00 · 93 阅读 · 0 评论 -
Node对象
Node是一个接口,各种类型的DOM API对象会从这个接口继承,其允许我们使用相似的方式对待这些不同类型的对象。原创 2024-05-12 10:15:00 · 302 阅读 · 0 评论 -
Navigator对象
Navigator对象表示用户代理的状态和标识,其允许脚本查询它和注册自己进行一些活动,可以使用只读的属性取得实例化的navigator对象的引用。原创 2024-05-11 15:30:00 · 155 阅读 · 0 评论 -
MutationObserver对象
对象提供了监视对DOM树所做更改的能力,其被设计为旧的功能的替代品(该功能是规范的一部分)。原创 2024-05-11 10:45:00 · 478 阅读 · 0 评论 -
JavaScript 数据结构和算法复习总结
优先队列中元素的添加和移除是依赖。原创 2024-01-03 16:09:44 · 892 阅读 · 0 评论 -
适合程序员的简历模板
版本81.1 (135647)原创 2023-08-14 06:45:00 · 322 阅读 · 0 评论 -
前端基础积累_新技术_Vue_React_H5_奇怪的BUG_面试_招聘
07: ES6 中的 箭头 函数 (=>) 详解。原创 2023-08-14 06:30:00 · 139 阅读 · 0 评论 -
基于SpringBoot的酒店管理系统
系统角色分为:经理(管理员)和员工(普通用户)两种用户, 其中经理(管理员)具有查看所有预定、删除客房、查看员工、添加员工等功能权限 员工(普通用户)具有查看空房、客户预订、修改预订、删除预订、注册新客户等功能权限(任务自拟)原创 2023-08-13 10:45:00 · 232 阅读 · 0 评论 -
高校运动会信息管理系统设计与实现-毕业设计
设计围绕着运动会信息管理进行展开,采用主流的SSM框架,结合安全框架SpringSecurity、前端页面框架Bootstrap、jQuery和JavaScript技术进行开发。页面设计友好,简洁明了。基本的运动会各项信息都能够存储在数据库中,管理员只需登入系统,按照指定的提示就能实现与数据库的交互,高效管理运动会的各项数据。并且,学生能够登入系统,报名参与正在开展的运动会项目,后期还能查看比赛成绩等功能。系统如期顺利完成,相应的功能也能正常运转。原创 2023-08-09 17:00:00 · 171 阅读 · 0 评论 -
班级事务管理系统设计与实现
模块名描述公共模块,存放一些通用的配置和类如:oauth资源服务器的配置,FastDFS文件服务等Spring Cloud配置中心,统一微服务的配置管理Spring Cloud网关,负责将对应请求转发到对应的微服务模块Spring Cloud认证中心,负责权限统一的认证,提供登录接口以及发放JWT类型的TokenSpring Cloud注册中心,负责微服务的统一治理。微服务通知模块,负责通知内容的CRUD微服务用户模块,负责用户的CRUD。原创 2023-08-10 11:15:00 · 296 阅读 · 0 评论 -
Java仓库管理系统设计与实现
仓库管理系统JAVA/数据库 课程设计 仓库管理系统 使用 MySQL和Idea。原创 2023-08-09 15:30:00 · 369 阅读 · 0 评论 -
基于JavaWeb的家居电子商城管理系统
大二下的JavaWeb小学期课程写的一个家居电子商城管理系统,没有spring框架,纯servlet,线上家居电子商城系统,主要实现了用户注册,登录、浏览,查看家居商品信息,购物车,订单,支付,查看通知以及管理员对用户信息的管理,订单管理,商品管理,通知管理,分类等的管理。原创 2023-08-08 12:15:00 · 196 阅读 · 0 评论 -
基于SSM试题库管理系统
试题库管理系统(基于SSM)运行环境:JDK 1.8 + MySQL 5.7 +Tomcat 8.0.53编码集:UTF-8IDE:eclipse 4.8.0数据库库名:用户名:root密码:admin登录界面:学生界面:教师界面:管理员界面:原创 2023-08-05 17:00:00 · 185 阅读 · 0 评论 -
基于ssm民宿管理系统
用户在使用过程中可以在平台的博客分享系统中发布文章,浏览评论等,房源管理系统可供用户搜索并查看心意房源,进行订购,付费等,也可查看个人房源的出租情况。该文档收集、分析、定义了高层用户需要和产品特性,分析了该平台的目标,为了改善当今互联网上房东与租客对接房屋信息的不及时,不便利这一现象,结合房主的真正意愿以及租客对于房源的不同需求,针对目前民俗租住信息缺少平台发布,租客很难高效又便利的找到心仪房源这一问题,我们决定开发享宿平台,希望能改善以上现象带来的问题,为每一个用户提供更好的使用体验。原创 2023-08-05 09:00:00 · 193 阅读 · 0 评论 -
基于SpringBoot+Vue驾校理论课模拟考试系统源码(自动化部署)
说明:主要用于检测停车是否到位,你可以用此代码加入你自己的项目。UI以及触屏视觉操作方面,建议使用第三方库,更新时间-2021-1-17。更新时间-2021-2-18。“曲线行驶”没有设定压线检测。原创 2023-08-03 14:45:00 · 246 阅读 · 0 评论 -
连锁商店数据库课程设计
为了准确掌握仓库信息,职工信息,销售信息,商品信息,保证商店工作效率,本课程设计连锁超市管理系统。在连锁超市管理系统中,一个商店可以聘用多名职工,多个商品可以被多个商店销售,是多对多的联系。职工(职工编号、姓名、性别、工龄、电话号码,商店编号,月薪,聘期,)(3) 职工基本信息:职工编号、姓名、性别、工龄、电话号码。(2) 商品基本信息:商品编号、商品名、销售单价、成本。(5) 管理员基本信息:用户名、账号密码、姓名、性别。销售信息(商店编号、商品编号、销售日期、销售数量)原创 2023-08-04 12:15:00 · 316 阅读 · 0 评论 -
简易图片分享系统
这是一个图片存储的网站系统,具有简单的时间线功能,同时有完善的通知中心。原创 2023-08-03 15:00:00 · 294 阅读 · 0 评论 -
驾校理论课模拟考试系统
3.异常日志:用户操作调用后台接口时出现内部错误会将虚拟栈中信息记录,并返回给前台。1.试题字典:按照指定条件搜索,添加、修改、删除试题(管理员权限)。2.角色管理:查询,修改,添加,删除角色,并对角色进行菜单授权。3.菜单管理:查询,修改,添加,删除菜单,并按照路由进行跳转。2.操作日志:记录用户,用户IP所作操作,请求耗时及操作时间。4.服务监控:服务器CPU使用率,内存使用率,系统版本等信息。1.在线用户:管理员可查看当前在线用户,对可疑用户进行强退。1.编辑用户:查询,修改,添加,删除用户。原创 2023-08-04 09:30:00 · 196 阅读 · 0 评论 -
说明学习委员之作业管理系统—后端部分
学习委员收集作业的过程,繁琐且曲折,作者充分理解并体谅为大家服务的苦逼学习委员,以此为出发点和灵感,设计并开发了此套作业管理系统,希望能帮助各位提高效率,早日摆脱重复机械式的工作,欢迎二开,如有更多的创意和建议,欢迎留言!在target目录下会生成一个以【.jar】为后缀的文件。修改配置文件(application-pro.yml)创建数据库,运行建表SQL,>SQL建表脚本。下载项目导入到IntelliJ Idea。使用宝塔面板部署到服务器。将数据库配置改为自己的。运行maven打包插件。原创 2023-08-03 06:45:00 · 219 阅读 · 0 评论 -
学习委员之作业管理系统—前端部分
学习委员收集作业的过程,繁琐且曲折,作者充分理解并体谅为大家服务的苦逼学习委员,以此为出发点和灵感,设计并开发了此套作业管理系统,希望能帮助各位提高效率,早日摆脱重复机械式的工作,欢迎二开,如有更多的创意和建议,欢迎留言!原创 2023-08-02 20:45:00 · 187 阅读 · 0 评论 -
smbms 超市订单管理系统设计与实现计划表
smbms 超市订单管理系统项目描述smbms-JDBC:不使用 SSM 框架进行开发bookStore:学完ssm框架后的整合项目smbms-SSM:使用 SSM 框架开发项目记录smbms-JDBC2023-10-28:第一天,搭建环境,写好基本的工具类,导入相关的资源。写好一个登录模块!太开心了,一步一步地搭建项目,最后看到整个程序运行正确!2023-10-31:第二天。登录注销功能,修改密码功能,用户管理部分实现2023-11-01:第三天。完成整个用户管理模块。学习到了小黄原创 2023-08-01 12:00:00 · 216 阅读 · 0 评论 -
银行自助在线业务系统
需求分析(1) 用户管理,包括用户的登录和注册功能。(2) 账户余额查询功能。(3) 账户存取款功能。(4) 转账功能。(5) 交易日志功能。原创 2023-08-01 07:00:00 · 189 阅读 · 0 评论 -
毕设项目——Java题库管理系统(附源码)
技术栈:JSP+Servlet+HTML+CSS+JS+JQuery。毕设项目——Java题库管理系统。原创 2023-07-31 23:08:10 · 208 阅读 · 1 评论 -
【Juc进阶】CurrentHashMap、ConcurrentSkipListMap、CopyOnWriteArrayList
在涉及到Java多线程开发时,如果我们使用HashMap可能会导致死锁问题,使用HashTable效率又不高。而ConcurrentHashMap既可以保持同步也可以提高并发效率,所以这个时候ConcurrentHashmap是我们最好的选择。在阅读ConcurrentHashMap的源码时,有一段相关描述。原创 2023-07-18 18:00:00 · 199 阅读 · 0 评论 -
[Juc进阶]Callable、Future和FutureTask
(1)未启动,FutureTask.run()方法还没有被执行之前,FutureTask处于未启动状态,当创建一个FutureTask,而且没有执行FutureTask.run()方法前,这个FutureTask也处于未启动状态。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。Future接口是用来获取异步计算结果的,说白了就是对具体的Runnable或者Callable对象任务执行的结果进行获取(get()),取消(cancel()),判断是否完成等操作。原创 2023-07-18 08:30:00 · 114 阅读 · 0 评论 -
【juc进阶之路】Atomic变量
在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。在Atomic包里一共有12个类,四种原子更新方式,分别是原子更新基本类型,原子更新数组,原子原创 2023-07-16 17:00:00 · 152 阅读 · 0 评论 -
【Java进阶之路】HashSet和TreeSet源码分析
Set集合与List一样,都是继承自Collection接口,常用的实现类有HashSet和TreeSet。值得注意的是,HashSet是通过HashMap来实现的而TreeSet是通过TreeMap来实现的,所以HashSet和TreeSet都没有自己的数据结构,具体可以归纳如下:1. Set集合中的元素不能重复,即元素唯一2. HashSet按元素的哈希值存储,所以是无序的,并且最多允许一个null对象3. TreeSet按元素的大小存储,所以是有序的,并且不允许null对象。原创 2023-07-16 19:45:00 · 164 阅读 · 0 评论 -
【Java进阶之路】HashMap源码分析(JDK1.8)
JDK 1.8 对 HashMap 进行了比较大的优化,底层实现由之前的 “数组+链表” 改为 “数组+链表+红黑树”,本文就 HashMap 的几个常用的重要方法和 JDK 1.8 之前的死循环问题展开学习讨论。JDK 1.8 的 HashMap 的数据结构如下图所示,当链表节点较少时仍然是以链表存在,当链表节点较多时(大于8)会转为红黑树。[外链图片转存中…(img-fk5RnMNg-1689217072646)]原创 2023-07-15 09:00:00 · 151 阅读 · 0 评论