Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式

164 阅读4分钟

download:Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式

优秀的架构是演进出来的,本课程将手把手带你从项目架构到系统架构,从代码重构到源码原理解析不断演进,逐步提高你驾驭大项目的能力,让你的编程思维和架构能力得到双重提升,助你迈好高级工程师之路的第一步!

适合人群及技术储备要求
正处于开发进阶阶段,拥有一定的项目开发经验,想要进一步提升自己的编程思想和架构设计能力,却找不到
好的方法或指点,本门课程非常适合你!如果你还缺乏项目经验,可先学习《 Java大牛 带你从0到上线开发企
业级电商项目》这门课程,有助于稳固Java项目开发的基础知识和提升项目功能实现的能力!

学前必备技术
为了更顺利的完成本课程的学习与实战,希望你储备以下技术:Linux、MySQL、Git、Maven、Java、
Spring、SpringMVC、Mybatis等基本概念,同时需要掌握Redis 、Spring Schedule、Tomcat集群、
Nginx负载均衡等基础知识

剖析:由於當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共轭復根。其程序段如下:

d=bb-4a*c;

if(d>=0)

{x1=(-b+sqrt(d))/2a;

x1=(-b-sqrt(d))/2a;

printf("x1=%8.4f,x2=%8.4f\n",x1,x2);

}

else

{r=-b/(2*a);

i =sqrt(-d)/(2*a);

printf("x1=%8.4f+%8.4fi\n"r, i);

printf("x2=%8.4f-%8.4fi\n"r,i);

}

③ if...else if语句
其语句格式爲:

if(條件1) {分支1};

else if(條件2) {分支2}

else if(條件3) {分支3}

……

else if(條件n) {分支n}

else {分支n+1}

意義是,從上到下依次檢測判別條件,當某個判別條件成立時,則執行其對應的分支,然後跳到整個 if else 语句之外繼續執行其他代码。假如一切判別條件都不成立,則執行语句塊n,然後繼續執行後續代码。

也就是說,一旦遇到可以成立的判別條件,則不再執行其他的分支,所以最終只能有一個分支被執行。

嵌套分支语句雖可處理多個入口和出口的問題,但超越3重嵌套後,语句構造變得十分復雜,關於程序的阅讀和了解都極爲不便,倡議嵌套在3重以内,超越3重能夠用下面的语句。

例如,運用多個 if else 语句判別輸入的字符的類別:

#include <stdio.h>

int main(){

char c;

printf("Input a character:");

c=getchar();

if(c<32)

printf("This is a control character\n");

else if(c>='0'&&c<='9')

printf("This is a digit\n");

else if(c>='A'&&c<='Z')

printf("This is a capital letter\n");

else if(c>='a'&&c<='z')

printf("This is a small letter\n");

else

printf("This is an other character\n");

return 0;

}

運轉結果:

Input a character:e↙

This is a small letter

在運用 if 语句時還應留意以下兩點:

在 if 语句中,判別條件必需用括號括起來。

语句塊由{ }包圍,但要留意的是在}之後不需求再加分號;(當然加上也沒錯)。

④if嵌套分支语句
當if语句中的執行语句又是if语句時,則構成了if语句嵌套。

if(條件表達式)

if语句;

或者

if(條件表達式)

if语句;

else

if语句;

demo:修正下面的程序使程序:輸入a和b的值,判別最大值能否大於100,是則輸出最大值。

int main(void)

{

int a = 0;

int b = 0;

printf("請依次輸入a和b的值:");

scanf("%d%d",&a,&b);

if(a < b)

if(b > 100)

printf("max:%d\n",b);

else

if(a > 100)

printf("max:%d\n",a);

return 0;

}

留意:C言语規則,else總是與它前面最近的爲配對的if配對。

所以修正後應爲:

int main(void)

{

int a = 0;

int b = 0;

printf("請依次輸入a和b的值:");

scanf("%d%d",&a,&b);

if(a < b)

{

if(b > 100)

printf("max:%d\n",b);

}

else

{

if(a > 100)

printf("max:%d\n",a);

}

return 0;

}

demo:輸入a、b、c的值,判別並輸出最大值

int main(void)

{

int a = 0;

int b = 0;

int c = 0;

int max = 0;

printf("請依次輸入a、b、c的值:");

scanf("%d%d%d", &a, &b,&c);//

if (a > b)

{

if (a > c)

max = a;

else

max = c;

}

else//b > a

{

if (b > c)

max = b;

else

max = c;

}

printf("max:%d\n", max);

return 0;

}

2、switch開關语句
C言语固然沒有限製 if else 可以處置的分支數量,但當分支過多時,用 if else 處置會不太便當,而且容易呈現 if else 配對出錯的狀況。關於這種狀況,實践開發中普通運用 switch 语句替代。

該语句也是多分支選择语句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路。

switch 是另外一種選择構造的语句,用來替代简單的、具有多個分枝的 if else 语句,根本格式如下:

switch(表達式){

case 整型數值1: 语句 1;

case 整型數值2: 语句 2;

......

case 整型數值n: 语句 n;

default: 语句 n+1;

}