程序员
文章平均质量分 71
普通网友
这个作者很懒,什么都没留下…
展开
-
一道非常简单的Java面试题,阿里高级Java工程师面试题
finalvoid lock() {if (compareAndSetState(0, 1))setExclusiveOwnerThread(Thread.currentThread());elseacquire(1);}![](https://img-blog.csdnimg.cn/img_convert/a57a494634594a367cd9a61dd5b4745b.png)公平锁、非公平锁代码执行逻辑的区别用一个例子来通俗讲解公平锁和非公平锁,那就是:1、你去火车站买车票,原创 2021-08-10 22:46:52 · 131 阅读 · 0 评论 -
一篇文章让你了解Mysql的InnoDB存储引擎中的锁!(1),面试学习
相对于其他的数据库而言,MySQL的锁机制比较简单,最显著的特点就是不同的存储引擎支持不同的锁机制。根据不同的存储引擎,MySQL中锁的特性可以大致归纳如下:这里锁的对象是事务,用来锁定数据库中的对象,如:表、页、行。并且一般锁的对象仅在事务commit或rollback后进行释放。并且有死锁机制。下面我们看InnoDB存储引擎中两种标准的行级锁:共享锁(S Lock),允许事务读一行数据排它锁(X Lock),允许事务删除或更新一行数据若事务T对数据对象A加上S锁,则事务T可以读A原创 2021-08-10 22:45:40 · 169 阅读 · 0 评论 -
一篇文搞懂《AOP面向切面编程,DevOps生命周期
表达式:execution(public double ArithmeticCalculator.*(double, double))含义:参数类型为double,double类型的方法这里还有一个定位最模糊的表达式:execution("* *(…)")表示任意包下任意类的任意方法,但是这个表达式千万别写,哈哈,不然你每一个执行的方法都会有通知方法执行的!同时,在AspectJ中,切入点表达式可以通过 “&&..原创 2021-08-10 22:44:30 · 160 阅读 · 0 评论 -
一篇文搞懂《AOP面向切面编程(2),2021年Java开发者常见面试题
3、写配置其实在做AOP切面编程时,最常使用也必备的一个标签就是,< aop:aspectj-autoproxy></aop:aspectj-autoproxy>,我们在容器中需要添加这个元素,当Spring IOC容器侦测到bean配置文件中的< aop:aspectj-autoproxy>元素时,会自动为与AspectJ切面匹配的bean创建代理。同时在现在的spring中使用AOP切面有两种方式,分别是AspectJ注解或基于XML配置的AOP,下面我依次原创 2021-08-10 22:43:25 · 207 阅读 · 0 评论 -
一篇文搞懂《AOP面向切面编程(1),你觉得你真的了解Kafka消费者吗
2、切入点表达式规范这五种通知注解后面还可以跟特定的参数,来指定哪一个切面方法在哪一个方法执行时触发。那么具体操作是怎么样的呢?这里就需要和大家介绍一个名词:“切入点表达式”,通过在注解中加入该表达式参数,我们就可以通过表达式的方式定位一个或多个具体的连接点,切入点表达式的语法格式规范是:execution([权限修饰符] [返回值类型] [简单类名/全类名] [方法名] ([参数列表]))其中在表达式中有两个常用的特殊符号:星号“ * ”代表所有的意思,星号还可以表示任意的数值类型原创 2021-08-10 22:42:17 · 201 阅读 · 0 评论 -
一波三折!业内,Java自学宝典下载
3.4重试机制3.5设计模式第4章:Dubbo扩展点加载的原理和实现————Dubbo扩展点加载机制4.1加载机制概述4.2扩展点注解4.3 ExtensionLoader 的工作原理4.4扩展点动态编译的实现第5章:Dubbo 的配置解析、服务暴露、服务消费和优雅停机的机制————Dubbo启停原理解析5.1配置解析5.2服务暴露的实现原理5.3服务消费的实现原理5.4优雅停机原理解析第6章:Dubbo的RPC 协议细节、编解码和服务调用的实现原理————原创 2021-08-10 22:41:05 · 69 阅读 · 0 评论 -
一次违反常规的Java大厂面试经历,【源码分析设计模式 12
不要一涉及继承就考虑该模式,尽可能把变化的因素封装到最细、最小的逻辑单元中,避免风险扩散。当发现类的继承有n层时,可以考虑使用该模式。五、代码实现1、品牌package designMode.advance.bridge;public interface Brand { void open(); void close(); void call();} 2、具体品牌package designMode.advance.bridge;pub原创 2021-08-10 22:40:00 · 49 阅读 · 0 评论 -
一次幸运的校招小米Java后台offer,阿里高级算法专家
我是一个非985/211的本科。其实最开始并不怎么自信,靠的就是一帮基友互相的鼓励,才坚持到了现在。 我小米的面试机会是亲戚给内推的,因为碰巧他们部门校招没有招满,所以很幸运的拿到了这个机会。 提一点,我面的是Java后台岗。面试开始====先申明一点,虽然我通过了面试也拿到了offer,但是至于我是否真的答对了题目,我也不知道,所以这里为了避免误人子弟就不把我的答案发出来了,如果有兴趣可以自行百度,google。一面:1、10 亿个 URL,每个 URL的大小< 56B,要求去U原创 2021-08-10 22:38:45 · 165 阅读 · 0 评论 -
GitHub标星50k的Java“高工,Java面试视频教学
以互联网巨头阿里的招聘信息来看,首先对于工作经验有一定的要求,在我看来工作年限主要取决于你的技术。如果你的技术牛X的话,那么你可以包装自己;其次对于Java程序员来说技术才是最实用的,即使你的工作经验与招聘要求不相匹配,但如果技术掌握情况与之相匹配,阿里是不会“放过”你的,下面是小编在阿里招聘官网看到的招聘信息,可供大家参考。从图中红色部分可以看到,作为一名三年以上开发经验的Java程序员来说,除了扎实的基础,你还需要掌握中间件、分布式技术、高并发、微服务等技术,而市面上很少有一套系统详细的学习笔记,小原创 2021-08-07 20:20:03 · 104 阅读 · 0 评论 -
Git-如何优雅地回退代码,开发8年的老Java才知道
revert首先肯定的是 revert,git revert commit_id 能产生一个 与 commit_id 完全相反的提交,即 commit_id 里是添加, revert 提交里就是删除。但是使用 git log 查看了提交记录后,我就打消了这种想法,因为提交次数太多了,中途还有几次从其他分支的 merge 操作。”利益于”我们不太干净的提交记录,要完成从 C 版本到 N 版本的 revert,我需要倒序执行 revert 操作几十次,如果其中顺序错了一次,最终结果可能就是不对的.原创 2021-08-07 20:18:53 · 179 阅读 · 0 评论 -
Git-如何优雅地回退代码(1),阿里P7Java社招面试的经历
这个时候另一个可选项是在 master 分支上执行 reset,使用 --hard 选项完全抛弃这些旧代码,reset 后再强制推到远端。master> git reset --hard commit_idmaster> git push --force origin master但是还是有问题,首先,我们的 master 分支在 gitlab 里是被保护的,不能使用 force push,毕竟风险挺大了,万一有人 reset 到最开始的提交再强制 push 的话,虽原创 2021-08-07 20:17:41 · 83 阅读 · 0 评论 -
GET和POST的区别,晒出收入
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,GET只接受ASCII字符,而POST没有限制。GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。GET参数通过URL传递,POST放在Request body中。(本标准答案参考自w3schools)“很遗憾,这不是我们要的回答!”请告诉我真相。。。如果我告诉你GET和POST本质..原创 2021-08-07 20:16:32 · 84 阅读 · 0 评论 -
Ftp实现上传文件至远程服务器,初级Java工程师面试题
systemctl status vsftpd.service [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5upjjy2E-1627114115787)(C:\Users\Supreme honor\AppData\Roaming\Typora\typora-user-images\image-20210722140921985.png)]5.开放访问端口firewall-cmd --zone=public --add-port=21/tcp --per.原创 2021-08-07 20:15:22 · 208 阅读 · 0 评论 -
Eureka注册中心,Redis缓存
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependencies> <dependency> <groupId原创 2021-08-07 20:14:11 · 525 阅读 · 0 评论 -
dubbo面试题总结,【Java面试题总结 14
//取出所有的Map中的值:Iterator iter = jedis.hkeys(“user”).iterator();while(iter.next()){jedis.hmget("user",iter.next());}六、Redis为什么是单线程的?----------------1. 代码更清晰,处理逻辑更简单;2. 不用考虑各种锁的问题,不存在加锁和释放锁的操作,没有因为可能出现死锁而导致的性能问题;3. 不存在多线程切换而消耗CPU;4. 无法原创 2021-08-07 20:12:58 · 86 阅读 · 0 评论 -
docker面试题汇总,字节面试官死磕Mysql,程序员心中暗喜(1)
MyISAM 引擎:不支持事务使用表级锁,并发性差主机宕机后,MyISAM 表易损坏,灾难恢复性不佳可以配合锁,实现操作系统下的复制备份、迁移只缓存索引数据紧凑存储,因此可获得更小的索引和更快的全表扫描性能两者主要区别:InnoDB 支持事务,MyISAM 不支持事务处理等高级处理。InnoDB 支持行级锁,而 MyISAM 仅支持表级锁。MyISAM 类型的表强调的是性能,其执行速度比 InnoDB 类型更快。MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改原创 2021-08-07 20:11:49 · 195 阅读 · 0 评论