
程序员
程序员plus
这个作者很懒,什么都没留下…
展开
-
架构知识使用Redis的分布式Java锁
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。了解有关分布式锁定以及如何在项目中实现它的更多信息!什么是分布式锁定?在多线程程序中,不同的线程可能需要访问相同的资源。但是,允许所有线程同时访问资源可能导致争用情况,错误和其他意外行为。为了确保没有两个线程可以同时访问同一资源,并确保以可预测的顺序对资源进行操作,程序员使用一种称为锁的机...原创 2020-04-09 11:49:11 · 444 阅读 · 0 评论 -
在Tomcat中混合密钥
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。深入了解Tomcat,了解如何创建自签名RSA密钥,ECDSA密钥,以及如何通过多次保留验证Tomcat。在上一篇博客文章中,我们研究了Tomcat 8.5+如何使用SNI将证书映射到请求的主机名。Tomcat 8.5+可以更进一步,并为每个主机支持多种证书类型。 这对于在较旧的浏览器中...原创 2020-03-27 11:09:30 · 451 阅读 · 0 评论 -
技术干货MySQL分片DevOps挑战
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。之前,我们讨论了MySQL分片的应用程序和设计挑战以及可能导致并影响你的业务灵活性的一些相应业务挑战。 但是,MySQL如何应对DevOps挑战呢?作为参考,以下是有关MySQL分片的简要说明:MySQL分片是将MySQL应用程序工作负载划分到多个不同的MySQL数据库服务器上的策略,从而允许查询...原创 2020-03-26 10:26:38 · 368 阅读 · 0 评论 -
什么是Maven? 使用Apache Maven构建和依赖项管理
什么是Maven? 使用Apache Maven构建和依赖项管理开始使用最流行的Java构建和依赖管理工具MavenApache Maven是Java开发的基石,也是Java使用最广泛的构建管理工具。 Maven简化的基于XML的配置模型使开发人员能够快速描述或掌握任何基于Java的项目的轮廓,这使得启动和共享新项目变得很容易。Maven还支持测试驱动的开发,长期项目维护,其声明性配置和广泛...原创 2020-03-18 15:21:46 · 691 阅读 · 0 评论 -
JVM和Docker默认设置中的陷阱
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。以下是JVM中Docker默认设置之间的一些常见陷阱。首先,有很多关于JVM和容器意识的文章:在本文中,我使用Java 11,这意味着垃圾收集器的默认值应该是G1GC! 让我们看一下默认值,JVM会根据内存大小和提供的CPU自动选择这些默认值。基于Docker CPU的默认GC$ docker ...原创 2020-03-16 15:19:00 · 323 阅读 · 0 评论 -
流行语之外:微服务模式的简要历史
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。探索过去的软件设计模式对微服务创建的影响介绍微服务是商业应用程序开发中的热门新事物。 微服务一词已取代敏捷,DevOps和RESTful,成为所有履历表和会议演讲都必须使用的热门新流行语。 但是微服务不只是一时的流行。 实际上,它们是所有这些先前概念的演变,并且这种方法已经开始显示出有望解决应用程序...原创 2020-03-16 14:44:35 · 392 阅读 · 0 评论 -
Java中的常见并发陷阱
优锐课java学习分享笔记1.简介在本教程中,我们将看到一些Java中最常见的并发问题。 我们还将学习如何避免它们及其主要原因。2.使用线程安全对象2.1. 共享对象线程主要通过共享对相同对象的访问进行通信。 因此,在对象变化时读取可能会产生意外的结果。 同样,同时更改对象可能会使它处于损坏或不一致的状态。我们避免此类并发问题并构建可靠代码的主要方法是使用不可变对象。 这是因为它们的状...原创 2020-02-25 11:05:03 · 309 阅读 · 0 评论 -
何时使用异步或同步AJAX
通过优锐课中的java学习提升,了解了很多干货知识。通常最好使用异步调用AJAX代表异步JavaScript和XML,是一项允许异步更新网页的技术,这意味着当页面上只有一小部分数据发生更改时,浏览器不需要重新加载整个页面。 AJAX仅将更新的信息传递到服务器或从服务器传递。标准的Web应用程序同步处理Web访问者和服务器之间的交互。 这意味着一件事情接连发生。 服务器不执行多任务。 如果单击...原创 2020-02-24 12:42:56 · 365 阅读 · 0 评论 -
详解--数据封装
在优锐课的java架构学习中,数据封装是使用对象编程时要掌握的最重要概念。 在面向对象的编程中,数据封装与以下方面有关:结合数据及其在一个地方的处理方式。 这是通过对象的状态(私有字段)和行为(公共方法)实现的。仅允许通过行为访问和修改对象的状态。 然后可以严格控制对象状态中包含的值。隐藏对象工作原理的详细信息。 外界可以访问的对象的唯一部分是其行为。 这些行为内部发生的事情以及...原创 2020-02-20 16:06:51 · 2083 阅读 · 0 评论 -
面试问题详解--了解Java中字符串的串联
通过优锐课的java架构学习中,学到了很多干货知识点,分享给大家参考学习。Java编程语言中的串联是将两个字符串连接在一起的操作。 你可以使用加法(+)运算符或字符串的concat()方法连接字符串。使用+运算符使用+运算符是连接Java中两个字符串的最常见方法。 你可以提供变量,数字或字符串文字(始终用双引号引起来)。例如,要组合字符串“我是”和“学生”,请输入:"I’m a" + "...原创 2020-02-19 14:45:29 · 459 阅读 · 0 评论 -
创建一个Maven原型
通过优锐课的java架构学习分钟中,整理了本教程,以了解如何从现有项目中创建Maven原型。 此人使用Eclipse IDE创建Maven项目Java面试必备之JVM+GC教程介绍很多时候,我们需要创建一个Maven原型来分发项目模板。 在本文的本文中,我将描述从现有项目创建Maven原型是多么容易。创建一个Maven项目首先,让我们创建一个非常简单的Maven项目。 我正在使用Ecli...原创 2020-02-06 16:21:21 · 423 阅读 · 0 评论 -
用Java读取EDI数据
如今,大多数Java开发人员期望使用JSON来与其他系统和企业交换数据。但是,当无法使用JSON时会发生什么呢?容易忘记,还有其他格式的数据交换,其中一些更难处理。一种这样的格式称为EDI。EDI本身有多种风格(例如X12和EDIFACT),因此读取它的代码可能并不总是“一刀切”。特别期间通过优锐课在线的java分享中,了解了关于用Java读取EDI数据。受益匪浅,特整理出来供大家参考学习。...原创 2020-02-02 14:38:15 · 3474 阅读 · 1 评论 -
Netty:可能是世界上最好的包装结构
通过优锐课的java学习,在依赖项和包结构方面,Netty可能是首屈一指的。 看看是什么使它如此出色Netty的包装结构很棒。每个程序员都应该研究它。 每个系统都应该模仿它; 每个项目经理都应将其打印出来,打在墙上,然后对开发人员说:“那样”。Netty是一个“ …用于快速开发可维护的高性能协议服务器和客户端的异步事件驱动的网络应用程序框架”,但这并不重要,因为我们没有分析其行为。 而是看图...原创 2020-01-16 16:04:03 · 489 阅读 · 0 评论 -
带有Dubbo的Spring Cloud Alibaba
通过优锐课的java学习分享,看一下如何在阿里巴巴的Spring Cloud实现中使用这个流行的RPC框架。Spring Cloud AlibabaSpring Cloud Alibaba是Alibaba Cloud的Spring Cloud版本。 它由几个阿里巴巴的开源项目Nacos,Sentinel和RocketMQ以及几个阿里云原生商业产品组成,以增强用户在阿里云上的体验。 Spring...原创 2020-01-16 11:45:33 · 1292 阅读 · 0 评论 -
Spring MVC:HTTP消息转换器
了解有关Spring MVC和HTTP消息转换器的更多信息。通常,你需要为用户提供相同的数据,但是以不同的形式(例如JSON,PDF,XLS等)为用户提供。如果你的应用程序是基于Spring Framework的,则可以使用HTTP消息转换器来完成此任务。需要将HTTP请求(或其部分)转换为处理程序方法参数所需的类型(有关更多信息,请参阅处理程序方法—方法参数)时,或者需要处理程序方法返回值时...原创 2020-01-15 16:09:52 · 388 阅读 · 0 评论 -
实用 具有Spring Cloud和 Docker 的微服务架构
如何使用Spring Boot,Spring Cloud,Docker和Netflix的一些开源工具设置微服务架构。本文以使用Spring Boot,Spring Cloud和Docker构建的概念验证应用程序为例,为了解常见的微服务架构模式提供了一个起点。该代码在Github上可用,图像在Docker Hub上可用。你只需一个命令即可启动整个系统。作为该系统的基础,我选择了一个旧项目,该项...原创 2020-01-15 10:59:49 · 453 阅读 · 0 评论 -
Java中的静态字段
有时在特定类的所有实例中共享值是很有用的。静态字段和静态常量通过属于类而不是实际对象来启用这种类型的共享通过在优锐课的java架构学习分享中,讨论了关于类中定义的字段和方法只能在创建该类类型的对象时使用。例如,考虑一个简单的Item类,它可以跟踪商店中的商品: public class Item { private String itemName; public Item...原创 2020-01-14 17:48:20 · 986 阅读 · 0 评论 -
为什么在Java中String是不可变的?
String在Java中是不可变的。不可变类只是其实例无法修改的类。创建实例时实例中的所有信息都会初始化,并且无法修改该信息。不变类有很多优点。本文总结了为什么String被设计为不可变的。这篇文章从内存,同步和数据结构的角度说明了不变性概念。1.字符串池的要求字符串池(String intern pool)是“ 方法区”中的特殊存储区。创建字符串时,如果该字符串已存在于池中,则将返回现有字符...原创 2020-01-09 14:33:15 · 359 阅读 · 0 评论 -
学习java不可不知的潜规则
数学和英语很差,可以学java。但是你数学和英语不错的话,有利于你学习java。首先告诉你的是,作为一个初学者想转行学习Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来就是一件非常煎熬的事情,没有多少人愿意学习,但是或许你现在是身为一个应届生或者你是一个本职工作...原创 2019-07-01 15:35:44 · 425 阅读 · 0 评论 -
Java垃圾收集器和参考对象
我们来看一下Java中的垃圾收集器概念,以及它可以处理的各种引用对象类型,这使Java GC神秘化!通过优锐课的java学习分享中,我们将讨论Java中的一些内存管理概念,并将重点放在垃圾收集器与可用的不同参考对象之间的交互上。整理成了文档呈现在本文中,给大家参考学习。这不是介绍,所以让我们相互同意,你已经掌握了Java Heap和GC基础知识。 许多文章都很好地涵盖了该主题,你实际上可能想知...原创 2019-12-28 17:38:39 · 253 阅读 · 0 评论 -
Redis的异步,响应式和RxJava2接口
在优锐课的java架构学习中,让我们探索Redis的异步,反应式和RxJava2接口。异步,响应式和RxJava2都是Java编程语言中的所有相关编程模型。 但是,它们不能在Redis(用于实现内存中数据存储的开源软件项目)中自动提供。好消息是,这三种编程模型都可以在Redis中使用Redisson(Redisson)来使用,Redisson是将Redis与Java集成的第三方客户端库。 在本...原创 2019-12-28 15:19:26 · 867 阅读 · 0 评论 -
Apache Kafka应用程序中的机器学习和实时分析(第二部分)
在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。文章的第一部分在这啦,记得先看哦,不然看不懂哈,更有连贯性。Apache Kafka应用程序中的机器学习和实时分析(第一部分)嵌入式模型的流处理除了使用模型服务器和RPC通信之外,你还可以将模型直接嵌入到Kafka应用程序中。 这可以是利用Kafka Streams或K...原创 2019-12-27 12:03:11 · 285 阅读 · 0 评论 -
Apache Kafka应用程序中的机器学习和实时分析(第一部分)
在优锐课的java学习分享中,这篇文章探讨了构建ML基础结构的特定部分:在Kafka应用程序中部署分析模型以进行实时预测。Apache Kafka与机器学习(ML)之间的关系是一个有趣的话题,我在如何使用Apache Kafka在生产中构建和部署可伸缩机器学习以及使用Apache Kafka推动尖端机器学习方面写了很多。这篇文章介绍了构建机器学习基础架构的特定部分:在Kafka应用程序中部署分...原创 2019-12-27 11:41:11 · 412 阅读 · 0 评论 -
使用Spring Boot和Cloudant入门微服务
通过优锐课的java架构分享学习中,讨论了关于创建一个简单的微服务来管理Cloudant NoSQL数据库中的产品评论专题。收获颇丰,整理出来给大家参考学习,尤其是架构思维导图对于正在学习中的人很受益!预计时间阅读和遵循本教程中的步骤大约需要30分钟到一个小时。先决条件要完成本教程,你需要以下内容:JDK1.82.3以上版本Git客户安装这些工具后,请将示例应用程序从GitH...原创 2019-12-26 11:34:46 · 402 阅读 · 0 评论 -
最佳解读整理 Spring Bean生命周期:使用Spring Aware接口
在优锐课最新Java架构学习分享中,了解有关使用Aware接口访问Spring bean生命周期事件的更多信息,详细的思维导图让在迷茫中的人眼前一亮。码了很多专业的相关知识, 分享给大家参考学习。Spring Aware界面允许你查看Spring Framework的内部工作原理。通过Spring Aware接口,你可以访问Spring上下文或Spring bean生命周期事件。你的Sprin...原创 2019-12-25 11:22:39 · 1227 阅读 · 0 评论 -
RocketMQ:高可用性实施
在优锐课的java学习分享中,我们探索了RocketMQ的HA实现。我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。介绍当我们谈论HA时,通常人们会想到故障转移机制。 但是,使群集可用于消息也被认为是HA。 在某种程度上,我认为这比仅提供经纪人更重要。 毕竟,用户可以并且将会感受到这种可用性的影响。代码段这是场景:假设集群中有2个代理:master-a和master-b。 每...原创 2019-12-24 17:06:58 · 303 阅读 · 0 评论 -
微服务的设计模式(二)
在优锐课的学习分享中,讨论了关于微服务的许多设计模式的详细描述。码了很多专业的相关知识, 分享给大家参考学习。看到这里迷路的朋友们可以先看本文的上部分内容,这样思路更清晰!微服务的设计模式(一)客户端UI组合模式通过分解业务功能/子域来开发服务时,负责用户体验的服务必须从多个微服务中提取数据。 在整体世界中,从UI到后端服务只有一次调用,以检索所有数据并刷新/提交UI页面。 但是,现在不...原创 2019-12-23 11:00:11 · 325 阅读 · 0 评论 -
微服务的设计模式(一)
在优锐课的学习分享中,讨论了关于微服务的许多设计模式的详细描述。码了很多专业的相关知识, 分享给大家参考学习。微服务可以对你的企业产生积极影响。 因此,有必要知道如何处理微服务架构(MSA)和一些微服务设计模式,以及微服务架构的一般目标或原理。 这是微服务架构方法[1]中要考虑的四个目标。降低成本:MSA将降低设计,实施和维护IT服务的总体成本。提高发布速度:MSA将提高从构思到服务部...原创 2019-12-23 10:53:26 · 336 阅读 · 0 评论 -
人们疯狂编写错误代码的3个原因
在优锐课的程序员学习方法论理, 讨论了程序员为什么在各处都看到错误的代码? 发生这种情况的原因有几个。一起来看看在过去的几天里,我一直在思考为什么我们作为一个行业一直一直在生产不良代码。能够构建高质量代码的系统的开发人员数量很少,而且彼此之间就相去甚远,正如老套话所说,每个人就像大海捞针一样。1.明显原因我能想到的最明显的原因是,有好的程序员和不太好的程序员,技能水平较高的人和技能水平较低...原创 2019-12-20 15:35:34 · 858 阅读 · 0 评论 -
关于Linux运行级别,正确理解在这
通过优锐课核心java学习笔记中,我们可以看到关于Linux运行级别,码了很多专业的相关知识, 分享给大家参考学习。了解有关Linux运行级别的更多信息-正确的方法!你可以将Linux运行级别视为操作系统运行的不同“模式”。这些模式或运行级别中的每一个都有其自己的已打开或关闭的进程和服务的列表。 从Linux启动时开始,它始终处于某个运行级别。随着你继续使用计算机,此运行级别可能会更改,具体...原创 2019-12-14 21:50:22 · 831 阅读 · 0 评论 -
Spring Cloud Config Server —程序员门
通过优锐课核心java学习笔记中,我们可以看到,更改微服务的属性可能会导致一个复杂的问题。 在本文中,我们将看到Spring Cloud Config Server和微服务如何相处。码了很多专业的相关知识, 分享给大家参考学习。在分布式系统中管理微服务的配置是一项繁琐且耗时的任务,尤其是当我们谈论的是由大量微服务组成的大型系统时。每次需要更改微服务的配置时,都将转到相应的项目,更改其配置,然后...原创 2019-12-14 17:34:56 · 324 阅读 · 0 评论 -
在Java中快速创建kafka
在优锐课的java学习分享中,这个详细的教程将帮助你创建一个简单的Kafka生产者,该生产者可将记录发布到Kafka集群。在本教程中,我们将创建一个简单的Java示例,该示例创建一个Kafka生产者。 你创建一个名为my-example-topic的新复制的Kafka主题,然后创建一个使用该主题发送记录的Kafka生产者。将向Kafka制作人发送记录。同步发送记录,稍后,你将异步发送记录。在你...原创 2019-12-14 15:23:22 · 452 阅读 · 0 评论 -
如何使用Spring Cloud Contract进行测试
通过优锐课核心java学习笔记中,我们可以看到如何使用Spring Cloud Contract进行测试,码了很多专业的相关知识, 分享给大家参考学习。在使用Spring Cloud Contract进行测试了解有关消费者/提供商关系的更多信息以及如何使用Spring Cloud合同进行测试; 测试和验证API通信。1、了解如何使用Spring Cloud进行测试。随着许多行业转变为微服务...原创 2019-12-13 17:20:09 · 460 阅读 · 0 评论 -
java生成随机数方法大全(可指定范围、分布方式、类型、种子)
import java.util.Random;/**Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。java.lang.Math中的方法random()只产生double型的随机数。*/public class RandomNumber {public ...原创 2019-05-16 17:49:56 · 3652 阅读 · 0 评论 -
Java的继承实例
Java 继承继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类继承中最常使用的两个关键字是extends和implements。这两个关键字的使用决定了一个对象和...原创 2019-05-17 15:08:28 · 3152 阅读 · 0 评论 -
带你走进Java集合-HashMap的扩容机制-resize()
HashMap的底层数据结构是数组+链表+红黑树,我们知道数组的长度是固定的,所以涉及到扩容的概念,在HashMap中resize()方法就是完成这项工作的。resize()方法有两个主要的作用:1:初始化底层数组table2:进行扩容接下来我们从源码角度分析以下:第一段:映入眼帘的是获取当前的数组和扩容的阀门//把当前底层数组赋值给oldTabNode<K,V>[] o...原创 2019-05-24 11:24:39 · 1309 阅读 · 0 评论 -
Java集合系列-ConcurrentHashMap-put方法的全面解析
本篇文章主要对put方法做一个全面的理解,里面牵涉到很多的内容,也有很多理解不到位的地方,put方法我读源码前几遍时,对大致的脉络理解了,但是对里面比较细节的处理逻辑和判断通过一遍一遍的读和理解,才有点明白,然后把它写出来和大家分享,如有错误欢迎指正,使我们共同进步,此篇文章较长,请耐心看完,但是此篇文章对扩容和线程安全的内容一笔带过,这两个重要的内容,我有专门的文章去分析。本篇文章的主要内容如...原创 2019-05-24 11:53:01 · 3275 阅读 · 1 评论 -
零基础应该选择学习 java、php、前端 还是 python?
零基础应该选择学习 java、php、前端 还是 python?很多新手小白,还有想转这行的人都想知道的问题。以下就是我以个人经验发表的个人见解,如果你认同就请转发和点赞。这三门当中,首推Java。真的,Python当然是好,但是对于一个新入门的人,最重要的是先找到工作不是吗?而找工作的话,Java无疑是最容易的。对于跨行业的人而言,最困难的其实是第一步,那就是如何进入这个行业。如果你连进都...原创 2019-05-27 10:44:39 · 713 阅读 · 0 评论 -
自学Java到什么程度才能就业?
多年Java开发从业者:首先,这个问题主要问:自学Java编程技术,如果才能找到一份Java编程的工作。按照现在的招聘标准来看,无论你去哪个公司面试,你只需要满足他们公司的需求就可以。找到一份Java编程工作需要掌握的内容如下:首先是Javase作为Java最基本的学习内容,不在多说。然后是掌握Java的基本原理,因为做Java编程开发必须学会Java,用到Java非常多,但是现在很多公司是...原创 2019-05-27 11:22:26 · 1471 阅读 · 4 评论 -
面试题系列:TCP UDP HTTP 的关系和区别
TCP UDP HTTP 三者的关系:TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有HTTP、FTP、TELNET、SMTP、DNS等协议。TCP 传送控制协议(Transmission Control Protocol):TCP是传输...原创 2019-08-02 16:50:33 · 1773 阅读 · 0 评论