- 博客(43)
- 问答 (1)
- 收藏
- 关注
原创 互联网大厂Java面试实录:严肃面试官VS搞笑程序员谢飞机
首先,Java中的JUC是什么?请简单说明其作用。:JUC啊,就是Java的超级英雄,负责线程安全,保证多线程不打架!:不错,回答得挺简洁。:那你能说说Java内存模型(JMM)是啥吗?:内存模型嘛,就是Java在内存里的规矩,告诉程序员怎么访问内存,保证数据不混乱。:回答可以,但需要更专业一些。:你知道Java中的HashMap是线程安全吗?为什么?:HashMap线程不安全,因为它会在多线程下变成“死锁机”!:形象的比喻,回答基本正确。
2025-05-20 15:55:43
438
原创 互联网大厂Java面试:谢飞机的搞笑求职之旅
SpringBoot是Spring的一个子项目,用于简化Spring应用的开发,具备自动配置和快速启动的特性。Docker是一个开源的平台,用于开发、交付和运行应用程序,通过容器化技术实现应用环境的隔离与自动化部署。多线程是指在一个应用程序中可以同时执行多个线程,而线程池是用来管理和复用线程资源的机制,避免频繁创建和销毁线程带来的性能开销。在一个阳光明媚的下午,谢飞机走进了某互联网大厂的面试间,开始了他的Java求职面试之旅。:Redis是个快递员,MySQL是个图书馆管理员,一个快一个慢。
2025-05-20 15:53:52
353
原创 浜掕仈缃戝ぇ鍘傞潰璇曪細璋㈤鏈虹殑鐖嗙瑧姹傝亴涔嬫梾
闈㈣瘯瀹�锛氭垜浠厛鑱婅亰Java鐨勫熀纭�鐭ヨ瘑锛岃阿椋炴満锛屼綘鑳借В閲婁竴涓婮ava涓殑HashMap鏄浣曞伐浣滅殑锛焅n璋㈤鏈�锛氬摝锛孒ashMap鍢涳紝灏辨槸涓�涓瓨涓滆タ鐨勫湴鏂广�備綘鎶婁笢瑗挎斁杩涘幓锛屽畠浼氬府浣犺浣忓湪鍝噷锛屽儚璁扮數璇濆彿鐮佷竴鏍枫�俓n闈㈣瘯瀹�锛堝井寰竴绗戯級锛氫笉閿欙紝閭ashMap鏄浣曡В鍐冲搱甯屽啿绐佺殑鍛紵璋㈤鏈�锛氬憙鈥︹�︾敤鍔涙兂涓�涓嬧�︹�﹀簲璇ユ槸鎶婂啿绐佺殑涓滆タ鏀惧埌涓�涓皬榛戝眿閲岋紝璁╁畠浠嚜宸辫В鍐
2025-05-20 15:47:44
410
原创 浜掕仈缃戝ぇ鍘侸ava姹傝亴闈㈣瘯瀹炲綍锛氱瑧鏂欑櫨鍑虹殑绋嬪簭鍛樿阿椋炴満
闈㈣瘯瀹�锛氭垜浠厛浠庣畝鍗曠殑闂寮�濮嬶紝Java涓殑HashMap鏄浣曞疄鐜扮殑锛焅n璋㈤鏈�锛氬搱鍝堬紝杩欎釜绠�鍗曪紒HashMap灏辨槸鐢ㄦ潵瀛橀敭鍊煎鐨勶紝瀹冮�氳繃鍝堝笇鍑芥暟鎶婇敭鏄犲皠鍒版《閲岋紝纰版挒浜嗗氨鐢ㄩ摼琛ㄨВ鍐炽�傚鍚э紵闈㈣瘯瀹�锛氫笉閿欙紝鍥炵瓟寰楀緢鍒颁綅銆傞偅鎺ヤ笅鏉ワ紝鎴戜滑鑱婅亰Java涓殑绾跨▼姹犳満鍒讹紵璋㈤鏈�锛氬憙锛岀嚎绋嬫睜鍢涳紝灏辨槸涓�鍫嗙嚎绋嬪湪涓�涓睜瀛愰噷娓告潵娓稿幓锛岀疮浜嗗氨鍘讳紤鎭紵闈㈣瘯瀹�锛氬棷鈥︹�﹁繖涓
2025-05-20 15:40:03
762
原创 浜掕仈缃戝ぇ鍘侸ava闈㈣瘯瀹炲綍锛氫弗鑲冮潰璇曞畼涓庢悶绗戣阿椋炴満鐨勬妧鏈棶绛�
锛氳绠�杩癑ava鍐呭瓨妯″瀷鍙妚olatile鍏抽敭瀛楃殑浣滅敤銆俓n锛欽ava鍐呭瓨妯″瀷瑙勫畾浜嗙嚎绋嬮棿濡備綍鍏变韩鍙橀噺锛寁olatile淇濊瘉鍙橀噺鐨勫彲瑙佹�у拰绂佹鎸囦护閲嶆帓搴忋�俓n锛氬緢濂姐�傞偅璇疯璇磗ynchronized鍜孯eentrantLock鐨勫尯鍒紵锛歴ynchronized鏄疛ava鍐呯疆閿侊紝绠�鍗曟槗鐢紝ReentrantLock鍔熻兘鏇村己锛屾湁瓒呮椂鍜屼腑鏂姛鑳姐�俓n。
2025-05-20 15:21:25
307
原创 互联网大厂Java面试:严肃面试官与搞笑程序员的对决
Spring是一个大型应用框架,而SpringBoot是基于Spring的快速开发套件,简化了Spring应用的配置。在某互联网大厂的面试室,一位严肃的面试官正准备提问,而对面坐着一位看似紧张却又想显得轻松的程序员小张。JVM就像一个巨大的购物车,负责把所有的变量都放进去,呃……:JVM内存管理包括堆内存和栈内存,堆内存用于存储对象实例,栈内存用于执行线程时的栈帧……呃,一个很大的箱子,大家都往里面扔东西,有时候会打架?:HashMap通过哈希函数将键映射到对应的值,并通过链表解决哈希冲突。
2025-05-20 15:01:44
187
原创 学习记录-手写Mybatis-day5-数据源池化技术实现
某些场景可以只使用无池化的连接,不一定非得提供池化技术,因此可以把无池化的实现和池化实现拆分解耦,在需要的时候只需要配置对应的数据源即可。的具体实现方案,这个设计模式可以理解为设置缓存(这个缓存就称为池子),当我们需要池子中的对象时,就从池子中去取,使用完后又放回池子,后续可以继续使用。无池化的连接池操作,会不断的与数据库建立新的链接并执行 SQL 操作,这个过程中只要数据库还有链接可以被链接,就可以创建链接。此外由于控制了连接池中连接的数量,所以当外部从连接池获取链接时,如果链接已满则会进行循环等待。
2024-11-28 20:12:50
603
原创 学习记录-手写Mybatis-day4-数据源的解析、创建和使用
由于Mybatis配置数据源也是在XML文件中,因此我们可以很清晰的将这一部分,即解析数据源的信息的处理逻辑,添加到 XMLConfigBuilder 中,将解析后的结果(JDBC操作环境信息)添加到配置类configuration中,以便在 DefaultSqlSession 中执行 SQL 操作。封装链接、提交、回滚、关闭操作,使用的时JDBC本身提供的实现,这样封装的好处是,统一使用该类来调用功能,避免需要的时候都用JDBC来操作,导致代码冗余。根据你提供的参数,我的工厂对应提供不同或者相同的东西。
2024-11-26 11:33:14
866
原创 学习记录-手写MyBatis-day3-Mapper XML的解析和注册使用
可以看到这个类里面有个Builder,实际上这里运用了建造者模式,刚开始的时候这里不理解,我去看了下对应的Mybatis源码,这个内部类里面后续应该会增加各个属性的Builder方法,这样就可以链式的添加需要的属性,就像在实体类上加了@Builder注解后的使用。可以看到该类会解析xml中的配置文件,然后对应解析配置文件中DAO接口所对应的xml文件,并将解析出的sql语句保存到Configuration中,以及将mapper添加到Configuration中。现在selectOne中只是打印获取的信息。
2024-11-22 15:54:27
955
原创 学习记录-手写MyBatis-day2-实现映射器的注册和使用
虽然我们简单实现了核心逻辑的处理方式,但是可以看到我们在使用上还是有点变扭的,比如:需要硬编码告诉映射器代理工厂我们需要代理哪个DAO接口(在实际使用中,mybatis是自动扫描某个包下的所有DAO接口类),以及自己编写一个假的SqlSession,返回实际处理结果。可以看到,现在我们对于需要代理的DAO接口类不需要我们写了,我们只需给出DAO接口类所在的包路径,注册类就可以将包下的所有接口进行注册,当通过工厂开启会话后,通过会话我们就可以获得对应接口的代理类了。该类最主要的功能是,主要在于提供了。
2024-11-20 21:16:53
1053
原创 手写MyBatis-Day1-创建简单的映射器代理工厂
类负责实现 InvocationHandler 接口的 invoke 方法,最后所有的实际调用都会调用这个方法包装的逻辑。在实际使用mybatis的时候,我们定义了很多接口,这些接口都需要通过代理类来实现,如果每个接口都通过jdk代理,代码重复冗余。在后面我们的接口需要通过代理类实现时,就通过这个工厂进行实现。我们先实现 Mybatis 框架最核心的功能,即为接口实现代理类。**利用代理模式:**通过代理类进行扩展,将三者间的联系的流程封装为接口对象的实现类。为每个DAO接口生成代理类。
2024-11-19 19:12:45
425
原创 力扣刷题记录-347-前K个高频元素
对于统计频率,可以优先考虑map熟悉了map和集合的api感觉这个方法需要对api有一定的熟练度,我的思路也是这样,但是不知道怎么写。
2024-11-05 11:31:41
210
原创 笔记-狂神redis学习
Redis是什么Redis能干什么特性使用:redis-cli -p 6379 连接redisP11 Redis的基本知识说明默认有16个数据库,默认使用第0个select 3 # 切换到3号数据库dbsize # 查看数据库大小flushdb # 清楚当前数据库keys * # 查看当前数据库的keyflushall # 清楚所有数据库Redis 是单线程的(redis 6.0以后是多线程)
2024-10-29 16:54:29
231
原创 Nginx-Proxy-Manager 部署个人博客
nginx-proxy-manager 是一个反向代理管理系统,它基于 NGINX,具有漂亮干净的 Web UI。还可以获得受信任的 SSL 证书,并通过单独的配置、自定义和入侵保护来管理多个代理。
2024-10-28 16:24:20
1025
原创 Linux学习之常用命令(用户权限类_修改文件权限)
事实上,第二种方法利用了二进制,r=4对应100,rwx=7对应111。可以看到initial-setup-ks.cfg这个文件的所有者的权限为rw在经过以下代码后,该文件的属主权限发生了变化通过下面的代码可以改变文件夹中的所有文件的权限。
2024-04-23 20:52:15
223
原创 Linux学习之常用命令(用户权限类_用户组管理)
进入到/etc/group中可以看到family添加成功,并且wky825属于family。
2024-04-21 22:12:00
276
1
原创 Linux学习之常用命令(用户权限类_一)
可以看到在输入命令后多了一个dyx目录,说明创建成功。另外创建的新用户的目录可以自己设名字,如下创建了新用户wky825,但文件夹名字为wky。
2024-04-17 22:32:30
230
1
原创 Linux学习之常用命令(时间日期类)
选项为要查日历的某一年,显示当年的所有日历。直接一个date,显示当前的时间信息。不加选项显示当月的日历。
2024-04-12 20:11:20
206
原创 Linux学习之常用命令(文件命令其他指令)
目录echo> 输出重定向 >> 追加head显示文件头部内容tail输出文件尾部内容tail -f 文件 相当于新建了一个进程,可以看到文件的变化,如果覆盖会出错,只能追加
2024-04-12 16:38:04
261
原创 Linux学习之系统管理篇
计算机中,一个正在执行的程序或命令,称为”“(process)启动之后一直存在、常驻内存的一般被称为”“(service)
2024-04-09 16:55:36
242
原创 Linux学习之远程登陆
虚拟机文件夹可能显示乱码,点击属性如下图设置utf-8即可解决。为了更方便的管理虚拟机,使用Xshell来连接虚拟机。不知道为什么我用主机名连接不上,希望大佬解答。Xshell连接虚拟机。连接虚拟机的命令如下。
2024-04-08 20:11:11
169
空空如也
pycharm无法添加conda解释器
2023-07-15
关于#算法#的问题:但是在主程序里面就提示上述的错误(语言-matlab)
2023-04-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅