
Java基础+进阶+电商系统实战
文章平均质量分 87
Java语言未来发展前景仍旧十分广阔。主要应用领域有三大方向:大数据、云平台和人工智能。所以,什么时候学习Java语言都不会晚,想进入这三大行业的抓紧行动起来吧!持续更新中...
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
老王随聊
进入IT行业多年,曾有幸参与各大厂众多核心系统从0-1的设计和搭建;主导并参与多次618和双11大促亿级流量系统设计;8年内面试过的人员达300+。现将自己对系统架构的设计方法,开发经验及面试需要的关注点,逐一总结并分享给大家。让我们一起遇见更优秀的自己!
展开
-
Java版电商购物系统说明
本系统主要目的是帮助新手快速巩固Java基础知识(源代码中含有大量Java基础知识点),避免形成学习孤岛,保证让所学技术有输出、有落地;另外也让新人了解实际工作中真实的电商购物业务流程和开发是什么样的?底层系统架构如何设计?需要有哪些关键点需要注意?原创 2023-03-27 08:10:22 · 1718 阅读 · 4 评论 -
JAVA发展前景怎么样
随着5G技术已逐渐进入人们的视野,随之而来的是万物互联的时代。物联网产业的飞速发展,带动大数据、云计算、人工智能等领域的蓬勃发展,另外各种语言也应运而生,但相信Java语言会以其功能强大、简单易用、安全稳健等特性,在新的领域展现出新的风采。原创 2023-02-13 09:10:51 · 3925 阅读 · 2 评论 -
Java编程语言的8大优势
正所谓知彼知己,百战不殆。我们在学习任何一门技术之前,都需要提前了解这门技术的优势和特性,这样我们在学习过程中才会方向明确,知道为什么学,如何学以及如何应用。另外了解了这些特性,也有助于我们对Java这门面向对象编程语言有更加深刻的理解。下面分别为从简单性、面向对象、编译解释性、稳健性、安全性、跨平台性、高性能这几个特点进行逐一阐述。原创 2023-02-15 09:32:03 · 505 阅读 · 3 评论 -
小白初识Java语言
从0~1学Java! Java基础内容、Java进阶内容以及Java面试题分享。无论你将来从事后端开发,还是从事大数据,亦或人工智能任一方向,Java基础一定要掌握好!原创 2022-06-05 08:54:38 · 623 阅读 · 44 评论 -
Spring Cloud Config、Apollo、Nacos和Archaius对比
优点:Spring Cloud Config为微服务提供了集中化的配置管理,支持基于Git的分布式配置中心,可以配合Spring Cloud使用,提供动态刷新配置的功能。Apollo是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。优点:集中化管理不同环境、不同集群的配置,配置修改后能够实时推送到应用端,具备完善的权限、流程治理等特性,适用于微服务配置管理场景。界面友好,易于使用。缺点:尚无明确提及。原创 2023-09-09 06:10:10 · 850 阅读 · 0 评论 -
Java基础/进阶/电商系统实战系列文章汇总
由浅入深学习Java基础知识,通过代码案例与面试习题相结合,强化巩固各关键知识点;建立Java核心技术交流群实时跟进大家学习情况,避免形成学习孤岛; 通过基础示例与实战项目相结合的形式,加强对知识点应用场景的理解;了解真实电商购物系统高并发、高性能、高可用架构设计方案及优化手段。原创 2023-04-13 07:33:41 · 706 阅读 · 21 评论 -
秒杀计时实现与库存扣减方案设计
前面我们知道了秒杀系统需要具备高并发高性能的要求。那本节内容,我们主要介绍秒杀系统中,针对计时实现和库存扣减逻辑应该将如何进行设计。原创 2023-04-09 10:25:38 · 818 阅读 · 2 评论 -
购物商城订单防重设计方案
背景:在互联网应用中,客户端和服务器之间,通过各类应用介质向服务器提交表单的时候,通常用户点击提交数据的按钮来触发客户端上的数据提交操作;由于服务连接、网络延迟等影响,用户会出现误操作,可能会出现连续多次点击提交的操作,那么就有可能出现重复订单信息。原创 2023-04-09 06:41:07 · 540 阅读 · 1 评论 -
商城秒杀系统负载均衡方案设计
简单来说,负载均衡机制的核心目的是让客户端的请求合理均匀的分发到多台目标服务器,由于请求被多个节点分发,使得服务端的性能得到有效的提升。除此之外,DNS还可以根据不同的地域分配就近机房的IP,比如长沙的小伙伴,可能会得到在湖南范围内最近的一个机房的IP,在这个模式下可以实现「就近原则」实现请求处理,缩短了通信距离从而提升网站访问效率。以上不同的负载均衡策略均有各自不同的使用场景,请结合自身的实际情况进行合理的选择,同时,各自配置策略在实际使用的时候也不是孤立的,比如最小连接数可以搭配权重数一起使用。原创 2023-04-08 22:02:18 · 520 阅读 · 0 评论 -
购物商城订单分库分表应该如何设计
ShardingSphere是一款起源于当当网内部的应用框架。2015年在当当网内部诞生,最初就叫ShardingJDBC。2016年的时候,由其中一个主要的开发人员张亮,带入到京东数科,组件团队继续开发。在国内历经了当当网、电信翼支付、京东数科等多家大型互联网企业的考验,在2017年开始开源。并逐渐由原本只关注于关系型数据库增强工具的ShardingJDBC升级成为一整套以数据分片为基础的数据生态圈,更名为ShardingSphere。到2020年4月,已经成为了Apache软件基金会的顶级项目。原创 2023-04-08 16:04:32 · 482 阅读 · 6 评论 -
Java8-Stream流操作(一)
Java 8 流的新类 java.util.stream.Collectors 实现了 java.util.stream.Collector 接口,同时又提供了大量的方法对流 ( stream ) 的元素执行 map 和reduce 操作,或者统计操作。原创 2023-03-26 20:43:19 · 887 阅读 · 1 评论 -
Java8新特性概述(一)
Nashorn, JavaScript 引擎 − Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。它支持Lambda 表达式、函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。方法引用 − 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。原创 2023-03-25 20:06:03 · 393 阅读 · 1 评论 -
Java连接MySQL
本章节我们为大家介绍 Java 如何使用DBC 连接 MySQL 数据库。也为后续学习c3p0、dbcp、proxool、druid、tomcat、HikariCP等,通过了解JDBC可以为学习这些数据源原理打下良好基础。原创 2023-03-24 19:44:34 · 527 阅读 · 0 评论 -
Java多线程编程
在实际开发当中还会碰到线程同步、线程间通信、线程死锁、线程挂起等。那在后面的进阶教程中会详细展开说,这里作为初级教程已经足够我们使用了。另外需要注意,虽然多线程对CPU资源利用率充分,但并不是线程越多越好,如果你创建太多的线程,程序执行的效率实际上是降低了,而不是提升了。这里面除了CPU 花费在上下文的切换的时间外,还需要综合考虑实际业务常见以及内存等配置是否满足。原创 2023-03-23 18:51:38 · 559 阅读 · 0 评论 -
Java 泛型的作用分析
泛型在日常开发当中,使用的场景非常多。尤其是在很多底层API、中间件等技术中有大量使用,如常见的RPC框架Dubbo、我们日常使用JDK中的Collection框架集合类,都有大量API使用泛型来定义。所以学好泛型知识无论是新手还是初级程序员来说,对于日常开发大有裨益,甚至可以通过利用泛型来设计出非常优秀的技术框架。原创 2023-03-22 18:09:04 · 460 阅读 · 0 评论 -
Java代码规范全面总结
编程规范也就是编写出简洁、可维护、可靠、可测试、高效、可移植的代码,提高产品代码的质量。适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化, 以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。 代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。今天老王结合十年开发经验,给大家分享一篇开发过程中应该哟哪些规范化编程,目的是希望能帮助大家避免工作中不必要出现的问题!共勉!原创 2023-03-21 17:57:35 · 456 阅读 · 0 评论 -
Java集合API总结
本篇内容主要针对面试和工作当中常用的集合类进行代码演示。原创 2023-03-20 19:24:55 · 369 阅读 · 0 评论 -
Java集合类框架总结
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。集合类用于保存数量不确定的数据,也可以保存具有映射关系的数据。原创 2023-03-19 18:36:46 · 543 阅读 · 0 评论 -
Java异常分类总结
当程序中中出现多个异常时,有时用现有的通用异常类无法满足业务处理需求。这时候,我们需要从业务需求角度自定义异常类。比如,单独处理网络类型的异常或者数据库连接异常等。原创 2023-03-18 19:44:18 · 378 阅读 · 0 评论 -
Java流和文件操作总结
还有我们平时用的 Office 软件,对于 Word、Excel 和 PPT 文件,我们需要打开文件并读取这些文本,和编辑输入一些文本,这都需要利用输入和输出的功能。UTF:UTF 编码兼容了 ISO8859-1 编码,同时也可以用来表示所有的语言字符,不过 UTF 编码是不定长编码,每一个字符的长度为 1~6 个字节不等。计算机中,任何的文字都是以指定的编码方式存在的,在 Java 程序的开发中最常见的是 ISO8859-1、GBK/GB2312、Unicode、 UTF 编码。原创 2023-03-17 18:34:36 · 426 阅读 · 0 评论 -
第30篇:Java正则表达式实战(二)
很多读者都会觉得正则表达式是一个非常神奇、高级的知识,其实正则表达式是一种非常简单而且非常实用的工具。正则表达式是一个用于匹配字符串的模板。实际上,任意字符串都可以当成正则表达式使用。老王今天带领大家来学习正则表达基本知识点以及如何使用正则表达式来操作字符串。原创 2023-03-15 18:23:22 · 425 阅读 · 0 评论 -
第29篇:Java正则表达式能干什么
很多读者都会觉得正则表达式是一个非常神奇、高级的知识,其实正则表达式是一种非常简单而且非常实用的工具。正则表达式是一个用于匹配字符串的模板。实际上,任意字符串都可以当成正则表达式使用。老王今天带领大家来学习正则表达基本知识点以及如何使用正则表达式来操作字符串。原创 2023-03-14 19:08:04 · 293 阅读 · 0 评论 -
第28篇:Java日期Calendar类总结(二)
我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?答案是使用Calendar 类。Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。原创 2023-03-13 18:55:00 · 252 阅读 · 0 评论 -
第27篇:Java日期处理总结(一)
java.util 包提供了 Date 类来封装当前的日期和时间。在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。原创 2023-03-12 20:04:33 · 372 阅读 · 0 评论 -
第26篇:Java数组API总结
数据在日常工作中和面试当中都是经常出现的。这部分内容大家除了了解基础内容外,还需要深入分析数组的底层原理,便于快速学习后面的集合类框架,因为很多集合类底层都是采用数据形式,包括前面学习的String类型。原创 2023-03-11 19:25:24 · 410 阅读 · 0 评论 -
第25篇:Java常见字符串API分析
前面我们介绍了关于Java的基本数据类型和包装类型,今天我们学习在实际业务当中开发所用到的对字符和字符串操作的API,包括:Character、String、StringBuilder和StringBuffer类,这些API几乎在Java的所有项目当中都会使用到,所以需要我们重点学习。在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。原创 2023-03-10 14:58:20 · 252 阅读 · 0 评论 -
第24篇:Java包装类知识深度分析
本篇内容从包装类背景、包装类型优点缺以及包装类型运行三个维度结合电商例子为大家深度分析。原创 2023-03-09 15:03:35 · 396 阅读 · 0 评论 -
第23篇:基础知识-Java Switch Case
\switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。4)当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。3)case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。//你可以有任意数量的case语句。原创 2023-03-09 14:06:04 · 284 阅读 · 0 评论 -
第22篇:Java条件语句总结
在日常开发当中,条件判断也是我们常用的语句之一。通常处理一些不同业务逻辑分支。那在Java中,条件语句为if...else结构,一个 if 语句包含一个布尔表达式和一条或多条语句。原创 2023-03-08 12:32:15 · 414 阅读 · 0 评论 -
第21篇:Java循环结构总结
顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,就需要使用循环结构。Java中有三种主要的循环结构:while 循环、do…while 循环、for 循环以及增强型 for 循环。原创 2023-03-06 13:14:44 · 286 阅读 · 0 评论 -
第20篇:Java运算符全面总结(系列二)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。下表中具有最高优先级的运算符在的表的最上面,最低优先级的在表的底部。取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数。当且仅当两个操作数都为真,条件才为真。加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数。减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数。乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数。除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数。原创 2023-03-03 13:21:21 · 272 阅读 · 0 评论 -
第19篇:Java运算符全面总结(系列一)
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。加法 - 相加运算符两侧的值A + B = 40减法 - 左操作数减去右操作数A – B = 20乘法 - 相乘操作符两侧的值A * B=300除法 - 左操作数除以右操作数A / B=3取余 - 左操作数除以右操作数的余数B%A=0自增: 操作数的值增加1B++ 或 ++B 等于 11自减: 操作数的值减少1。原创 2023-03-02 12:37:07 · 168 阅读 · 0 评论 -
第18篇:Java修饰符全面总结
synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程(例如线程A),运行到这个方法时,都要检查有没有其它线程B(或者C、 D等)正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程B(或者C 、D)运行完这个方法后再运行此线程A,没有的话,锁定调用者,然后直接运行。final 用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。//修饰类变量,防止该变量的内容被修改。原创 2023-03-01 10:42:06 · 149 阅读 · 0 评论 -
第17篇:Java变量总结
使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。例如,java中的变量大体分为:类(静态)变量、成员变量、局部变量,在class文件被jvm的类加载器加载后,随后这些变量被分配至内存中。数值型变量的默认值是0,布尔型变量的默认值是false,引用类7)型变量的默认值是null。2)静态变量除了被声明为常量外很少使用,静态变量是指声明为 public/private,final 和 static 类型的变量。在Java语言中,所有的变量在使用前必须声明。原创 2023-02-27 12:07:58 · 839 阅读 · 0 评论 -
第16篇:Java基本数据类型
大部分对字长的指令解译,主要以二进制为主,如一个 32 位的字长,可以表示从0至2的32次方减1的无符号整数值,或者表示从负的2的32次方至2的32次方减1的有符号整数值。说明:自动类型转换,必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。原创 2023-02-26 12:00:14 · 846 阅读 · 1 评论 -
第15篇:系列三—Java抽象类/接口/枚举
新的类对程序的通用部分只需进行很少的修改, 或不做修改。类的多态性表现为方法的多态性,方法的多态性主要有方法的重载和方法的覆盖。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。例如,在实现了圆锥、半圆锥以及半球体的多态基础上,很容易增添球体类的多态性。不同的支付方式实现可能不同,货到付款、信用卡支付、在线支付、PayPal支付、银行电汇及邮政汇款不同支付方式。多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。大大提高程序的可复用性。原创 2023-02-24 12:38:15 · 392 阅读 · 0 评论 -
第14篇:系列二—Java抽象类/接口/枚举
继承,从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力;继承是面向对象最显著的一个特性。在JAVA中, 被继承的类叫父类(Parent Class)或超类(Super Class), 继承父类的类叫子类(Sub Class)或派生类(Derived Class)。 因此, 子类是父类的一个专门用途的版本, 它继承了父类中定义的所有实例变量和方法, 并且增加了独特的元素。原创 2023-02-23 12:40:29 · 612 阅读 · 2 评论 -
第13篇:系列—Java抽象类/接口/枚举
Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性集合,可包含一个或多个抽象方法。抽象类刻画的公有行为特征,通过继承的形式传送给它的派生类(子类)。比如,商品信息中,所有订单都有商品的编码、名称等属性。这时,我们就可以把这些商品的公共信息提取为一个抽象类,然后让订单对象继承等这个商品抽象类。原创 2023-02-22 13:07:12 · 176 阅读 · 0 评论 -
Java类构成要素分析
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。前两种分别是 // 和 /* */,第三种被称作说明注释,它以 /** 开始,以 */结束。Java 中主要有如下几种类型的变量:类变量、实例变量和局部变量。Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。原创 2023-02-21 12:23:52 · 312 阅读 · 0 评论 -
Java开发工具应用及代码规范配置
本小节我们将介绍如何在我们的电脑上安装并配置Java开发工具:IntelliJ IDEA。包含代码规范格式配置。本文以WIn11为例,其他系统操作步骤类似。原创 2023-02-20 12:24:32 · 522 阅读 · 0 评论