-
服务器硬件的介绍以及分析
2020-06-09 16:35:00服务器的特点服务器的分类从服务器的外形分类服务器的组成1.机箱2.机箱盖板3.电源4.主板5.CPU6.内存7.硬盘8.风扇9.阵列卡10.光驱11.网卡12.远程卡 服务器介绍 什么是服务器? 服务器也叫伺服器,是提供计算服务的...服务器硬件基础
服务器介绍
什么是服务器?
服务器也叫伺服器,是提供计算服务的设备,是需要不间断的2x365x7x24小时的稳定的服务
服务器的特点
1.稳定性高
2.工作时间长
3.性能要求高
主要是体现在这几个方面:CPU(核数比桌面的核数多)、内存(ECC比DDR快)、硬盘(转速比桌面转速高)、网卡(多个网卡)、模块化(拆卸方便,方便维护、扩展和升级)4.处理数据的能力强
5.可靠性高
6.安全性
7.可扩展性
8.可管理型
服务器的分类
从服务器的厂商分类
国际品牌:Dell、HP、IBM
国内品牌:浪潮、华为、曙光
从服务器的高度单位分类
高度单位是U,1U=4.445厘米
Dell的服务器:
1U(R410,R420,R610,R620)、2U(R710,R720XD,R730,R740,R810 IBM X3650)、4U(R910,R920,R930,R920XD)
从服务器的外形分类
塔式服务器、刀片式服务器、机架式服务器
服务器的组成
1.机箱
保护服务器的内部硬件,标准化的规格,镀锌铅板的,屏蔽电磁辐射,固定硬件
2.机箱盖板
硬件分部介绍,有内存条的插法图介绍,服务器的内存如果插入错误,顺序不对,不能开机
3.电源
服务器的电源是双路的,双电设计,冗余性,模块化的电源,可热插拔,欠压保护,防雷击
4.主板
服务器专用主板(英特尔)
5.CPU
中央处理器,是服务器的大脑
早期版本:
2012年R410 L5640(L表示低功耗)、E5670(E表示标准版)、X5670(X表示高性能版)、W3680(表示超高性能,超高功耗)
现在版本:
E31230 V3(1:单路、2:CPU封装接口形式、3:CPU的性能和频率、0:和性能无关/带集成显卡、3:修订版本)、E52670V2、E74890V2、W2295(i9–18核36线程:用于科学计算、视觉效果、影视后期、3D渲染、CAD制图)
特殊版本:
E3-2276M(M代表移动工作站版本)
6.内存
分类:
从厂商的角度分类:国际品牌(三星、尔必达、现代 海力士、金士顿、镁光),国产品牌(紫光),OEM贴牌(Dell、惠普、联想Lenovo)
从型号的角度分类:ECC(它可以直接读取存储颗粒。好处:长时间稳定工作、服务器不停机、因为带有自动纠错功能、不允许中途故障发生或出现频繁重启和蓝屏、能够让系统持续长时间稳定的正常操作,不会因为出现错误而中断)Reg、ECC Reg(它多了一个存储器,读取的时候先读取存储器,在读取存储颗粒)
重要指标:
容量(8G、16G、32G、64G)、频率(也是时钟频率:800MHZ、1066MHZ、1600MHZ、2000MHZ、2666MHZ、2800MHZ、3000MHZ)
7.硬盘
概念:硬盘是计算机中主要的存储设备。能够存储各种格式的数据
分类:
按照接口分类:
SAS:企业级用的最多的硬盘,他是SCSI的升级版,采用和SATA一样的串口技术(为了获得更高的传输速度),版本SAS 1.0(传输速度3GB/S,理论速度300M/S)、SAS 2.0(传输速度6GB/S,理论速度600M/S)、SAS 3.0(传输速度12GB/S,理论速度1200M/S),转速高(10000转、12000转、15000转),容量小(146GB、300GB、500GB、600GB)
SATA:它是串口硬盘,经济实惠(通常应用于家用PC上,服务器也用),接口版本SAS 1.0(传输速度1.5GB/S,理论速度150M/S)、SAS 2.0(传输速度3GB/S,理论速度300M/S)、SAS 3.0(传输速度6GB/S,理论速度600M/S),转速低(5400转、7200转),容量大(1T、2T、3T、4T、6T、10T)
SCSI:小型计算机系统接口(现在濒临淘汰了)
SSD:它是固态硬盘(SATA、PCI-E),应用在服务器中,主要做热存储
按照硬盘的尺寸分类:分为3.5寸和2.5寸
按照厂商分类:希捷、西数、东芝、日立、戴尔(OEM)、惠普(OEM)
8.风扇
他能根据温度自动提升转速、转速快、风量大
9.阵列卡
什么式阵列卡:它也叫磁盘阵列卡,用来RAID廉价磁盘阵列,就是一种技术,通过把若干个硬盘按照一定的要求,组成一个整体(如:RAID0 1 5等),这个磁盘阵列由磁盘阵列控制管理
什么地方使用:服务器、高端台式机、笔记本(前提要由主板支持)
为什么要用阵列卡:可以获得更高的容量、更高的性能、更高的冗余。
常见的磁盘阵列卡:Dell H300/310/330、HDELL H700/H730/H730P
RAID级别:RAID0(优点:读写速度快,硬盘容量大,缺点:没有容错能力)、RAID1(优点:完全容错,缺点:成本高)、RAID5(优点:具备多任务,有容错能力)、RAID10(优点:速度快、完全容错,缺点:成本高)
10.光驱
选配/不配
11.网卡
什么是网卡:网卡就是一块被设计用来允许计算机在计算网络上(中)进行通讯的计算机硬件
网卡使用在哪里:服务器或者是PC上
为什么使用网卡:单个计算机是一个封闭的系统,我们要借助计算机网络,实现资源共享、数据传输,所以就要需要这样的一个设备,把计算机操作系统中存储的数据转化为电信号,他用的是分布式存储
怎么使用:首先有一个网卡,网卡能正常工作,传输介质:导向式(网线、光纤、铜轴)、非导向式(WIFI、蓝牙、微波、量子)传输,换需要有网络协议(如DHCP、TCP/IP、UDP等),最后处理出现的故障
12.远程卡
远程卡是什么:远程卡又叫远程管理卡,是类似网卡的东西,一般有标记有选配,让我们运维人员能够远程配置管理服务器用的。
远程管理在哪里使用:有我们运维人员使用,设置服务器BISO硬件,配置RAID卡
为什么使用远程管理卡:在我们不方便进入机房的情况下,可以通过远程卡配置IP、RAID、管理服务器BIOS和装系统
如何使用远程卡:登录页面,输入用户名,输入密码,进入虚拟台
Linux运维技术交流群:QQ:833196402
Python技术交流群:QQ:971440453
大数据运维技术交流群:QQ:766173537
-
java面试笔试的基础知识(68页).doc
2020-04-22 12:16:071简述的基本历史 起源于公司的一个的项目,其原先目的是为家用消费电子产品 ... 一种编程语言 一种开发环境 一种应用环境 一种部署环境 4请写出的版本分类以及每种版本的应用方向 三种版本 J2是面向内存有限的移动终端. -
超级有影响力霸气的Java面试题大全文档
2012-07-18 09:47:04内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的... -
计算机基础第一章_知识点掌握
2018-03-23 20:47:031.进制转换 2.计算机的发展史(计算机发展的4个阶段) 3.冯诺依曼结构的机器5大结构单元...7.计算机存储器的分类以及主要区别(包括区分内存和外存) 8.计算机以及CPU的性能指标 9.参见英文表述(CPU、CAD、CAM1.进制转换
2.计算机的发展史(计算机发展的4个阶段)
3.冯诺依曼结构的机器5大结构单元(计算机硬件系统由几大部分组成,主要作用是什么)
4.计算机的基本工作原理
5.计算机病毒概念以及主要特点
6.指令的概念,程序的概念,硬件,软件的概念以及关系
7.计算机存储器的分类以及主要区别(包括区分内存和外存)
8.计算机以及CPU的性能指标
9.参见英文表述(CPU、CAD、CAM等)
10.区分输入设备/输出设备
11.内存字节和位单位换算
12.总线概念,参见类型
13.ASCII码的中文名,以及0,a,A的ASCII码值
14.汉字国际码GB2312-80
15.裸机、系统软件、应用软件的概念以及区分
16.源程序、机器语言、高级语言、汇编语言概念要了解,不做重点掌握
17.RAM、ROM的特性
18.字长的特性以及概念(8的倍数)
19.一个汉字占用2个字节
20.存储空间大小的基本单位是字节
-
Java知识点总结
2020-07-18 10:13:58第一周学习总结Java的环境概述与环境搭建概述Java的环境搭建关键字标识符常量的概念以及分类进制的由来,进制的转换 Java的环境概述与环境搭建 概述 什么是程序? 程序是为了模拟现实世界,解决现实问题而使用...第一周学习总结
Java的环境概述与环境搭建
概述
- 什么是程序?
程序是为了模拟现实世界,解决现实问题而使用计算机语言编写一系列有序的指定集合。 - Java的特点
(1)面向对象:贴近人类思维,模拟现实世界,解决现实问题。
(2)简单性:自动内存管理机制,不易造成内存溢出,简化流程处理,语义清晰。
(3)跨平台:跨操作系统和跨服务器。 - 电脑都由哪几部分组成:cpu、主板、内存、电源、主机箱、硬盘、显卡、键盘、鼠标、显示器等。
- 软件的结构划分:
(1)C/S结构(Client/Server):客户端和服务器端的交互。
特点:服务器端和相应的客户端是一个高版本,客户端的软件必须升级才能使用服务器的高版本功能。
例举:QQ客户端、阿里巴巴等。
(2)B/S结构(Browser/Server):浏览器端和服务端的交互(JavaEE)。
特点:只要保证电脑存在浏览器,就可以访问服务端程序。
例举:大型游戏、网易新闻等。 - 软件的划分
系统软件:DOS、Linux、Windows、MAC、
应用软件:客户端软件:QQ、office办公软件
软件开发:借助第三方开发工具----->写相关代码----->开发一个软件。
开发工具:notepad++ : 高级记事本。
eclipse 开发工具(必须使用会!!!),半自动化。
idea 开发工具(非常智能,联想精确),相对eclispe可以提高开发效率。 - 人机交互
方式1:图形界面化,非常简单、直观!
方式2:命令行的方式(得记住相关的操作指令,计算机能够识别的),需要进入dos控制台输入相关命令。
例如:
(1)从系统盘符切换到d盘:win+R,键入cmd,进入dos,输入d: 然后按回车键,即可。
(2)键入dir并回车,可以罗列出某个盘中的文件。
(3)进入某个目录,键入cd 目录名称
例如:cd D:\千峰学习\千峰课程\day3
(4)回退到根目录 cd\ 回退下级目录 cd .
(5)创建目录(文件夹) md 目录名称
(6)创建文件 copy con 输入文件夹名称(xxx.txt) 然后回车,输入文件内容,并ctrl+Z(终止输入文件内容) 再次回车,提示“文件已复制”。
(7)删除文件
del 删除单个文件
rd 删除空目录
rd /s 目录(文件夹)名称 询问删除(Y/N)
rd /s /q 目录(文件夹)名称 暴力删除
(8)清屏 cls 查看ip端口 ipconfig ping其他的ip地址 ping ip地址
Java的环境搭建
- jdk的安装(运行jdk-8uXXX-windows-x64.exe) 默认路径为:C:\Program Files\Java
2.配置 java环境变量
第一步:右击“此电脑”----->“属性”------>“高级系统设置”----->“环境变量”
第二步:“系统变量中点击新建”------>“变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.8.0_121”
第三步:“找到path 点击编辑 进入到path变量中 点击新建 输入%JAVA_HOME%\bin”
第四步:进入dos命令,输入 java/javac,不报错,则说明环境变量配置成功。
注意:classpath:临时环境变量(早期使用) 系统变量名:classpath 变量名:指定某个盘符下的某个目录的路径
3.编写第一个java程序(HelloWorld)
(1)创建.java文件:右击新建一个文本文档,改名为HelloWorld.java,在改名时,弹出警告框时,并点击“是”,才更名成功。
class HelloWorld{ //类
public static void main(String[] args){ //main主函数
System.out.println(“HelloWorld”); //控制台输出语句
}
}
注意:类名和文件名保持一致。
4.编译
进入dos------>进入.java文件存在的盘------>cd 文件夹名称----->javac HelloWorld.java---->回车----->java HelloWorld---->回车
5.类的阐述
(1)同一个源文件中可以定义多个类
(2)编译后,每个类对应一个.class文件
(3)一个类中,只能有一个主函数,每个类都可以有自己的主函数
(4)public修饰的类称为公开类,要求类名必须和文件名保持一致,包括大小写。
(5)一个源文件中,只能有一个公开类。
6.JDK JRE JVM的含义和关系
JDK:java的运行环境 JRE:java的开发工具,包含了lib目录,存储了一些jar包,一些java的核心类库。
JVM:java虚拟机
关系:JDK>JRE>JVM
7.注释
单行注释 // 给代码加上解释说明的文字,可以提高代码的阅读性,不可以换行
多行注释 /* / 可以换行
文档注释 /* */ 生成外部文档:javadoc -d . TestAnnotation.java
注:注释不参与编译
关键字
1.定义:被Java语言赋予特定的含义单词,单词字母全部都是小写。
2.组成关键字的单词都小写,例如:class、public、static、void、interface、extends、abstract,数据类型:基本类型数据都是关键字,流程控制语句中相关选择结构/循环结构语句…等。
注意:goto,const这两个单词不是关键字,作为保留字使用。标识符
1.定义:给类、接口、变量、方法起名字的字符序列。
2.标识符的组成规则:
1)英文大小写字母 2)数字字符 3)$和_下划线
注意:不能以数字开头、不能与关键字和保留字重名、严格区分大小写。
3.包(package):文件夹(目录) 组成规则:包名全小写,只可以使用特殊字符".",并且不以“.”开头或结尾。
例如:包名:com.qf.teach; com.qf.tech.bj;(全小写、不以.开头或结尾)
4. (1)给类、接口起名字:一个单词,首字母大写;多个单词,每个首字母大写。
(2)给变量、方法起名字:一个单词,全部小写;如果是多个单词,第一个单词小写,其余每个单词的首字母大写
(3)给常量起名字:一个单词,全部大写;多个单词,每个单词大写且每个单词之间使用下划线_连接。常量的概念以及分类
1.定义:在程序的执行过程中,其值发生改变的量。
2.分类:
(1)字面值常量
a.字符串常量:使用双引号括起来的内容。 例如:“HelloWorld”
b.字符常量:使用单引号括起来的单个内容。 例如:‘A’ ‘a’
c.整数常量:默认为十进制 例如:100 200
d.小数常量:所有的小数。例如:3.1415 12.56
e.布尔常量:只有两个值 false,true
f.空常量:null
(2)自定义常量(跟final关键字有关,面向对象中讲)
注意:如果字符参与运算,需要在ASCII码表中寻找对应的一个整数值。例如:
‘A’=65 ‘a’=97 ‘0’=48进制的由来,进制的转换
1.进制:就是进位制,是人们规定的一种进位方法。 对于任何一种进制–X进制,就表示某一位置上的数运算时是逢X进一位。二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一。
2. 不同进制的组成规则
二进制:由0,1组成。以0b开头
八进制:由0,1,…7组成。以0开头
十进制:由0,1,…9组成。整数默认是十进制的
十六进制:由0,1,…,9,a,c,d,e,f组成。以0x开头
3. 进制转换
1byte=8bit;1k=1024byte;1M=1024K;1G=1024M;1T=1024G
(1)其他进制转到十进制:
系数:就是每一位上的数据。
基数:X进制,基数就是X。
权:在右边,从0开始编号,对应位上的编号即为该位的权。
结果:把系数基数的权次幂相加即可。
例如:将0b100、0100、0x100转换成十进制
0b100---------->12^2+02+02=4
0100------------>18^2=64
0x100----------->116^2=256
(2)十进制转到其他进制
规律:除积取余,直到商为0,余数取反。
例如:十进制52转换为二进制、八进制、十六进制
二进制:0b110100 八进制:064 十六进制:0x34- 8421编码
是一种快速转换法,针对二进制和十进制
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
例如:x进制---->y进制
方式一:分布走
(1)x进制------>十进制
(2)十进制----->y进制
方式二:二进制转八进制
将二进制每三位分开,左边补零,分别求出来再组合。
有符号位数据表示法(符号位+数值位)
1.步骤:先将这个十进制数据-------->换算成二进制数据-------->写出原码------>反码------>得到补码
2.正数的原码、反码、补码都相同。最高符号位为0。
3.负数的最高符号位为1。求负数的反码时,最高符号位不变,数值位按位取反。求负数的补码时,最高符号位不变,在反码的末尾+1。
4.如果知道负数的补码求其原码时,最高符号位不变,末尾-1,即求得它的反码,在反码的基础上,符号位不变,数值位按位取反,即可得到对应的原码。变量和数据类型
1.变量概念:在程序的执行过程中,其值发生改变的量。
2.变量的三要素:(1)数据类型(2)变量名(3)初始化值
3.针对java语言数据类型的划分:
(1)基本数据类型:
整数数据类型:byte 占1字节 取值范围为(-128~127)
short 占2字节
int 占4字节(默认类型)
long 占8字节
浮点类型: float 占4字节
double 占8字节(默认类型)
字符型: char 占2字节
布尔类型: boolean 占1字节
(2)应用数据类型:数组、类(具体类、抽象类)、接口
4.定义变量的注意事项:
(1).要遵循变量的三要素:
数据类型 变量名 = 初始值;
(2).先定义,但是在使用前必须对其先赋值。
(3).Java是一种强类型语言,不能重复定义变量。
(4).同一行上可以定义多个变量,开发过程中不建议使用。
5.类型提升
进行算数运算时:
(1)两个操作数有一个为double,计算结果提升为double
(2)如果操作数中没有doubl,有一个float,计算结果提升为float
(3)如果操作数中没有float,有一个long,计算结果提升为long
(4)如果操作数中没有long,有一个为int,计算结果提升为int
(5)如果操作数中没有int,均为short或byte,计算结果仍旧提升为int
特殊:任何类型与String相加(+)时,实为拼接,其结果自动提升为String
6.Java中强制类型转换:
语法格式: 目标数据类型 变量名 = (目标数据类型)(变量值);
注意:强类型转换尽量不要使用,会损失数据的精度。
7.变量相加,先判断类型,然后看是否存在默认类型的提升,最终接收的类型是什么类型,判断是否符合,不符合强转。
常量相加,先相加,然后看其结果是否符合在接收的范围内,在范围内正确!不在范围内,利用二进制补码截取的方式进行计算。运算符
1.运算符
I. 算术运算符:两个操作数进行计算
+(加、求和) -(减、求差) *(乘、求积) /(除、求商) %(模、求余)
II. 扩展算数运算符:一元运算符(只求一个操作数)
++(递增,变量值+1) --(递减,变量值-1)
情况一:单独使用:无论操作数在++或–的前面还是后面,都是自增或自减。
情况二:参与运算:如果++或–在操作数的前面,先自增或自减,再运算;如果操作数在++或–的前面,先运算,再自增或自减。
2.赋值运算符:等号右边赋值给等号左边
=(直接赋值) +=(求和后赋值) -=(求差后赋值) =(求积后赋值) /=(求商后赋值) %=(求余后赋值)
3.关系运算符:两个操作数进行比较
>(大于) <(小于) >=(大于等于) <=(小于等于) ==(等于) !=(不等于)
特点:使用比较复合连接的表达式,无论是简单还是复杂,结果都是boolean类型。
4.逻辑运算符:
基本逻辑运算符: 逻辑单与(有0则0,同1则1) 逻辑单或(有1则1,同0则0)
逻辑异或(相同为0,不同为1) 逻辑单非(非真为0,非假为1)
扩展逻辑运算符:&&(语义:与/并且 描述:两个操作数,同时为真,结果为真)
||(语义:或/或者 描述:两个操作数,有一个为真,结果为真)
!(语义:非/取反 描述:意为“不是”,真即是假,假即是真)
逻辑&&和逻辑&的区别:
相同点:都是并列关系,有假则假
不同点:逻辑&&存在短路效果,逻辑&&连接的表达式,左边如果为false,右边的表达式就不执行了。但是逻辑&两边都执行。
逻辑||和逻辑|的区别:
相同点:有真则真。
不同点:逻辑||存在短路效果,逻辑 ||连接的表达式,左边如果为true,右边的表达式就不执行了。但是逻辑|两边都执行。
5.位运算符:
(1)位异或(^):一个数据对另一个数据位异或两次,结果是它本身。
(2)移动符号:<<(左移) >>(右移) >>>(无符号右移)
<<(左移):右边补齐0,最高符号位舍弃。
结论:将该符号左边的数据乘以2的移动次幂。
例: 2乘以8 等价于: 2<<3 即:22^3
>>(右移):如果是正数,左边补齐0,右边数值位舍弃;如果是负数,左边补齐1,右边数值位舍弃。
结论:该数除以2的移动次幂。
例:24>>2 即: 24/2^2
>>>(无符号右移):无论最高位是0还是1,左边都补齐0。
6.三目(三元)运算符:
格式:(表达式)?执行true的结果:执行false的结果;控制台输入
1.程序运行中,可在控制台(终端)手动录入数据,再让程序继续运行。
2.导包语法:import 包名.类名;//将外部class文件功能引入到自身文件中。
3.使用顺寻:
①导入 java.util.Scanner。
JDK提供的类库位置:C:\Program Files\Java\jdk1.8.0_121\jre\lib
当前使用java.util.Scanner
②声明Scanner类型的变量。
格式:Scanner input = new Scanner(System.in);
//提示并接收
System.out.println(“请您输入:”);
数据类型 变量名 = 对象名.nextInt();
③使用Scanner类中对应的函数(区分类型)
.nextInt(); //获得整数
.nextDouble(); //获得小数
.nextLine(); //获得字符串
.next().charAt(0); //获得单个字符(这个是先接收为字符串,再将字符串转为字符)
注意:如果输入不匹配的数据,会产生java.util.InputMismatchException异常。流程控制语句:
基本if、if else、多重if
选择结构:
概念:根据已知条件进行逻辑判断,满足条件后执行相应操作。
1、基本if选择结构
I.语法:
If(布尔表达式){
//代码块
}
后续代码……
II.执行流程:
(1)对布尔表达式进行判断。
(2)结果为true,则先执行代码块,再执行后续代码;结果为false,则跳过代码块,直接执行后续代码。
2、if …… else选择结构
I.语法:
if(布尔表达式){
//代码块1
}else{
//代码块2
}
后续代码……
II.执行流程:
(1)对布尔表达式进行判断。
(2)结果为 true,则先执行代码块1,再退出整个结构,执行后续代码;结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
3、多重if选择结构
I.语法:
If(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
II.执行流程:
(1)表达式1为true,则执行代码块1,再退出整个结构。
(2)表达式2为true,则执行代码块2,再退出整个结构。
(3)表达式3为true,则执行代码块3,再退出整个结构。
(4)以上均为false,则执行代码块4,再退出整个结构。
注意:相互排斥,有一个为true,其他均不再执行,适用于区间判断(区间条件,遵循从大到小或者从小到大)。
4、嵌套if选择结构
I.语法:
If(外层表达式){
If(内层表达式){
//内层代码块1
}else{
//内层代码块2
}
}else{
//外层代码块
}
II.执行流程
当外层条件满足时,在判断内层条件。
III.注意:
(1)一个选择结构中,可嵌套另一个选择结构。
嵌套格式正确的情况下,支持任意组合。
5、分支结构
I.语法:
Switch(变量|表达式){//变量:byte、short、int、char、String(JDK7+)或者表达式
case 值1:
逻辑代码1;
case 值2:
逻辑代码2;
case 值n:
逻辑代码n;
default:
未满足时的逻辑代码;
}
II.可判断的类型:
byte、short、int、char、String(JDK7+)
III.执行流程:
(1)如果变量中的值等于值1,则执行逻辑代码1.
(2)如果变量中的值等于值2,则执行逻辑代码2.
(3)如果变量中的值等于值n,则执行逻辑变量n。
如果变量中的值没有匹配的case值时,执行default中的逻辑代码。循环结构
1.for循环
(1)语法:
for(初始部分:循环条件;迭代部分){
//循环操作
}
(2)执行流程:
I.首次执行初始部分(仅一次)。
II.对布尔表达式进行判断,结果为true,则执行逻辑代码。
III.本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则继续执行
IV.直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
(3)适用场景:明确循环次数或者明确使用范围。
(4)案例:打印水仙花数class ForTest10{ public static void main(String[] args){ //统计所有的水仙花数 int count=0; int X = 100; while(X<1000){ int ge = X%10; int shi = X/10%10; int bai = X/10/10%10; int Y=ge*ge*ge+shi*shi*shi+bai*bai*bai; if(X==Y){ count++; System.out.println(X); } X++; } System.out.println("水仙花数共有:"+count); } }
2.while循环
(1)语法:
while(布尔表达式){
//逻辑代码(循环操作);
//步长语句;
}
(2)执行流程:
①先对布尔表达式进行判断,结果为true,则执行逻辑代码。
②本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。
(3)循环的组成部分
I.初始部分:用以判断的变量
II.循环条件:决定是否继续循环的依据
III.循环操作:单次执行的逻辑代码或任务
IV.迭代部分:控制循环条件改变的增量
(4)while的特点:
首次即有入口条件,先判断、再执行,适用于循环次数明确的情况。
(5)扩展格式:
初始化语句;
while(条件表达式){
循环体语句;
步长语句;
}
(6)案例:猜拳游戏/* 需求:猜数字游戏 1.java.lang.Math类:数学运算的类 2.方法:获取随机数 public static double redom() 取值范围[0.0-1.0) 键盘录入: 1.手动录入一个数据,与随机数比较 2.若比随机数大,输出"猜的大了,重新猜!" 3.若比随机数小,输出"猜的小了,重新猜!" 4.若和随机数一样,输出"恭喜你,猜对了!" 统计猜的次数: 定义一个计数器count */ //导包 import java.util.Scanner; class WhileTest{ public static void main(String[] args){ //获取一个随机数 int count = 0; int number = (int)(Math.random()*100+1); //录入一个随机数 while(true){ Scanner input = new Scanner(System.in); //提示并获取 System.out.println("请您输入一个数:"); int guess = input.nextInt(); //随机数和录入数据比较 if(guess>number){ System.out.println("猜的大了,重新输!"); }else if(guess<number){ System.out.println("猜的小了,重新猜!"); }else{ System.out.println("恭喜你,猜对了!"); break; } count++; } System.out.println("总共猜了:"+count); } }
3.do while循环
(1)语法:
do{
//逻辑代码(循环操作)
}while(布尔表达式)
(2)执行流程:
I.先执行一次循环操作之后,再进行布尔表达式的判断。
II.如果结果为true,则再次执行循环操作。
III.如果结果为false,才会退出循环结构,执行后续代码。
(3)特点:
首次没有入口条件,先执行,再判断。
(4)do while 的应用场景
应用场景:适用于循环次数不明确的情况。 - 什么是程序?
-
C++程序员面试宝典
2013-04-01 13:36:19面试题143 树的分类有哪些 162 面试题144 如何对树进行遍历 164 面试题145 如何对二叉树进行遍历 164 面试题146 如何计算二叉树的高度 166 面试题147 如何计算二叉树的结点数 167 13.5 图 167 面试题148 图的实现... -
java 面试题 总结
2009-09-16 08:45:34内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的... -
JAVA面试题最全集
2010-03-13 13:09:1020.ejb的分类及区别 21.你对现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 25.路由协议种类及特点 26.java的awt和swing组件的GUI设计的关键 27.对于java流的... -
《计算机操作系统》期末复习指导
2009-12-30 10:57:55•存储管理:实质是对存储“空间”的管理,主要指对内存的管理; •设备管理:实质是对硬件设备的管理,其中包括对输入输出设备的分配、启动、完成和回收; •进程管理:又称处理机管理,实质上是对处理... -
C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导
2018-04-06 11:31:158.1 指针是什么 8.2 指针变量 8.2.1 使用指针变量的例子 8.2.2 怎样定义指针变量 8.2.3 怎样引用指针变量 8.2.4 指针变量作为函数参数 8.3 通过指针引用数组 8.3.1 数组元素的指针 8.3.2 在引用数组元素时指针的运算... -
谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar
2013-06-13 22:35:213.11.2 基本类型的分类及特点 49 3.11.3 常量后缀 49 3.11.4 常量类型 49 3.11.5 数据类型转换 49 3.11.6 运算符优先级和结合性 50 表达式 50 4 最简单的 C程序设计—顺序程序设计 4.1 C语句概述 51 4.2 赋值语句 ... -
微机课后题目答案 答案
2011-04-20 10:33:4327.试说明描述符的分类及各描述符的作用。 答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在... -
Oracle Database 11g数据库管理艺术--详细书签版
2012-09-30 01:09:454.6 格式化SQL*Plus的输出以及创建报告的命令 93 4.6.1 BREAK命令 93 4.6.2 COLUMN命令 94 4.6.3 COMPUTE命令 94 4.6.4 REPFOOTER命令 94 4.6.5 REPHEADER命令 94 4.6.6 BTITLE和TTITLE命令 94 4.7 ... -
2.10 什么样的分类器是最好的? 22 2.11 大数据与深度学习的关系 22 2.12 理解局部最优与全局最优 23 2.13 理解逻辑回归 24 2.14 逻辑回归与朴素贝叶斯有什么区别? 24 2.15 为什么需要代价函数? 25 2.16 代价函数...
-
软件工程教程
2012-07-06 23:10:29问:开发这个软件目标是什么? 答: 提高用户对音乐的学习和娱乐 参与创作音乐 项目背景--钢琴练奏师 问:为什么传统音乐程序不好? 答: 传统音乐程序功能单一,容易令人感到枯燥无味,没有吸引力; 传统音乐... -
大话Oracle RAC:集群、高可用性、备份与恢复--详细书签版
2013-02-06 16:12:06本书最大的特点是侧重于理论讲述和实战演练,尤其是对理论的剖析有一定的深度,并通过大量完整的案例来论证这些理论。DBA和开发人员特点不同,对于开发人员来说,从某种角度上,强调创造力决定高度。但是DBA要求的... -
目录介绍 01.项目介绍 02.项目运行 03.项目部分介绍 ...有的建议Clean然后Rebuild,有的建议修改使用内存,有的说是代码问题,也有的说是资源问题,比如本来是jpg图片或者.9图片,文件后缀却是png也会导致...
-
循序渐进Linux基础知识、服务器搭建、系统管理、性能调优、集群应用
2014-01-17 14:06:1217.3 集群的分类 375 17.3.1 高可用集群 375 17.3.2 负载均衡集群 377 17.3.3 科学计算集群 377 17.4 小结与练习 378 第18章 Linux-HA开源软件Heartbeat 379 18.1 Heartbeat的概念 380 18.2 HA集群中的相关术语 380... -
Linux高级配置详解
2011-06-11 06:59:29seforlinux2.4.2建informix用户2.4.3安装2.4.4设置环境及参数2.4.5启动服务器2.4.6测试2.5部分优秀软件简介2.5.1WWW浏览器2.5.2编辑器2.5.3实用工具2.5.4图形图像处理软件2.5.5系统管理工具2.6CVS简介2.6.1什么是CVS... -
Java代码实例
2016-06-21 22:44:5111.3.1 什么是异常的再抛出 206 11.3.2 显性再抛出 207 11.3.3 隐性再抛出 209 11.3.4 方法重写对抛出异常声明的约束 210 11.4 定义自己的异常 212 11.4.1 创建自己的异常类 212 11.4.2 使用自定义的... -
Java SE 6.0编程指南 源码
2012-05-18 13:40:4511.3.1 什么是异常的再抛出 206 11.3.2 显性再抛出 207 11.3.3 隐性再抛出 209 11.3.4 方法重写对抛出异常声明的约束 210 11.4 定义自己的异常 212 11.4.1 创建自己的异常类 212 11.4.2 使用自定义的... -
嵌入式Linux 系统原理及应用(基于S3C44B0X嵌入式μCLinux )
2011-09-21 07:59:341.1.1 什么是嵌入式系统 1.1.2 嵌入式系统的特点及分类 1.2 嵌入式微处理器和嵌入式操作系统 1。2.1 嵌入式微处理器 1.2.2 嵌入式操作系统 1.3 嵌入式系统设计过程 1.3.1 需求分析 1.3.2 规格... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--详细书签版
2013-02-04 12:43:52有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用... -
[Oracle.11g权威指南(第2版)].谷长勇.扫描版.pdf
2013-06-23 21:16:09本章主要介绍了数据库的基础知识、Oracle数据库的特点、发展历史及Oracle的最新数据库版本11g的一些新的特性。 2.1 Oracle数据库发展演进史 9 2.2 Oracle版本号的含义 10 2.3 Oracle网格技术 11 2.3.1 网格概述 11 ... -
尹成Python27天入门到项目实战
2020-12-05 17:04:22字符串高级简单回顾..eval与exec简介字符串的简单规范字符串的截取字符串赋值规范字符串转义字符字符串常见运算符字符串格式化字符串格式化强化字符串编码简介dir与help查看str字符串函数第一个大写以及字符串居中... -
Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码
2013-02-04 12:49:33有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用... -
Oracle DBA突击:帮你赢得一份DBA职位--详细书签版
2013-02-06 15:56:4010.2 Agent的分类 357 10.2.1 什么是ODBC 358 10.2.2 ODBC的组件 358 10.3 配置到MySQL的普通连接 359 10.3.1 环境介绍 360 10.3.2 MySQL服务器的配置 360 10.3.3 Oracle服务器的配置 371 10.4 配置... -
大话数据结构
2019-01-10 16:35:22求100个人的高考成绩平均分与求全省所有考生的成绩平均分在占用时间和内存存储上有非常大的差异,我们自然追求高效率和低存储的算法来解决问题。 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高和... -
大话数据结构 程杰
2018-09-01 10:06:43求100个人的高考成绩平均分与求全省所有考生的成绩平均分在占用时间和内存存储上有非常大的差异,我们自然追求高效率和低存储的算法来解决问题。 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高和...
-
Linux基础入门系列课程
-
spark大数据分析与实战
-
使用树突状细胞算法检测P2P机器人
-
【Python-随到随学】FLask第二周
-
在 Linux 上构建企业级 DNS 域名解析服务
-
物联网基础篇:快速玩转MQTT
-
Optical system design with conformal decentered and tilted elements
-
用微服务spring cloud架构打造物联网云平台
-
京东基于Spark的风控系统架构实践和技术细节
-
bdb:Eine简单的Beschlussdatenbank-源码
-
【数据结构】链表:LeetCode题(四)234.回文链表
-
51单片机温控pid仿真程序.zip
-
iptables 企业级防火墙配置(四表五链)
-
这样提案,设计比较容易落地
-
libFuzzer视频教程
-
自动化测试Python3+Selenium3+Unittest
-
task2
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
【Python-随到随学】 FLask第一周
-
VB获取窗体的位置和大小