- 博客(159)
- 资源 (9)
- 收藏
- 关注
原创 什么样的自学Java网站才适合学习者?
前言有很多Java学习者常常问我一些在学习Java过程中遇到的问题,我发现很多问题总是卡在该知识点的概念层面,比如:一个多线程的程序这样加锁对不对?什么是原子性? 这个Lambda表达式为什么编译不通过?这个问题是不是分布式事务所导致?等等…我会去耐心解释,不过我也挺着急的,因为我觉得还有更多的Java学习者遇到了这些问题而无从下手,或就此放弃。这些问题的关键就是学习者在没有彻底搞清楚该技术点的来龙去脉就开始编写代码、去应用所导致,也许是学习方法不对,也许是学习教程里没有讲明白…曾经自己带团队作项目
2021-07-24 13:32:55 504 1
原创 java.util.function函数式接口应用举例
Java函数式接口介绍Java8中有很多现成的函数式接口,它们在java.util.function包下,查看jdk文档,下图是部分的函数式接口:前边学习Lambda知道,函数式接口只有一个抽象方法,下边打开函数接口Consumer源代码,如下:package java.util.function;import java.util.Objects;@FunctionalInterfacepublic interface Consumer<T> { void accep
2021-07-23 11:15:39 1072
原创 Sharding JDBC教程之读写分离
1 理解读写分离 面对日益增加的系统访问量,数据库的吞吐量面临着巨大瓶颈。 对于同一时刻有大量并发读操作和较少写操作类型的应用系统来说,将数据库拆分为主库和从库,主库负责处理事务性的增删改操作,从库负责处理查询操作,能够有效的避免由数据更新导致的行锁,使得整个系统的查询性能得到极大的改善。 通过一主多从的配置方式,可以将查询请求均匀的分散到多个数据副本,能够进一步的提升系统的处理能力。 使用多主多从的方式,不但能够提升系统的吞吐量,还能够提升系统的可用性,可以达到在任何一个数据库宕机,甚至磁盘物理
2021-06-05 08:07:44 4488 2
原创 SpringBoot2.5.0快速入门教程
1 Spring Boot入门程序1.1 Spring Boot是什么?Spring Boot是一套可以快速创建Spring应用程序的框架,它要实现如下目标:1、提供更快使用Spring的方案。2、解决创建Spring应用程序过程使用XML配置的繁琐问题。大量的XML配置使用整个工程的构建过程非常繁琐,Spring Boot则要解决这个问题。3、提供一系列大型项目通用的非功能性功能(例如嵌入式服务器,安全性,指标,运行状况检查和外部化配置)。4、解决复杂的jar包依赖的问题通常我们需要手动在
2021-05-29 22:29:28 4289 4
原创 Java基础进阶-ArrayList原理
1、ArrayList介绍ArrayList是List接口的实现类,它表示动态数组,何为动态数组?我们定义一个数组类型的变量需要指定数组的长度,长度一旦指定就无法扩容,比如:我们定义一个100个元素长度的数组,当需要存储的元素个数达到100以上时多余的元素将无法存储,ArrayList动态数组可以解决这个问题,ArrayList可以实现自动扩容数组。ArrayList的特点如下:1)查询快ArrayList的底层是数组,根据索引查询元素速度很快。2)增删慢向数组添加或删除元素后需要移动其它元素
2021-05-19 16:09:45 249
原创 跟传智燕青学微服务开发02-搞清负载均衡
什么是负载均衡负载均衡就是将用户请求(流量)通过一定的策略,分摊在多个服务实例上执行,它是系统处理高并发、缓解网络压力和进行服务端扩容的重要手段之一。它分为服务端负载均衡和客户端负载均衡。服务器端负载均衡Nginx属于服务端负载均衡,如下图:在负载均衡器中维护一个可用的服务实例清单,当客户端请求来临时,负载均衡服务器按照某种配置好的规则(负载均衡算法)从可用服务实例清单中选取其一去处理客户端的请求。这就是服务端负载均衡。通过Nginx进行负载均衡,客户端发送请求至Nginx,Nginx通过负载均
2021-05-13 09:25:48 156
原创 跟传智燕青学微服务开发01-搞清服务发现
什么是服务发现在微服务架构中,整个系统会按职责能力划分为多个服务,通过服务之间协作来实现业务目标。这样在我们的代码中免不了要进行服务间的远程调用,服务的消费方要调用服务的生产方,为了完成一次请求,消费方需要知道服务生产方的网络位置(IP地址和端口号)。我们的代码可以通过读取配置文件的方式读取服务生产方网络位置,如下:我们通过Spring boot技术很容易实现:Service B(服务生产者)Service B是服务的生产方,暴露/service服务地址,实现代码如下:@SpringBootA
2021-05-13 09:20:06 171
原创 Java分布式认证技术方案
序言分布式系统的每个服务(系统)都会有认证、授权的需求,如果每个服务都实现一套认证授权逻辑会非常冗余,考虑分布式系统共享性的特点,需要由独立的认证服务来处理系统认证授权的请求;下图是攀博课堂支付平台架构图,包括:商户平台应用、运营平台应用、门户应用,每个应用都需要身份认证,闪聚支付平台统一由UAA认证服务完成认证。1、前端请求UAA认证服务请求认证,认证通过获取 Token2、前端携带Token访问各各应用。下边介绍UAA认证服务的认证方案。基于session的认证方式在分布式的环境下,基于
2021-05-09 16:37:26 656 4
原创 彻底搞懂JWT令牌
什么是JWT?JSON Web Token(JWT)是一个开放的行业标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。JWT可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止被篡改。JWT令牌的优点1、jwt基于json,非常方便解析。2、可以在令牌中自定义丰富的内容,易扩展。3、通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高。JWT令牌结构JWT令牌由Header、Payload、Sig
2021-05-08 14:54:11 656
原创 彻底搞懂Java面向接口编程
定义接口接口的例子接口这个词在日常生活中经常听到,比如:USB接口,电源插座接口等,下边通过了解USB接口和电源插座接口来理解接口的意义。1)USB接口引用百度百科,USB是通用串行总线(英语:Universal Serial Bus,缩写:USB)是一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。最新一代是USB 3.1,传输速度为10Gbit/s,三段式电压5V/12V/20V,最大供电
2021-04-27 13:30:41 506 1
原创 彻底搞懂Java多态
很多初学者在自学Java时候都卡在了Java多态,本教程从实际案例出发阐述Java多态现象及Java多态的原理。通过案例理解多态的现象需求描述多态是类在继承关系下的一种形态,下边先通过一个需求展示下多态的现象。攀博课堂是一个在线教育学习平台,有一个具体的功能需求:当学员登录后系统需要根据学员的类型获取他在攀博课堂的服务权限,比如:对于普通学生他可以自学Java课程、下载资源、在线问答交流,对于Vip学员还可以额外有专属老师指导、专属交流群等 Vip服务,如何使用面向对象的编程思想实现这一功能需求。
2021-02-26 09:46:43 6597 9
原创 传智燕青公众号 分享
我是传智燕青,一个有20年软件研发经验的老技术男,感谢大家对我讲的SpringMVC/Mybatis/学成在线/闪聚支付等课程的认可,我喜欢探险式的技术攻关,从零开始技术研究、课程创作到传播知识的整个过程非常兴奋。今天开通了“传智燕青”公众号,我会在本众号分享我 的技术成果,希望能够带给你快乐,也希望对技术一丝不苟的各位网友一起讨论研究技术,分享技术。我的wx号:pbteach,wx公众号:传智燕青,欢迎一起聊技术聊生活。...
2021-02-26 09:25:54 342
原创 彻底搞清类的依赖关系、关联关系、聚合关系、组合关系
依赖关系在生产中,很多场景下类与类之间都存在一定的联系,类之间的关系包括:依赖、关联、聚合、组合、继承等 ,通过学习类之间的关系有利提高面向对象编程的能力,为解决生产实际问题打下基础。假设有两个类,类A和类B,类A的某个成员方法的参数有类B,说明类A使用了类B,类A依赖类B,依赖关系即uses-a关系,依赖关系除了被依赖方作为依赖方的方法参数,还可能作为依赖方的方法返回值存在,这些都是依赖关系的表现形式。如下图所示:依赖关系的例子有很多,比如:LocalDateTime的now方法根据时区ID创建L
2021-02-15 08:03:11 5852 1
原创 static静态变量与static静态方法
什么是静态变量最初接触main方法,它用static修饰,用static修饰方法叫静态方法,用static修饰变量叫静态变量。静态变量与成员变量一样都是定义在方法外,但与成员变量有本质的区别。1、静态变量与对象无关,成员变量与对象有关。静态变量与类有关,也称为类变量,加载类文件到方法区时在堆中单独开一个静态变量的空间用于存储静态变量。成员变量与对象有类,创建对象后成员变量在对象内存区开辟内存空间,所以成员变量也叫实例变量。可以理解为:每个对象有自己的成员变量,每个对象共用一份静态变量。2、定义
2021-02-15 07:54:34 995
原创 LocalDate&Period日期计算与LocalDateTime&Duration日期时间计算
前言项目中jdk8日期类库使用较多,本文对LocalDate日期计算和LocalDateTime日期时间计算进行阐述,通过例子测试日期计算的常用方法。LocalDate日期计算在应用开发中不可避免要进行日期的计算,如:计算几天后的日期,两个日期相差的天数等 。api如下,plus开头的方法是加上指定的天数、月数、年数,minus开头的方法是减去指定的天数、月数、年数:例子:package com.pbteach.javase.oop.dateapi;import java.time.Dur
2021-02-13 11:40:44 2796 2
原创 LocalDateTime的基本使用
LocalDateTime基本介绍从名字上可以看出来java.time.LocalDateTime是一个可以表示日期时间的对象,代表日期时间,通常被视为年 - 月 - 日 - 时 - 分 - 秒,也提供了其他日期和时间字段,例如星期。LocalDateTime的时间精度为纳秒精度(1秒=1000毫秒,1毫秒=1000微秒,1微秒=1000纳秒)。打开jdk8的api文档,找到java.time.LocalDateTime,分别了解它的构造方法、静态方法及对象方法等 。java.time.LocalDa
2021-02-13 11:24:20 8834 5
原创 final应用大全
final的作用final关键字表示不可变的意思,它可以修饰类、成员变量、成员方法以及局部变量。用final修饰一个类表示该类不可变,编译器不允许子类继承一个final的类;用final修饰一个方法表示该方法不允许子类去重写;用final修饰一个成员变量或局部变量表示该变量一旦赋值不允许修改。final修饰类下边是一个final修饰类的例子,用final修饰的类子类是无法继承的。定义PbStudent类并使用final修饰:package com.pbteach.javase.oop.fin
2021-02-13 11:17:52 320
原创 一篇文章搞定Java枚举类型
前言Java枚举类型虽然在特定的场景下通途很大,比如:对系统代码、系统参数等使用枚举类型表示,不仅解决使用常量配置参数可读性差的问题,还可以对数据进行分类,本文详解Java枚举类型在企业开发中的使用方法。常量项需求在系统中有一些变量它具有固定的取值范围,比如:学生类的性别属性包括男、女两个值、攀博课堂支付方式包括微信支付、支付宝支付、银联支付三种方式等,在程序中对这些取值通常用常量来表示,因为它们是固定在一定范围内的,如下代码是攀博课堂支付类中支付方式的的表示方式:package com.pbtea
2021-02-07 10:13:31 313
原创 传智燕青Java基础精讲教程带你从零基础自学Java到大牛(已开放下载)
零基础自学Java到大牛教程是传智燕青老师倾力打造的适合Java零基础学员的自学教程,本教程从企业生产实战出发进行课程设计,从基础到高级知识点系统、全面,学完本教程可达Java高级工程师和架构师水平。下载链接:http://www.pbteach.com/post/java/javase/本教程共分四个阶段:1、自学JavaSE课程。讲解Java基础语法、Java面向对象开发、IO、多线程、网络编程。2、自学Java Web开发课程。讲解JavaEE主流技术及常用Web系统开发技术,学完可达到互
2021-02-05 22:38:14 316 5
原创 Java基础精讲全十章课程大纲2021版--适合零基础的自学Java视频教程|javaSE视频教程
很多网友私信我询问零基础如何学习java,这里分享一套完整的零基础自学java基础知识的大纲,希望能帮助自学java的初学者们:全套免费在线学习
2021-02-02 08:01:33 552 2
原创 适合零基础自学java的Java基础精讲教程课程大纲介绍
自学Java能找到工作吗?自学编程可以学会吗?很多初学者私信我咨询自学java的学习路径,2021年伊始我研发了一套适合零基础自学的java教程,共分十个章节,下边分享课程的大纲,希望可以帮助到各位网友:本套教程正在陆续上线可在线学习,具体请关注我...
2021-02-01 09:00:58 311
原创 java位运算的应用场景举例
java位运算符介绍Java位运算符是对操作数的二进制位进行运算,操作数和计算结果都是整型。操作符如下:&与:两个二进制位只要有一个为0那么结果就为0,否则结果为1。|或:两个二进制位只要有一个为1那么结果就为1,否则结果为0。^异或:任何相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1。~取反:0变1,1变0用于奇偶校验位运算是直接操作二进制位,效率较高,一些算法会采用位运算。奇偶判断是判断一个是奇数还是偶数,如何使用位运算实现呢?使用与(&
2021-01-25 09:20:25 1251
原创 网易126免费邮箱更改手机号(亲测有效)
记2020年9月24日 网易邮箱账号修复过程,希望可以帮到小伙伴们。我是06年注册的126免费邮箱,当时中国的互联网刚有起色,非常珍惜这个邮箱,至今已经伴随我14年啦。很多网站都是用的这个126邮箱作为账号,或者是找回密码的渠道。2020年9月22日登录我亲爱的126邮箱,提示有风险无法登录。于是我准备修改密码,一看手机号是n年前淘汰的手机号(此号已是空号),绝望了…我要更换手机号,根据网易的指引开始我的网易邮箱账号申诉之旅。一次失败、二次失败、三次失败、四次失败…再一次绝望了…只有找人工客服了
2020-09-24 17:37:49 8208
原创 调错-Nginx代理SpringBoot应用时报400 bad request
测试场景使用Nginx代理SpringBoot应用,版本如下:SpringBoot 2.1.3.RELEASE(内嵌tomcat9)nginx-1.14.0配置如下:upstream code_server_pool{ server 127.0.0.1:63049 weight=10; } server{ listen 80; server_name www.pbteach.com; #验证码 location ^~ /checkcode/ { pro
2020-05-08 23:32:27 1654 1
转载 RocketMQ同步消息、异步消息、单向消息详解
一、RocketMQ 支持 3 种消息发送方式 :1、同步消息(sync message )producer向 broker 发送消息,执行 API 时同步等待, 直到broker 服务器返回发送结果 。2、异步消息(async message)producer向 broker 发送消息时指定消息发送成功及发送异常的回调方法,调用 API 后立即返回,producer发送消息线程不阻塞 ,...
2020-05-07 10:48:25 11471
原创 Java开发实战项目分享之学成在线v1.0项目总结
前言:学成在线项目是传智燕青老师研发的JavaEE分布式微服务架构项目,采用SpringCloud框架研发,课程共20天,应广大学员的建议现将整个项目的技术点以问题的形式进行总结,方便大家学习总结。1 学成在线是个什么样的项目?从两个方面进行阐述:1)项目的功能(业务) 学成在线是一个在线教育平台,提供IT职业课程在线学习,平台包括:门户、学习中心、教学管理中心、系统管理中心、社交系统...
2020-05-07 09:44:58 2158
原创 Docker简明教程&Docker常用命令大全
1 Docker简介1.1 什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。...
2020-01-03 11:06:02 395
原创 JDK1.8的新特性
JDK1.8的新特性1. 前言JDK1.8已经发布很久了,在很多企业中都已经在使用。并且Spring5、SpringBoot2.0都推荐使用JDK1.8以上版本。所以我们必须与时俱进,拥抱变化。Jdk8这个版本包含语言、编译器、库、工具和JVM等方面的十多个新特性。在本文中我们将学习以下方面的新特性:Lambda表达式函数式接口方法引用接口的默认方法和静态方法OptionalS...
2020-01-03 08:42:06 497
原创 Java开发实战项目分享
应广大网友的建议我从网上收集一些优秀的Java实战项目,这些项目不伦大小,技术都非常值得Java学习者进行学习研究。图书管理项目视频(6天), 纯JavaWeb项目传智燕青医药采购项目(Shrio加Activiti工作流版本)视频教学(16天)传智燕青医药采购项目(SpringMVC加Mybatis版本)视频教学(11天)传智燕青大型分布式系统学成在线项目视频教学(20天)持续更新中…...
2019-12-30 07:34:45 5874 10
原创 Shiro视频分享
权限开发框架之ShiroShiro介绍Shiro架构视频分享Shiro介绍Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。Shiro架构1、SubjectSubject即主体,外部应用与subject进行交互,subject记录了当前操作用户,将用户的概念理解为当前操作的...
2019-12-26 15:59:14 1807 3
原创 Shiro视频教程
项目需求用户登陆一般情况下,有用户交互的系统基本都有用户登陆的功能,用户需要输入账号和密码进行登陆,如果用户没有登陆则无法使用一些功能,比如:我的中心、我已购买的订单等。权限控制一般情况下,一个系统有若干类用户来使用,不同类的用户允许使用的功能不一样,比如:系统管理员用户可以登陆系统后台,查询系统的操作日志、系统数据备份等;普通业务员用户可以使用系统的一些业务功能,比如:商品管理、统计分析...
2019-12-26 15:50:27 1127 2
原创 燕青Elasticsearch视频&Lucene视频教程分享
什么是全文检索对互联网项目全文检索是常用的技术,什么是全文检索?全文检索首先将要搜索的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。 这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。整个全文检索过程分为两个过程,索引和搜索。ElasticsearchElasticsearch是一个基于Lucene的高扩展的分布式搜索服务器...
2019-12-25 09:14:21 628
原创 zxing生成二维码工具
项目介绍ZXing是一个开源的,用Java编写的多格式的1D / 2D条码图像处理库,使用ZXing可以生成、识别QR Code(二维码)、Data Matrix、EAN、UPC、Aztec等。常用的二维码处理库还有zbar,不过它几年不更新代码了,本文介绍ZXing生成二维码的方法。生成二维码实现1)引入依赖创建maven工程,在pom.xml中引入如下 依赖<dependen...
2019-12-24 19:31:35 783 1
原创 RestTemplate.getForEntity乱码问题
RestTemplate乱码问题描述RestTemplate是Spring-web提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷的访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnection),在项目中会通过setRequestFactory方法或构造方法替换为例如 Apa...
2019-12-13 21:51:23 5299 1
原创 IDEA下Git使用教程
IDEA下Git使用教程Git介绍Git和IDEA是当前项目开发最流行的开发工具,如何在IDEA下使用Git控制代码的版本?本文以攀博网的两名员工之间协作开发为案例讲解Git最常用的开发方法。1 创建远程Git仓库在GitLab或GitHub下创建Git仓库例如:http://192.168.101.64:8899/root/test01.git2 场景介绍攀博网的两名开发工程师...
2019-12-13 09:01:10 384
原创 Freemarker视频教程
Freemarker视频教程Freemarker是燕青老师录制的教程,内容涵盖Freemarker的基础应用、页面静态化技术。视频教程下载链接:https://pan.baidu.com/s/1yh8koGhKK4R8JDRFr3vUCw提取码:vn1n1.1 FreeMarker介绍1、freemarker是一个用Java开发的模板引擎 常用的java模板引擎还有哪些?Js...
2019-12-13 08:57:14 724
原创 Linux教程系列-Stream EDitor(sed)
sed全称是:Stream EDitor即流编辑器,是一个很好的文本处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作。sed命令的功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大。sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,接着用sed命令处...
2019-12-12 08:42:35 329
原创 Linux教程系列-crontab
基本格式 :* * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令crontab文件的一些例子:30 21 * * * /usr/local/etc/rc.d/li...
2019-12-12 08:41:26 261
原创 Linux教程系列-iptables
iptables防火墙简介iptables/netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中集成的模块。防火墙规则的执行顺序默认是从前到后依次执行,遇到匹配的规则就不在继续向下检查,若果遇到不匹配的规则会继续向下执行,匹配上了拒...
2019-12-12 08:40:08 222
原创 Linux教程系列-命令大全
----------------------------常用命令----------------------------说明:安装linux时,创建一个pbteach用户,然后使用root用户登陆系统1.进入到用户根目录cd ~ 或 cd2.查看当前所在目录pwd3.进入到pbteach用户根目录cd ~pbteach4.返回到原来目录cd -5.返回到上一级目录cd …6...
2019-12-12 08:37:35 279
zxing_test.zip
2019-12-24
oracle_sql.zip
2019-12-04
mapstruct_test.zip
2019-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人