首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
程序员ya
获赞
372
粉丝
255
关注
0
看过 TA
1233
清华大学
2014
Java
IP属地:湖南
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑程序员ya吗?
发布(188)
评论
刷题
程序员ya
关注TA,不错过内容更新
关注
2022-11-24 10:51
已编辑
清华大学 Java
聊聊工作中,如何提升自己的编程能力?
在工作中,我们大部分的时间都是在阅读代码,阅读别人的代码也是我们工作中的一部分,真正花在写代码上的时间其实并不多。我们应该都有这样的体会,那就是刚入职一家新公司,需要维护公司的一些项目代码,这个时候相信有的小伙伴们就很痛苦了,因为每个人写代码的风格和编码水平都是不一样的,好的代码更容易理解和易读。工作中,能很快熟悉别人的代码,可以提升我们工作的效率,那么怎样才能提高代码质量以及可读性呢?代码评审为什么要进行代码评审?1、提高质量2、及早发现潜在缺陷与 BUG,降低事故成本。3、促进团队内部知识共享,提高团队整体水平4、评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。不知...
投递巨人网络等公司10个岗位 >
0
点赞
评论
收藏
分享
2022-11-24 10:48
已编辑
清华大学 Java
事务 还有这些用法,之前都不知道
序transationTemplate.execute 的写法 第一次 碰到,我之前是 controller -> biz -> service -> mapper 然后用 @Transation 注解搞定事务,至于 同一个类的 方法之间调用,在biz 层就规避了不懂就问首先 同一个类中 方法调用因为没有 走 aop 所以 事务不生效,这个应该没毛病吧问了人家,人家说 能解决 同一类中的 不同方法调用的 事务问题,我不太信。。验证下,如果能行,我以后加入Spring事务失效的场景非public修饰final修饰也会失效, 动态代理需要重写方法才能生效事务, fina...
0
点赞
评论
收藏
分享
2022-11-23 10:54
已编辑
清华大学 Java
浅析Spring事务实现原理
SQL事务实现简介 首先我们来了解下,最简单的事务是怎么实现的呢?以JDBC为例,当一个数据库Connection对象创建后,其会默认自动提交事务;每次执行SQL语句时,如果成功,就会向数据库自动提交,不能回滚。 通过调用setAutoCommit(false)方法可以取消自动提交事务。等到所有的SQL语句都执行成功后,调用commit()方法提交事务。如果其中某个操作失败或出现异常时,则调用rollback()方法回滚事务。具体代码如下所示: public void noTransaction() { Connection connection = null; ...
0
点赞
评论
收藏
分享
2022-11-23 10:51
已编辑
清华大学 Java
活动库存限制是“递增”还是“递减”、你认为哪种方式更好些??
库存扣减限制设想有些文章说的都是商品库存的扣减或抵扣券的扣减、但是如果我有一个活动、活动中有1张券、我要限制这个活动的某张券每人限领一张、并设置月限多少等等一些库存的限制。前期设想、我们这个最后发券的流程就是调用第三方接口给用户下发券码、假设第三方接口发券失败了、我们要回退活动的库存限制、如果下发成功应该扣减我们的库存限制。现在关心的是活动中的券的库存限制、 现在设想的这种是在活动层面上在加库存的限制概念。数据类型选择Redis数据类型选择、包括一个活动是主要的信息以及券码的库存限制也是一个主要的信息、照这样说的话这两个信息要同时在Redis中或者两者能关联上、这样的话可以使用Hash的数据结...
0
点赞
评论
收藏
分享
2022-11-22 10:58
已编辑
清华大学 Java
ThreadPoolExecutor 的参数含义及源码执行流
背景线程池是为了避免线程频繁的创建和销毁带来的性能消耗,而建立的一种池化技术,它是把已创建的线程放入“池”中,当有任务来临时就可以重用已有的线程,无需等待创建的过程,这样就可以有效提高程序的响应速度。但如果要说线程池的话一定离不开 ThreadPoolExecutor ,在阿里巴巴的《Java 开发手册》中是这样规定线程池的:线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的读者更加明确线程池的运行规则,规避资源耗尽的风险。说明:Executors 返回的线程池对象的弊端如下:FixedThreadPool 和 Singl...
0
点赞
评论
收藏
分享
2022-11-22 10:55
已编辑
清华大学 Java
Java反射学习笔记--使用示例
简介反射是Java编程语言中的一个特性。它允许执行的Java程序 检查 或 操作 自身,并操作程序的内部属性。例如,Java类可以获取其所有成员的名称并显示它们。反射的一个具体用途是在JavaBeans中,软件组件可以通过一个构建工具进行可视化操作。该工具使用反射来获取Java组件 (类) 动态加载时的属性。一个简单的例子要了解反射是如何工作的,请考虑以下简单示例:import java.lang.reflect.*; public class DumpMethods { public static void main(String args[]) { ...
0
点赞
评论
收藏
分享
2022-11-21 11:06
已编辑
清华大学 Java
分库分表-分片算法运用
分库分表-分片算法运用ShardingSphere 分片算法用于将数据分片的算法,支持 =、>=、<=、>、<、BETWEEN 和 IN 进行分片。分片算法可由开发者自行 实现,也可使用 Apache ShardingSphere 内置的分片算法语法糖,灵活度非常高。原理简单来说就是在解析sql后分析对应的分片键和分库键,如果存在,则采用对应算法进行路由,改写sql,合并结果。分片算法一般包括如下算法:自动化分片算法分片算法语法糖,用于便捷的托管所有数据节点,使用者无需关注真实表的物理分布。包括取模、哈希、 范围、时间等常用分片算法的实现。自动化分片在实际情况中使用比较...
0
点赞
评论
收藏
分享
2022-11-21 11:02
已编辑
清华大学 Java
SpringBoot与Loki的那些事
前言因为网上好多都没有通过Loki的API自己实现对日志监控系统,所以我就下定决心自己出一版关于loki与springboot的博文供大家参考,这个可以说是比较实用,很适合中小型企业。因此我酝酿了挺久了,对于loki的研究也比较久,希望各位读者能有新的收获。简介Loki是Grafana Labs团队的开源项目,可以组成一个功能齐全的日志堆栈。Loki是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。Loki是用来存储日志和处理查询,需要通过promtail来收集日志,也可是通过后端的logback等日志...
0
点赞
评论
收藏
分享
2022-11-19 11:04
已编辑
清华大学 Java
JITWatch很折腾?有这篇文章在可以放心
简单介绍什么是JITWatch?什么是JITWatch?大多数情况下,通过诸如javap等反编译工具来查看源码的字节码已经能够满足我们的日常需求。但是不排除在有些特定场景下,我们需要通过反汇编来查看相应的汇编指令。JITWatch——JIT编译日志分析工具 提供了可视化界面帮助我们直观的查询汇编代码。字节码指令和汇编指令字节码指令和汇编指令区别Java我们知道是一种跨平台语言,那么Java如何实现平台无关性呢?这就需要我们了解JVM和Java的字节码文件。这里我们需要有一点共识,就是任何一门编程语言都需要转换为与平台相关的汇编指令才能够最终被硬件执行,比如C和C++都将我们的源代码直接编译成与...
0
点赞
评论
收藏
分享
2022-11-19 10:56
清华大学 Java
线上kafka消息堆积,consumer掉线,怎么办?
线上kafka消息堆积,所有consumer全部掉线,到底怎么回事?最近处理了一次线上故障,具体故障表现就是kafka某个topic消息堆积,这个topic的相关consumer全部掉线。整体排查过程和事后的复盘都很有意思,并且结合本次故障,对kafka使用的最佳实践有了更深刻的理解。好了,一起来回顾下这次线上故障吧,最佳实践总结放在最后,千万不要错过。1、现象线上kafka消息突然开始堆积消费者应用反馈没有收到消息(没有处理消息的日志)kafka的consumer group上看没有消费者注册消费者应用和kafka集群最近一周内没有代码、配置相关变更2、排查过程服务端、客户端都没有特别的异常...
0
点赞
评论
收藏
分享
2022-11-18 11:19
已编辑
清华大学 Java
类加载器分类以及著名的双亲委派机制
类加载器的分类JVM 支持的类加载器是分成两类的:1、引导类加载器(BootstrapClassLoader)2、自定义类加载器(User-Defined ClassLoader)但在上面图示中,我们发现了加载阶段涉及:BootstrapClassLoader、ExtClassLoader、ApplicationClassLoader 所以这个是不是觉得有点矛盾呢?从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是 Java虚拟机规范却没有这么定义而是将所有 派生于抽象类 ClassLoader 的类加载器都划分为自定义类加载器(也就是继承于 ...
0
点赞
评论
收藏
分享
2022-11-18 11:14
清华大学 Java
高并发技巧-流量聚合和高并发写入处理技巧
这篇文章我将介绍对于写入流量高的处理技巧,并且介绍一款快手开源的很实用的用来做流量聚合的工具BufferTrigger。通过这篇文章的介绍,相信对于大多写流量(后面就称为写qps吧)高的业务场景都能找到解决方案。读流量(qps)高的场景其实见的更多,比如常用的淘宝和抖音,大部分都是读场景,而写的流量相对读的流量整体要低不少。但是如果遇到做活动,比如电商促销秒杀;或者一些本身确实写流量高的场景,比如直播(点赞,收礼)等有什么好的解决方案呢,下面通过个人遇到的一些业务场景来介绍实际用到的解决方案以及使用的场景和局限性。消息队列使用消息队列进行流量削峰来解决写qps高的问题应该是最常见的解决方案,将...
0
点赞
评论
收藏
分享
2022-11-17 10:55
清华大学 Java
Redis怎样实现分布式锁?
前言 我们知道,在Java单进程中,多线程的环境下,如果我们要操作一个共享变量,需要使用synchronized或者是JUC同步工具类才能保证线程安全。那么,多进程环境下,我们要怎样保证线程安全? 为什么需要分布式锁? 我们知道,synchronized或者是JUC同步工具类只能在同一进程中保证线程安全,他们的影响范围没办法超出本Java进程。但是随着分布式成为主流,多进程共享数据的情况越来越常见。 如上图,两个进程同时对存储在MySQL、Redis或者是zookeeper中的共享数据进行读写,即有可能出现线程安全问题,这种情况下,我们就需要一个可以在分布式环...
0
点赞
评论
收藏
分享
2022-11-17 10:53
清华大学 Java
Spring事务回滚的两种方法
当然,Spring事务回滚的前提是你当前使用的数据库必须支持事务,比如MySQL的Innodb是支持的,但Mysaim则是不支持事务的。 方法一 使用 @Transaction 来配置自动回滚,可以配置在类上,也可以配置在方法上(作用域不同),但对final或private修饰的方法无效,且该类必须是受spring所管控的,也就是被已经被注入的类,而不是new出来的类。 若配置在方法上,则该方法被加上了事务 若配置在类上,则等于给该类的所有方法都加上了该注解。此时如果在该类下的某个方法也加了 @Transaction ,则该方法使用自己的配置,其他方法使用类上的配置。 @S...
0
点赞
评论
收藏
分享
2022-11-16 11:00
清华大学 Java
Java语言的过滤数据流
过滤数据流 为了解决不同数据流之间速度、数据格式差异的问题,以便提高输入/输出操作的效率(特别是当需要大量的输入、输出操作的程序时),因此,Java贴心的提供了过滤流。 在已存在的数据流的基础上,过滤数据流与已经存在的数据流相联系,过滤流主要包括过滤输入数据流和过滤输出流。其中,过滤输入数据流从输入数据流中读取数据(以字节或者字符的形式存在),对这些数据进行加工处理,然后向内存提供特定格式的数据。而过滤输出数据流则是从内存中读取特定格式的数据,进行加工处理后,向输出数据流提供字节数据。 过滤流主要包括缓冲区数据流、数据数据流、管道数据流、对象数据流等。 缓...
0
点赞
评论
收藏
分享
1
2
3
4
5
6
13
关注他的用户也关注了:
牛客网
牛客企业服务