- N +

java switch enum?switch枚舉類型enum用法

本篇文章給大家談?wù)刯ava switch enum,以及switch枚舉類型enum用法對(duì)應(yīng)的知識(shí)點(diǎn),文章可能有點(diǎn)長(zhǎng),但是希望大家可以閱讀完,增長(zhǎng)自己的知識(shí),最重要的是希望對(duì)各位有所幫助,可以解決了您的問(wèn)題,不要忘了收藏本站喔。

switch(a)是什么意思

switch(a)是的意思是:

在C語(yǔ)言中,這是一句開(kāi)關(guān)語(yǔ)句。

a為常量表達(dá)式,當(dāng)a與CASE后面的數(shù)字相等時(shí),就執(zhí)行后面的語(yǔ)句,執(zhí)行完后退出。

如果沒(méi)有合適的,就執(zhí)行DEFAULT后面的語(yǔ)句,執(zhí)行完成后退出。

switch后面內(nèi)的表達(dá)式,可以是整形表達(dá)式或者是字符型表達(dá)式,也可以是枚舉型數(shù)據(jù)。

表達(dá)式的值與case語(yǔ)句后面的植逐個(gè)進(jìn)行匹配,如果匹配得上,就執(zhí)行該case語(yǔ)句后面的執(zhí)行與具體,然后通過(guò)break語(yǔ)句跳出該循環(huán)。

如果最終沒(méi)有case語(yǔ)句能與表達(dá)式的值相匹配,則執(zhí)行default后面的執(zhí)行語(yǔ)句體。

c語(yǔ)言switchcase后面可以跟字母嗎

在C語(yǔ)言中,switch-case語(yǔ)句的case后面是可以跟字母的。switch-case語(yǔ)句用于在多個(gè)可能的取值中選擇一個(gè)執(zhí)行特定的代碼塊。case關(guān)鍵字后面的值可以是整數(shù)、字符或枚舉類型。而字母也是字符類型的一部分,因此它可以作為case后面的值進(jìn)行判斷。在執(zhí)行過(guò)程中,當(dāng)switch語(yǔ)句的表達(dá)式的值與某個(gè)case后面的值匹配時(shí),對(duì)應(yīng)的代碼塊將會(huì)被執(zhí)行。因此,通過(guò)case后面跟字母,可以實(shí)現(xiàn)根據(jù)不同的字母進(jìn)行相應(yīng)邏輯處理的功能。需要注意的是,字母應(yīng)使用單引號(hào)括起來(lái),以表示字符類型。

為什么很多程序員不用switch,而是大量的if……else if

如果有10000種switch的可能性,有1000000個(gè)值需要被處理,怕是你們說(shuō)的這些個(gè)switch的好處就完全消失了,預(yù)期平均每次要比較5000次,1000000個(gè)值,總計(jì)要比較50億次,不知道你們的CPU是啥主頻能扛得住這個(gè)計(jì)算量,針對(duì)這種情況的終極武器還是hash,根據(jù)不同的語(yǔ)言,hash的value可以是匿名函數(shù),可以是接口的不同實(shí)現(xiàn),用hash來(lái)快速確定處理算法,而不是switch

自學(xué)java

“這是一篇完整的java程序員學(xué)習(xí)線路圖,一共分為六個(gè)階段。

我以java為例,展示完整的學(xué)習(xí)步驟。

希望對(duì)于想通過(guò)java自學(xué)的朋友有幫助。

java程序員學(xué)習(xí)線路流程第一步:Java語(yǔ)言基礎(chǔ)

從最簡(jiǎn)單的開(kāi)始,helloworld開(kāi)始Java之旅

1.編程基礎(chǔ)

常量與變量

數(shù)據(jù)類型

運(yùn)算符

流程控制語(yǔ)句

方法

數(shù)組

2.面向?qū)ο?/p>

面向?qū)ο笏枷?/p>

類與對(duì)象

成員變量和局部變量

封裝

this關(guān)鍵字

構(gòu)造方法

3.集合

集合概述

集合特點(diǎn)

ArrayList集合

HashMap集合

常用集合優(yōu)劣比較

4.輸入/輸出IO

字符輸入流

字符輸出流

字符緩沖輸入流

字符緩沖輸出流

復(fù)制文件

集合與文件中數(shù)據(jù)相互讀寫(xiě)

5.練習(xí)階段

屬于你自己的helloword

第二步:java語(yǔ)言高級(jí)

再結(jié)合java高級(jí)部分,里面的部分內(nèi)容,這個(gè)階段你不一定能理解很徹底。但有一點(diǎn),如果你今后想進(jìn)入高階俱樂(lè)部,這些內(nèi)容你必須掌握牢固。

舉個(gè)栗子,如果你面試通過(guò)進(jìn)入了公司,我一定會(huì)在早期仔細(xì)review你的代碼。代碼的功力是欺騙不了人的,不同人寫(xiě)一個(gè)接口,呈現(xiàn)的結(jié)果也是千差萬(wàn)別(所以才有了規(guī)范)。

1.面向?qū)ο?/p>

繼承

多態(tài)

重寫(xiě)(Override)

重載(Overload)

封裝

接口

java包package

2.異常處理

異常概述

異常分類

異常處理方案

自定義異常

3.多線程

Java線程:概念與原理

Java線程:創(chuàng)建與啟動(dòng)

Java線程:多線程的實(shí)現(xiàn)方案

Java線程:線程生命周期

Java線程:線程池

Java線程:線程狀態(tài)的轉(zhuǎn)換

Java線程:線程的同步與鎖

Java線程:線程的交互等等

線程的幾個(gè)主要概念

在多線程編程時(shí),你需要了解以下幾個(gè)概念

線程同步

線程間通信

線程死鎖

線程控制:掛起、停止和恢復(fù)

4.輸入與輸出IO

文件和I/O

讀寫(xiě)文件

Java流(Stream)

文件(File)

緩沖流

5.泛型(Generic)

泛型的使用場(chǎng)景

泛型類型

泛型方法

泛型通配符?

6.網(wǎng)絡(luò)編程

網(wǎng)絡(luò)機(jī)制

Socket原理機(jī)制

UDP、TCP傳輸?shù)?/p>

7.反射(reflection)

類加載機(jī)制原理

反射構(gòu)造方法、字段、方法

Properties配置文件

8.注解(annotation)

注解的使用和原理

三種內(nèi)置annotation

自定義annotation

注解類的反射調(diào)用

動(dòng)態(tài)代理類如何處理

9.Java高級(jí)特性和類庫(kù)

java類加載器classloader

java程序運(yùn)行的基礎(chǔ)知識(shí),java編譯后的bytecode的整個(gè)運(yùn)行機(jī)制,這一點(diǎn)對(duì)應(yīng).net的IL(intermediatelanguage)。

理解Javanio,關(guān)于這一點(diǎn)網(wǎng)上有非常多的教程,這一條需要重點(diǎn)掌握,對(duì)于高并發(fā)的掌握很重要。

javajuc(java.util.concurrent)等等

10.JVM原理和調(diào)優(yōu)

JVM最重要的三個(gè)部分必須要非常清楚,內(nèi)存劃分、class加載機(jī)制以及GC策略。搞清楚這三部分不僅僅是為了面試,也是為了讓你對(duì)于Java有更深刻的理解,這對(duì)于你的Java生涯非常有幫助。

內(nèi)存劃分簡(jiǎn)單說(shuō)分為三個(gè)部分,YoungGeneration(年輕代)、OldGeneration(年老代)以及PermGeneration(永久代)。其中的YoungGeneration(年輕代),又分為Eden、From和To,其中From和To又統(tǒng)稱為SurvivorSpaces(幸存區(qū))。

關(guān)于classloader機(jī)制的學(xué)習(xí),可以結(jié)合tomcat去學(xué)習(xí),了解清楚tomcat的classloader機(jī)制,看tomcat是如何保證各個(gè)APP之間的類隔離的。如果可能的話,看一下tomcat中classloader的源碼,當(dāng)中也包含了與tomcat類加載機(jī)制相似的部分。

至于GC,需要清楚GCRoots都有哪些,以及如何判斷一個(gè)對(duì)象可以被回收。此外,GC的算法和策略也要有大概的了解。

第三步:javaweb階段

1.前段技術(shù)掌握

html

css

js

jquery

bootstrap

2.動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)

JavaServletAPI

Velocity

FreeMarker

JSP等常用模板引擎

比如,淘寶前端層使用的是velocity模板,部分公司采用jsp、freemarker等,基本類似。

3.linux服務(wù)器基本命令

在個(gè)階段,也可以結(jié)合自己的情況,學(xué)習(xí)linux系統(tǒng)底層原理。

第四步:java框架階段

1.SSH(struts2+spring+hibernate)

2.SSM(springmvc+spring+mybatis)

備注:如果你仔細(xì),網(wǎng)上有部分叫SSI,I為ibatis,后來(lái)ibatis改名為mybatis了。

框架組合,我首推SSM,比SSH靈活強(qiáng)大。

框架的優(yōu)缺點(diǎn),我會(huì)再單獨(dú)寫(xiě)文。

如果你還有興趣,可以自己搭建Lucene、solr框架,以及memcached/redis、activeMQ、hadoop等等搜索、分布式緩存、異步消息、數(shù)據(jù)等。

我一般建議自己搭建,從學(xué)習(xí)效果再到理解深度都不一樣。有興趣,就開(kāi)始自己搭建。

第五步:開(kāi)發(fā)工具階段

1.web調(diào)試工具

firefox

firebug

webdeveloper

yslow

httpwatch

ietester等

這些都是開(kāi)發(fā)必用。

2.集成開(kāi)發(fā)工具

eclipse(首推),STS,myEclipse,Idea

eclipse里的插件太多,推薦幾個(gè)必裝插件:

JadClipse、run-jetty-run(很牛的熱部署調(diào)試)、veloctiy、freemarkerIDE、Subclipse、m2eclipse、mybatisEditor、EasyExplorer等等。

3.版本控制工具

svn、git(首推)

4.構(gòu)建工具

maven、nexus搭建maven私服

建議自己搭建一套nexusmaven私服,成為你們公司的代碼倉(cāng)庫(kù)員。

5.java調(diào)試工具

jProfiler(性能跟蹤)

jClarity(性能監(jiān)控和日志分析)

Visualvm(性能分析和調(diào)優(yōu))等

優(yōu)知學(xué)院是IT人的進(jìn)階站,提供系統(tǒng)的互聯(lián)網(wǎng)產(chǎn)品&技術(shù)的入門指南以及進(jìn)階干貨。

Java從入門到精通有什么好的建議

沒(méi)有捷徑可走!要成長(zhǎng)就得深入基層。先加入到一個(gè)java團(tuán)隊(duì),找一個(gè)技術(shù)老兵,貼身學(xué)習(xí)。多參與項(xiàng)目開(kāi)發(fā),多問(wèn)、多總結(jié)、多思考。做好開(kāi)發(fā)日志,提交代碼前自己要測(cè)試,有問(wèn)題積極反饋,這樣下來(lái)一年后就會(huì)有很大的進(jìn)步,堅(jiān)持3年以上,第四年就可以成為資深了,加油!

OK,本文到此結(jié)束,希望對(duì)大家有所幫助。

返回列表
上一篇:
下一篇: