首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
java编程营地
获赞
218
粉丝
176
关注
7
看过 TA
170
男
中国科学院大学
2019
Java
IP属地:湖南
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑java编程营地吗?
发布(853)
评论
刷题
java编程营地
关注TA,不错过内容更新
关注
2021-07-07 18:24
已编辑
中国科学院大学 Java
还在写大量 if 来判断?试试用一个规则执行器来替代它
近日在公司领到一个小需求,需要对之前已有的试用用户申请规则进行拓展。我们的场景大概如下所示: 按照上述的条件我们可以得出的结论是: 咱们的主要流程主要是基于 and 或者 or 的关系。 如果有一个不匹配的话,其实咱们后续的流程是不用执行的,就是需要具备一个短路的功能。 对于目前的现状来说,我如果在原有的基础上来改,只要稍微注意一下解决需求不是很大的问题,但是说后面可维护性非常差。 后面经过权衡过后,我还是决定将这个部分进行重构一下。 规则执行器 针对这个需求,我首先梳理了一下咱们规则执行器大概的设计, 然后我设计了一个 V1 版本和大家一起分享一下,如果大家也有这样的...
0
点赞
评论
收藏
分享
2021-07-07 18:24
已编辑
中国科学院大学 Java
四面字节跳动Java研发岗,最终拿下Offer,只有努力,方能成功
这次面试字节跳动也是做了很多的准备,还好顺利拿到了offer,特分享一下这次的4面技术面真题,以及一份字节2-2师兄整理的面试手册,希望能够给一些正在面试字节或计划面试大厂的朋友提供帮助。 字节跳动技术一面 讲一下线程参数的含义 Innodb的索引实现 为什么是B+树? Redis的使用,分布式锁的实现 操作系统虚拟内存换页的过程 TCP三次握手 volatile关键字的作用 乐观锁、悲观锁 之前用过哪些设计模式? 算法题:滑动窗口 字节跳动技术二面 说一下B树和B+树的区别 说一下HashMap的实现,扩容机制,扩容时如何保证可操作? Redis扩...
0
点赞
评论
收藏
分享
2021-07-07 18:24
中国科学院大学 Java
从bitmap到布隆过滤器,再到高并发缓存设计策略
bitmap和布隆过滤器 海量整数中是否存在某个值--bitmap 在一个程序中,经常有让我们判断一个集合中是否存在某个数的case;大多数情况下,只需要用map或是list这样简单的数据结构,如果使用的是高级语言,还能乘上快车调用几个封装好的api,加几个if else,两三行代码就可以在控制台看自己“完美”而又“健壮”的代码跑起来了。 但是,事无完美,在高并发环境下,所有的case都会极端化,如果这是一个十分庞大的集合(给这个庞大一个具体的值吧,一个亿),简单的一个hash map,不考虑链表所需的指针内存空间,一亿个int类型的整数,就需要380多M(4byte × 10 ^8),...
0
点赞
评论
收藏
分享
2021-07-07 18:23
已编辑
中国科学院大学 Java
阿里P9封神之作!RocketMQ核心笔记疯传Ali内网
消息队列(RocketMQ )作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。 RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力 选择RocketMQ的理由: 强调集群模式无单点,可扩展,任意一点高可用,水平扩展 海量数据的堆积能力,消息堆积后,写入延迟低 支持上万个队列 消息失败重试机制 消息可查询 开源社区灵活 成熟度(支持阿里双十一) RocketMQ 核心的四大组件:Name Se...
0
点赞
评论
收藏
分享
2021-07-07 18:23
已编辑
中国科学院大学 Java
别再用 kill -9了,这才是微服务上 下线的正确姿势
对于微服务来说,服务的优雅上下线是必要的。 就上线来说,如果组件或者容器没有启动成功,就不应该对外暴露服务,对于下线来说,如果机器已经停机了,就应该保证服务已下线,如此可避免上游流量进入不健康的机器。 优雅下线 基础下线(Spring/SpringBoot/内置容器) 首先JVM本身是支持通过shutdownHook的方式优雅停机的。 此方式支持在以下几种场景下优雅停机: 程序正常退出 使用System.exit() 终端使用Ctrl+C 使用Kill pid干掉进程 那么如果你偏偏要kill -9 程序肯定是不知所措的。 而在Springboot中,其实...
0
点赞
评论
收藏
分享
2021-07-07 18:22
已编辑
中国科学院大学 Java
再见 Jenkins!几行脚本搞定自动化部署,这款神器有点厉害
在开发或生产环境中,我们经常会搞一套自动化部署方案(俗称一键部署)。比较流行的一种就是Gitlab+Jenkins实现方案,不过这种方案占用内存比较大,没有个8G内存,很难流畅运行,而且部署起来也不快。最近发现一款神器Drone,轻量级CI/DI工具,结合Gogs使用内存占用不到1G,几行脚本就能实现自动化部署,推荐给大家! Drone简介 Drone是一款基于容器技术的持续集成工具,使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务,在Github上已经有22K+Star。 Gogs安装 我们将使用轻量级的Gogs来搭建Git仓库,这里只是简单说下...
0
点赞
评论
收藏
分享
2021-07-07 18:22
已编辑
中国科学院大学 Java
还在搞三层架构?了解下 DDD 分层架构的三种模式吧
引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。 DDD DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。 UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你在团队中的角色如何,只要你是团队的一员,你都将使用UL。由于UL的重要性,所以需要让每个概念在各自的上下文中是清晰无歧义的,于是DDD在战略设计上提出了模式BC(Bounded Context,限接...
0
点赞
评论
收藏
分享
2021-07-07 18:22
已编辑
中国科学院大学 Java
漫画版:为什么Java里面的String对象是不可变的?
String的不变性 String在Java中特别常用,相信很多人都看过他的源码,在JDK中,关于String的类声明是这样的: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { } 可以看到,String类是final类型的,那么也就是说,String是一个不可变对象。 不可变对象是在完全创建后其内部状态保持不变的对象。这意味着,...
0
点赞
评论
收藏
分享
2021-07-07 18:21
已编辑
中国科学院大学 Java
两年java到底应该具备什么样的水平,才能面试BATG大厂
前言 从过年前就萌生出要跳槽换城市的想法,到过年来公司从3月初提出离职到23号正式离职,上班的时间也出去面试过几家公司,后来总觉的在职找工作总是得请假,便决心离职后找工作。到4月10号找到了一家互联网公司成功应聘上,中间也经历了很多公司,有外包的、创业的、互联网的等等各种类型,也收到了很多offer,也有面试不顺利的...今天就通过博客来记录一下自己面试中的问题,围绕着两年java到底应该具备什么样的水平才能适应现在市场的要求的主题来谈一谈。 本篇目录: 一:面试中的问题 二: 面试中要注意的问题 三:关于最后的选择 四:两年java到底应该具备什么样的水平 一:面试中的问题 ...
0
点赞
评论
收藏
分享
2021-07-07 18:21
中国科学院大学 Java
如何在面试中介绍自己的项目经验,拿到BATG等大厂 Offer
在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。 根据我们的面试经验,发现有不少候选人对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果。 1 第一印象就不好了,至少会感觉该候选人表述能力不强。 2 一般来说,面试官会根据候选人介绍的项目背景来提问题,假设面试时会问10个问题,那么至少有5个问题会根据候选人所介绍的项目背景来问,候选人如果没说好,那么就没法很好地引导后继问题了,就相当于把提问权完全交给面试官了。 面...
0
点赞
评论
收藏
分享
2021-07-07 18:20
中国科学院大学 Java
java泛型的重要性
一、什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。 可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象,即使最常见的情况是在给定映射(map)中保存某个特定类型(比如 String)的对象。 因为 Map.get() 被定义为返回 Object,所以一般必须将 Map.get() 的结果强制类型转换为期...
0
点赞
评论
收藏
分享
2021-07-07 18:20
中国科学院大学 Java
告诉面试官什么是Java 线程 ,吊打他!
Java 线程优先级 Thread 类中,使用如下属性来代表优先级。 private int priority; 我们可以通过 setPriority(int newPriority) 来设置新的优先级,通过 getPriority() 来获取线程的优先级。 有些资料通过下面的例子就得出了一个结论:Java 线程默认优先级是 5。 public static void main(String[] args) { Thread thread = new Thread(); System.out.println(thread.getPriority()); } // ...
0
点赞
评论
收藏
分享
2021-07-07 18:19
已编辑
中国科学院大学 Java
深入浅出 JVM ClassLoader,如何去理解
前言 在 JVM 综述里面,我们说,JVM 做了三件事情,Java 程序的内存管理, Java Class 二进制字节流的加载(ClassLoader),Java 程序的执行(执行引擎)。我们也说,我们大部分情况下只关注前2个。在前面的文章中,我们已经分析了内存关系相关的,包括运行时数据区,GC 相关。今天我们要讲的就是类加载器。 在 JVM 综述 里,我们已经大致分析了一些概念。而今天的文章将详细的阐述类加载器。 首先,我们要了解类加载器,当然,了解的目的是为了更好的开发,通过对类加载器的解读,看看我们能不能做些什么,比如修改类加载器的加载逻辑,比如加入自定义的类加载器等等功能。 让...
0
点赞
评论
收藏
分享
2021-07-07 18:19
已编辑
中国科学院大学 Java
Spring Boot实战:模板引擎
虽然现在很多开发,都采用了前后端完全分离的模式,即后端只提供数据接口,前端通过AJAX请求获取数据,完全不需要用的模板引擎。这种方式的优点在于前后端完全分离,并且随着近几年前端工程化工具和MVC框架的完善,使得这种模式的维护成本相对来说也更加低一点。但是这种模式不利于SEO,并且在性能上也会稍微差一点,还有一些场景,使用模板引擎会更方便,比如说邮件模板。这篇文章主要讨论Spring boot与模板引擎Thymeleaf、Freemaker以及JSP的集成。 一、集成Thymeleaf 第一步:引入jar包(thymeleaf对应的starter): 1 2 3...
0
点赞
评论
收藏
分享
2021-07-07 18:19
已编辑
中国科学院大学 Java
[Java面经分享] 关于面试的二三事.
今天终于闲下来了, 那么也好总结下这几天面试的经历. 四天的时间一共面了七家, 有一家是自己推迟了没有去. 先总结下这么几次面试下来的感受: 1, 先了解市场行情,给出自己的市场定位 了解你所找工作 的一些市场行情, 这样你就知道自己的一个水平是可以拿到一个什么价位了. 因为基本上每家公司都会提前对你的期望工资有个了解, 了解市场行情对你找工作也很有帮助.2, 对于基础知识做好充足的准备 面试之前我以为面试官更注重于你的项目使用了什么框架, 以及这些框架的原理. 但是真实的面试是面试官都很注重你对于基本知识的理解. 后面会详细说到问了什么内容.3, 好工作= 平台 + 薪资 当我们选择用人单...
0
点赞
评论
收藏
分享
1
28
29
30
31
32
57
关注他的用户也关注了:
牛客网
牛客企业服务