Java
文章平均质量分 88
训练营资料福利官
这个作者很懒,什么都没留下…
展开
-
Java线程教程:使用Java创建线程和多线程
与许多其他计算机语言不同,Java提供了对多线程的内置支持。Java中的多线程包含两个或多个可以同时运行的部分。Java线程实际上是一个轻量级进程。本文将介绍许多人发现棘手或难以理解的Java Thread概念。我将讨论以下主题:什么是Java线程? Java线程模型 Java多线程 Java主线程 如何创建Java线程?在继续第一个主题之前,请考虑以下示例:想象一下具有许多复杂功能的股票经纪人应用程序,例如下载最后的股价 查看价格以获取警告 分析特定公司的历史数据这..原创 2021-05-08 15:40:04 · 223 阅读 · 2 评论 -
探索Java无反射机制,如何节省启动内存资源消耗!
随着Java更新的新特性,例如体系结构决策及其要求。当前,云计算通常要求应用程序除了初始内存量少之外还要拥有更好的启动性。因此,有必要重新设计框架的制作方式,以消除反射的瓶颈。在框架中,反射在发挥着重要作用,无论是经典的ORM还是JAX-RS之类的REST API 。通过大量的减少各种操,从而使Javaer的工作变得更轻松。对于终端用户(这里指的是使用这些框架的用户)整个过程只需在类中添加一些符号,所有操作即可正常运行。它们的类元数据将被读取并用于促进某些进程。当前,执行这种类型的最流行的方法是通过原创 2021-04-13 13:05:19 · 1956 阅读 · 9 评论 -
2021年应届生与中高级程序员常见Java面试题
为了巩固在Java中的知识和概念,在这里我列出了最常见的Java面试问题,以便在面试的时候可以吊打面试官应届生常见面试问题问题1:Java中的框架是什么?答:框架是一组类和接口,它们提供了现成的体系结构。最佳的面向对象设计始终包括带有类集合的框架,以使所有类都执行相同类型的任务。问题2:使用Java定义集合框架。答:Java Collections Framework是接口和类的集合,这些接口和类有助于有效地存储和处理数据。Java Collection Framework提供...原创 2021-04-08 17:26:13 · 1255 阅读 · 2 评论 -
服务网格:为什么选择Istio?
在Istio Service Mesh中,必须说一说以下基本要点: 什么是服务网格? 为什么我们需要服务网格? 可用的服务网格类型以及为什么使用Istio? Istio-体系结构和实现。 Istio组件。 Istio功能。 什么是服务网格?在任何基于微服务的体系结构中,只要存在从一个微服务到另一个微服务的服务调用。我们无法推断或调试网络服务调用中发生的情况。如果无法正确诊断如果出现意外情况,那可能会导致很多问题。例如;性能问题...原创 2021-04-08 16:19:12 · 2324 阅读 · 17 评论 -
泛聊反射历史及机制原理
本文实例讲述了Java 反射机制原理与用法。分享给大家供大家参考,具体如下:Java 反射机制Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。Java反射机制提供的功能在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的成员变量和方法 生成动态代理反射相关的主要API:j..原创 2021-03-19 22:52:19 · 273 阅读 · 0 评论 -
Java架构百科大全——年薪50W必备的百科手册
一、强化篇-修炼内功心法1.1夯实基础及原理1.1.1CoreJAVA反射初始反射-泛聊反射历史及机制原理 理解JVM中Class字节码的生命周期 Java中9大内置反射操作对象 方法、字段、构造器的反射使用 反射应用场景及实战总结泛型理解Java的自动装箱及拆箱 泛型的正确使用方式 何为泛型的类型擦除 泛型使用中关于类型和限制的通配符理解 泛型的实战场景和总结集合理解Java中集合体系结构及层次关系 Collection体系 Map体系注解理...原创 2021-03-19 20:03:20 · 370 阅读 · 0 评论 -
最详细的设计模式总汇,收藏好,面试不再怕被问设计模式了!
设计模式六大原则单一职责原则 一个方法尽可能做一件事情,一般来说不应该让一个方法承担多个职责。 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。单一职责原则的定义是:应该有且仅有一个原因引起类的变更。SRP的原话解释是:There should never be more than one reason for a class to change. 单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口或设计是否原创 2020-07-20 14:31:39 · 176 阅读 · 0 评论 -
最近面试了一位5年的Java,一问三不知!还反怼我...
最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。在沟通中发现,由于年限不小,他们的定位基本都是高级及以上,毕竟,年限摆在那里,面个中级也不体面。面试时我打算聊点基础的,先打开一下话题,结果发现对于一些开发中很基本的问题,比如: Git的分支你们是怎么管理的? 接口保证幂等性是基本的要求,那么幂等性你们是怎么做的? 你们有用@Transa...原创 2020-05-09 18:43:07 · 683 阅读 · 0 评论 -
你以为简单工厂模式很简单,可能是因为你懂的只是冰山的一角
简单工厂模式基本定义:简单工厂模式又称之为静态工厂方法,属于创建型模式。在简单工厂模式中,可以根据传递的参数不同,返回不同类的实例。简单工厂模式定义了一个类,这个类专门用于创建其他类的实例,这些被创建的类都有一个共同的父类。模式结构:1. Factory:工厂角色。专门用于创建实例类的工厂,提供一个方法,该方法根据传递的参数不同返回不同类的具体实例。2. Product:...原创 2020-04-20 11:19:21 · 210 阅读 · 0 评论 -
程序员内功心法《设计模式》
灵魂三问第一问,什么是设计模式?设计模式是在软件工程实践过程中,JAVA使用者们总结出的良好的编程方法,使用设计模式能够增加系统的健壮性,易修改性和可扩展性,当你进行开发的软件规模比较大的时候,良好的设计模式会给编程带来便利,让系统更加稳定。第二问,为什么要学习设计模式?普遍的目的:1、别人都说要学,别人都说好,所以我要学2、面试会被问,所以必须学3、读源...原创 2020-04-15 09:45:12 · 390 阅读 · 1 评论 -
使用Let's Encrypt + Nginx生成免费HTTPS证书
Let’s Encrypt简介官网:https://letsencrypt.org/Let’s Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。certbot简介官方客户端 ...原创 2020-04-13 10:19:11 · 339 阅读 · 0 评论 -
谈谈缓存更新
看到好些人在写更新缓存数据代码时,先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。然而,这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。我不知道为什么这么多人用的都是这个逻...原创 2019-11-27 17:09:56 · 1173 阅读 · 0 评论 -
Java开发人员必备十大工具
Java世界中存在着很多工具,从著名的IDE(例如Eclipse,NetBeans和IntelliJ IDEA)到JVM profiling和监视工具(例如JConsole,VisualVM,Eclipse Memory Analyzer等)。在本文中,我将重点介绍适用于各种Java开发人员(例如核心Java和Web开发人员)的通用工具。该列表绝没有罗列出完整工具,如果您知道开发人员应该学习的...原创 2019-10-16 16:13:43 · 5519 阅读 · 0 评论 -
阿里P7架构师的9个建议,帮你早日成为优秀的架构师!
最近经常从读者那里收到有关他们希望成为一名更好的Java开发人员而不得解的烦恼的私信,他们应该学习什么以及他们如何成为一名优秀的Java开发人员。对此我分别回答了这些问题之后,现在我在这里做个总汇,我认为这个总汇它将使您成为更好的Java程序员和应用程序开发人员。如果您还没有了解过这些点,可以阅读本文,它将帮助您提高编程和编码技能,这对于成为顶尖的Java开发人员至关重要。这些技巧对核心J...原创 2019-10-16 16:11:07 · 286 阅读 · 0 评论 -
Java面试题中的Redis大合集,所有你想找的都在这里!
Redis 是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。``` Redis 支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs 等。 Redis 具备 LRU 淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过 Redis Sentinel 实现的高可用方案,同时还支持通过 Redis ...原创 2019-04-14 14:53:25 · 314 阅读 · 0 评论 -
Java进阶——带你入门分布式中的Nginx
如何实现服务器之间的协同功能呢?通过Nginx提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力;同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度。代理和反向代理代理(正向代理,目标服务器不知道谁在访问)位于客户端和目标服务器之间,起到一个中转的作用。其实就是客户端想访问目标服务器...转载 2019-04-14 14:15:26 · 271 阅读 · 0 评论 -
初中级程序员进阶高级程序员,必须要了解的设计模式(45种设计模式)
设计模式(45种)设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证...原创 2019-04-16 16:05:40 · 1063 阅读 · 0 评论 -
Java程序员面试必须要看的:史上最全Spring面试题与答案
Spring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。 控制...原创 2019-03-08 22:05:00 · 359 阅读 · 0 评论 -
初探JVM,你只需要看这篇文章!
1 官网1.1 寻找JDK文档过程www.oracle.com -> 右下角Product Documentation -> 往下拉选择Java ->Java SE documentation-> Previous releases -> JDK 8 -> 此时定位到:https://docs.oracle.com/javas...1.2 Th...原创 2019-09-26 10:49:16 · 182 阅读 · 0 评论 -
工作5年的Java程序员,才学会阅读源码,可悲吗?
最近一位5年开发经验的群友与我聊天他说:最近慢慢的尝试去看spring的源码,学习spring,以前都只是会用就行了,但是越是到后面,发现只懂怎么用还不够,在面试的时候经常被问到一些开源框架的源码问题,即使在网上各种百度,当时回答出来也会是很皮毛,不痛不痒的解答。对于目前碰到的瓶颈,他不知道怎么办。 我相信,绝不仅仅只有他一个人遇到这样的瓶颈,中国上百万的Java程序员中,大部...原创 2019-02-14 21:25:13 · 1555 阅读 · 0 评论 -
关于Spring Boot你不得不知道的事
1 Spring Boot官网[2.1.5 CURRENT GA] 1.1 Pivotal Wiki Pivotal Software, Inc. is a software and services company based in San Francisco and Palo Alto, California, with several other offices. Divisio...原创 2019-06-15 14:28:15 · 203 阅读 · 0 评论 -
关于Spring Boot你不得不知道的事--Spring Boot的基本操作
1 Pom文件1.1 spring-boot-starter-parent表示当前pom文件从spring-boot-starter-parent继承下来,在spring-boot-starter-parent中提供了很多默认配置,可以简化我们的开发。<parent> <groupId>org.springframework.boot</grou...原创 2019-06-20 16:53:04 · 411 阅读 · 0 评论 -
阿里P7工作总结:Spring MVC的工作原理,看完受益匪浅
这篇文章将深入探讨Spring框架的一部分——Spring Web MVC的强大功能及其内部工作原理。这篇文章的源代码可以在GitHub上找到。项目安装在本文中,我们将使用最新、最好的Spring Framework 5。我们将重点介绍Spring的经典Web堆栈,该堆栈从框架的第一个版本中就崭露头角,并且现在依然是用Spring构建Web应用程序的主要方式。对于初学者来说,为...转载 2019-06-27 16:55:38 · 337 阅读 · 0 评论 -
Spring Boot注解分析
1 注解1.1 定义Annotation(注解),用于为Java代码提供元数据。简单理解注解可以看做是一个个标签,用来标记代码。是一种应用于类、方法、参数、变量、构造器及包的一种特殊修饰符。1.2 注解的声明@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpu...原创 2019-06-29 19:59:50 · 232 阅读 · 0 评论 -
Spring高频面试题,你能答的上哪些?(高级篇)
1、什么是 Spring 框架?Spring 框架有哪些主要模块?2、使用 Spring 框架能带来哪些好处?3、什么是控制反转(IOC)?什么是依赖注入?4、请解释下 Spring 框架中的 IoC? 5、BeanFactory 和 ApplicationContext 有什么区别?6、Spring 有几种配置方式?7、如何用基于 XML 配置的方式配置 Spring? ...原创 2019-07-25 19:49:11 · 535 阅读 · 1 评论 -
真实上海IT圈:张江男VS漕河泾男!【转】
通过比较上海各住宅小区在工作日晚餐与夜宵时段一人食外卖订单指数我们会发现:上海IT圈两大胜地:张江高科和漕河泾双双上榜其中张江位列《上海最孤独的15个区域榜单》第一名真实的上海IT圈大揭秘《张江男vs 漕河泾男》上海张江:想必很多没有来过上海的童鞋也听过它的名字,提起上海 IT 圈,很多人的第一反应都是张江高科技园亦或是张江IT男。...转载 2019-09-04 09:50:18 · 1042 阅读 · 0 评论 -
一文详解微服务架构
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网上超市应用为例来说明这一过程。最初...转载 2019-09-18 11:43:59 · 141 阅读 · 0 评论 -
一文读懂什么是JVM中的内存模型与垃圾回收!
扩展阅读:初探JVM,你只需要看这篇文章!六、内存模型6.1、内存模型与运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同数据区域。Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。这里所讲的主内存、工作内存与Java内存区域中的Java堆、栈、方法区等并不是同一层次的内存划...原创 2019-09-26 11:12:22 · 264 阅读 · 0 评论 -
一次跨行取款失败,而引发对分布式事物的思考
场景不知道大家有没有遇到这样的情况,就是去自动取款机取钱的时候,比如说你去取1000块钱,这个时候系统会先帮你把1000块钱扣除,然后自动取款机再把钱吐出来。但是如果取款机出现问题,会发现钱被扣了,但是钱没有取出来。我第一次遇到这个问题的时候很担心,当时跨行取取了3000块钱,短信提醒我钱已经被扣了,但是钱没取出来,于是准备去找柜台帮忙处理的时候,手机上又收到一笔交易提醒,提示钱被退回来了!...原创 2019-09-27 14:22:18 · 203 阅读 · 0 评论 -
阿里面试官分享的Java面试中需要准备多线程并发的技术要点
在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。所以你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为候选人中有很多只浮于表面。用于直接面向市场交易的高容量和低延时的电子交易系统在本质上是并发的。一、概念什么...原创 2018-04-23 13:16:04 · 635 阅读 · 0 评论 -
实现RabbitMQ 延时消息
RabbitMQ 延时消息的实现(上)我们在实际业务中有一些需要延时发送消息的场景,例如:家里有一台智能热水器,需要在30分钟后启动 未付款的订单,15分钟后关闭注意这里的场景是延时,不是定时。当然,解决了延时,定时就很简单了(定时=当前时刻+间隔时间)。由于RabbitMQ本身不支持延时队列(延时消息),所以要通过其他方式来实现。总的来说有三种:先存储到数据库,用定时任务扫描...原创 2019-01-23 13:58:24 · 6156 阅读 · 0 评论 -
月薪20K的Java程序员很厉害?八年程序猿却说:我被裁只用了5分钟
场景一之前,一位在我交流群里的群友找我诉苦:工作8年,从事Java开发相关的工作6年,最近(18年7月)失业快4个月,还是没有找到合适的工作。 感觉自己已经废掉了,一直在金融公司从事Java开发工作,之前薪资18K ,深圳。更多的时候,工作属于软件项目管理,比如以下:1.需求分析,把客户发过来的软件需求,分类分解,分给对应模块人员2.分派任务,测试测出bug,然后自己做...原创 2019-01-24 17:56:17 · 1470 阅读 · 0 评论 -
「阿里面试系列」Synchronized底层原理
文章简介synchronized想必大家都不陌生,用来解决线程安全问题的利器。同时也是Java高级程序员面试比较常见的面试题。这篇文正会带大家彻底了解synchronized的实现。内容导航什么时候需要用Synchronized synchronized的使用 synchronized的实现原理分析什么时候需要用Synchronized想必大家对synchronized都不陌...原创 2018-12-23 19:20:32 · 592 阅读 · 0 评论 -
互联网Java架构系统化学习路线
网络应用,最常见的研发语言是Java的和PHP。后端服务,最常见的研发语言是Java的和C / C ++。大数据,最常见的研发语言是Java的和Python的。可以说,Java的是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java的技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。有不少朋友问,除了掌握Java的语法,还要系统学习哪些的Java相关的技术,...原创 2018-06-07 16:16:53 · 1658 阅读 · 0 评论 -
用简单的方法构建一个高可用服务端
一。什么是高可用性服务端,顾名思义就是为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。停工的原因一般有:服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等。访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因有:时间和访问量都可以预见的,例如秒杀活动,售票系统。时间和访问量都不可以预见的,例如特发性新闻(马航失联...原创 2018-05-24 19:00:31 · 520 阅读 · 0 评论 -
十面阿里——菜鸟,蚂蚁金服,天猫带回来的面试总汇
虽然天猫,蚂蚁金,菜鸟都归属阿里旗下,但每个面试官问的问题都不一样,相同点主要在流程方面。面试开始会让自我介绍,主要业务架构和技术架构两部分。业务架构一般不会深究,但要面试官听明白,并且一般面试官会顺着问是如何根据这些业务去设计技术架构的。面试试题其他什么是幂等?什么情况下需要考虑幂等?你怎么解决幂等的问题?Java多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选...原创 2018-05-10 19:37:13 · 891 阅读 · 0 评论 -
把项目迁移到Kubernetes上的5个小技巧
我们将在本文中提供5个诀窍帮你将项目迁移到Kubernetes上,这些诀窍来源于过去12个月中OpenFaas社区的经验。下文的内容与Kubernetes 1.8兼容,并且已经应用于OpenFaaS - Serverless Functions Made Simple的实践中。免责声明因为Kubernetes 的API更新的特别频繁,请参考官方文档获得最新信息。1. 将所有的内容都放进Docker...原创 2018-05-03 21:36:42 · 1380 阅读 · 1 评论 -
阿里,百度,腾讯等一线互联网公司中,Java开发的招聘标准
金三银四的跳槽热潮即将过去,在这两个月的跳槽的旺季中,作为互联网行业的三大巨头,百度、阿里巴巴、腾讯对于互联网人才有很大的吸引力,他们的员工也是众多互联网同行觊觎的资深工程师、管理者人选。下面我总结了进入这三家公司你所需掌握的技能:阿里巴巴篇扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等具有扎实的Java编程基础,理解IO、多线程等基础框架熟练使用Linu...原创 2018-04-20 15:16:31 · 3460 阅读 · 1 评论 -
阿里架构师的成长之路,Java开发者的技术梦要如何实现
写在开篇:不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线...原创 2018-04-13 22:46:34 · 2505 阅读 · 0 评论 -
浅析常用软件架构中的三种架构模型
常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。一.三种架构模型1.3/N层架构这是经典的多层架构模型,对于稍微复杂一点或特别复杂的系统,不使用分层架构是很难想象的。下图是经典的3层架构:如今,凡是个程序员都能侃侃而谈3/N层架构,这确实是解决系统复杂性的一种主流模式,但是,只要采用了3/N层架构是不是就一定能解决系统的复杂性了?不一定,关键在于你在你的...原创 2018-04-13 15:48:01 · 1066 阅读 · 0 评论