一、变量1.按数据类型分类

文章插图
详细说明:
- 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)
声明long型变量,必须以"l"或"L"结尾
通常,定义整型变量时,使用int型 。
整型的常量,默认类型是:int型
- 浮点型:float(4字节) \ double(8字节)
float表示数值的范围比long还大
定义float类型变量时,变量要以"f"或"F"结尾
通常,定义浮点型变量时,使用double型 。
浮点型的常量,默认类型为:double
- 字符型:char (1字符=2字节)
表示方式:1.声明一个字符 2.转义字符 3.直接使用 Unicode 值来表示字符型常量
- 布尔型:boolean
常常在条件判断、循环结构中使用
2.按声明的位置分类

文章插图
3.定义变量的格式
- 数据类型 变量名 = 变量值;
- 数据类型 变量名;
- 变量名 = 变量值;
- 变量必须先声明,后使用
- 变量都定义在其作用域内 。在作用域内,它是有效的 。换句话说,出了作用域,就失效了
- 同一个作用域内,不可以声明两个同名的变量
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型 。
byte 、char 、short --> int --> long --> float --> double
特别的:当 byte、char、short 三种类型的变量做运算时,结果为int型 。
说明:此时的容量大小指的是,表示数的范围的大和小 。比如:float容量要大于long的容量
【汉语5种基本语法结构 2-基本语法】强制类型转换(只涉及7种基本数据类型):自动类型提升运算的逆运算 。
- 需要使用强转符:()
- 注意点:强制类型转换,可能导致精度损失 。
- String 属于引用数据类型,翻译为:字符串
- 声明 String 类型变量时,使用一对""
- String 可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
- 运算的结果仍然是 String 类型
String s = 123;//编译错误String s1 = "123";int i = (int)s1;//编译错误5.进制1.编程中涉及的进制及表示方式- 二进制(bianary):0,1 ,满 2 进 1. 以 0b 或 0B开头
- 十进制(decimal):0-9,满10进1
- 八进制(octal):0-7,满8进1,以数字0开头
- 十六进值(hex):0-9及A-F,满16进1. 以0x或0X开头表示 。此处的A-F不区分大小写 。
- 如:0x21AF + 1 =0X21B0
二进制数据的存储方式:所有的数值,不管正负,底层都以补码的方式存储 。
原码、反码、补码的说明:
正数:三码合一
负数:
原 码 : 直 接 将 一 个 数 值 换 成 二 进 制 数。最 高 位 是 符 号 位
负 数 的 反 码 : 是 对 原 码 按 位 取 反 ,只 是 最 高 位 ( 符 号 位 ) 确 定 为 1。
负 数 的 补 码 : 其 反 码 加 1。
3.进制间的转换

文章插图
图示二进制转换为十进制:

文章插图

文章插图

文章插图
图示十进制转换为二进制:

文章插图
二进制与八进制、十六进制间的转换:

文章插图
对应图示:

文章插图
6.Scanner类的使用
/*如何从键盘获取不同类型的变量:需要使用Scanner类具体实现步骤:1.导包:import java.util.Scanner;2.Scanner的实例化:Scanner scan = new Scanner(System.in);3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量注意:需要根据相应的方法,来输入指定类型的值 。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException导致程序终止 。*///1.导包:import java.util.Scanner;import java.util.Scanner;class ScannerTest{public static void main(String[] args){//2.Scanner的实例化Scanner scan = new Scanner(System.in);//3.调用Scanner类的相关方法System.out.println("请输入你的姓名:");String name = scan.next();System.out.println(name);System.out.println("请输入你的芳龄:");int age = scan.nextInt();System.out.println(age);System.out.println("请输入你的体重:");double weight = scan.nextDouble();System.out.println(weight);System.out.println("你是否相中我了呢?(true/false)");boolean isLove = scan.nextBoolean();System.out.println(isLove);//对于char型的获取,Scanner没有提供相关的方法 。只能获取一个字符串System.out.println("请输入你的性别:(男/女)");String gender = scan.next();//"男"char genderChar = gender.charAt(0);//获取索引为0位置上的字符System.out.println(genderChar);}}二、关键字与标识符1.java关键字的使用定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所字母都为小写
用于定义数据类型的关键字:classinterfaceenumbyteshortintlongfloatdoublecharbooleanvoid用于定义流程控制的关键字:ifelseswitchcasedefaultwhiledoforbreakcontinuereturn用于定义访问权限修饰符的关键字:privateprotectedpublic用于定义类,函数,变量修饰符的关键字:abstractfinalstaticsynchronized用于定义类与类之间的关键字:extendsimplements用于定义建立实例及引用实例,判断实例的关键字newthissuperinstanceof用于异常处理的关键字:trycatchfinallythrowthrows用于包的关键字packageimport其它修饰符关键字nativestrictfptransientvolatileassert用于定义数据类型值的字面值truefalsenull2.保留字现Java版本尚未使用,但以后版本可能会作为关键字使用 。
具体哪些保留字:goto 、const
注意:自己命名标识符时要避免使用这些保留字
3.标识符的使用定义:凡是自己可以起名字的地方都叫标识符 。
涉及到的结构:
包名、类名、接口名、变量名、方法名、常量名
规则:(必须要遵守 。否则,编译不通过)
由 26 个 英 文 字 母 大 小 写 ,0 . 9 ,一 或 $ 组 成
数 字 不 可 以 开 头。
不 可 以 使 用 关 键 字 和 保 留 字 ,但 能 包 含 关 键 字 和 保 留 字。
Java 中 严 格 区 分 大 小 写 ,长 度 无 限 制 。
标 识 符 不 能 包 含 空 格。
规范:(可以不遵守,不影响编译和运行 。但是我要求自己遵守)
包名:多单词组成时所有字母都小写, xxxyyyzzz
类名、接囗名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个
单词首字母大写:xxxYyyZzz
常量名:所有字毋都大写:多单词时每个单词厍下划线连接:XXX_YYY_ZZZ
注意:
在命名时,为了提高阅读性,要尽量意义,“见名知意” 。
4.代码整洁之道整理人:尚硅谷 - 宋红康
第2章 有意义的命名
2.1 介绍
软件中随处可见命名 。我们给变量、函数、参数、类和包命名 。我们给源代码及源代码所在目录命名 。
这么多命名要做,不妨做好它 。下文列出了取个好名字的几条简单规则 。
2.2 名副其实,见名知意
变量名太随意,haha、list1、ok、theList 这些都没啥意义
2.3 避免误导
包含List、import、java等类名、关键字或特殊字;
字母o与数字0,字母l与数字1等
提防使用不同之处较小的名称 。比如:XYZControllerForEfficientHandlingOfStrings与XYZControllerForEfficientStorageOfStrings
2.4 做有意义的区分
反面教材,变量名:a1、a2、a3
避免冗余,不要出现Variable、表字段中避免出现table、字符串避免出现nameString,直接name就行,知道是字符串类型
再比如:定义了两个类:Customer类和CustomerObject类,如何区分?
定义了三个方法:getActiveAccount()、getActiveAccounts()、getActiveAccountInfo(),如何区分?
2.5 使用读得出来的名称
不要使用自己拼凑出来的单词,比如:xsxm(学生姓名);genymdhms(生成日期,年、月、日、时、分、秒)
所谓的驼峰命名法,尽量使用完整的单词
2.6 使用可搜索的名称
一些常量,最好不直接使用数字,而指定一个变量名,这个变量名可以便于搜索到.
比如:找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了 。
2.7 避免使用编码
2.7.1 匈牙利语标记法
即变量名表明该变量数据类型的小写字母开始 。例如,szCmdLine的前缀sz表示“以零结束的字符串” 。
2.7.2 成员前缀
避免使用前缀,但是Android中一个比较好的喜欢用m表示私有等,个人感觉比较好
2.7.3 接口和实现
作者不喜欢把接口使用I来开头,实现也希望只是在后面添加Imp
2.8 避免思维映射
比如传统上惯用单字母名称做循环计数器 。所以就不要给一些非计数器的变量命名为:i、j、k等
2.9 类名
类名与对象名应该是名词与名词短语 。如Customer、WikiPage、Account和AddressParser 。避免使用Data或Info这样的类名 。
不能使动词 。比如:Manage、Process
2.10 方法名
方法名应当是动词或者动词短语 。如postPayment、deletePage或save
2.11 别扮可爱
有的变量名叫haha、banana
别用eatMyShorts()表示abort()
2.12 每个概念对应一个词
项目中同时出现controllers与managers,为什么不统一使用其中一种?
对于那些会用到你代码的程序员,一以贯之的命名法简直就是天降福音 。
2.13 别用双关语
有时可能使用add并不合适,比例insert、append 。add表示完整的新添加的含义 。
2.14 使用解决方案领域名称
看代码的都是程序员,所以尽量用那些计算机科学术语、算法名、模式名、数学术语,
依据问题所涉领域来命名不算是聪明的做法 。
2.15 使用源自所涉问题领域的名称
如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧 。
至少,负责维护代码的程序员就能去请教领域专家了 。
2.16 添加有意义的语境
可以把相关的变量放到一个类中,使用这个类来表明语境 。
2.17 不要添加没用的语境
名字中带有项目的缩写,这样完全没有必要 。比如有一个名为“加油站豪华版”(Gas Station Deluxe)的项目,
在其中给每个类添加GSD前缀就不是什么好策略 。
2.18 最后的话
取好名字最难的地方在于需要良好的描述技巧和共有文化背景 。
三、循环1.循环结构的四要素① 初始化条件
② 循环条件 --->是boolean类型
③ 循环体
④ 迭代条件
说明:通常情况下,循环结束都是因为②中循环条件返回false了 。
2.三种循环结构for循环结构
for(①;②;④){
③
}
执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②
while循环结构
①
while(②){
③;
④;
}
执行过程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②
说明:写while循环千万小心不要丢了迭代条件 。一旦丢了,就可能导致死循环!
do-while循环结构
①
do{
③;
④;
}while(②);
执行过程:① - ③ - ④ - ② - ③ - ④ - ... - ②
说明:
- do-while循环至少会执行一次循环体!
- 开发中,使用for和while更多一些 。较少使用do-while
- “无限循环”结构: while(true) 或 for(;
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
