文档版本 | 开发工具 | 测试平台 | 工程名字 | 日期 | 作者 | 备注 |
---|---|---|---|---|---|---|
V1.0 | 2016.02.21 | lutianfei | none |
第二章 Java基础语法
(一)关键字
(二)标识符
1、常见命名规则
(三)注释
(四)常量
原码、反码、补码
有符号数据表示法
(五)变量
数据类型的默认转换
数据类型的强制转换
面试题1
面试题2
练习题1 byte b = 300;
练习题2,写出下列程序结果
第二章 Java基础语法
- 本章内容
- 关键字
- 标识符
- 注释
- 常量、进制和进制转换
- 变量
- 数据类型和类型转换
- 运算符
- 语句
(一)关键字
- 关键字概述
- 被Java语言赋予特定含义的单词
- 关键字特点
- 组成关键字的字母全部小写
- 关键字注意事项
- goto和const作为保留字存在,目前并不使用(在JDK的新版本中可能提升为关键字)
- 类似Notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观
(二)标识符
- 标识符概述
- 就是给类,接口,方法,变量等起名字时使用的字符序列
- 组成规则
- 英文大小写字母
- 数字字符
- $和_
- 注意事项
- 不能以数字开头
- 不能是Java中的关键字
- 区分大小写
1、常见命名规则
- 基本原则:见名知义
- 常见命名
- 包(其实就是文件夹,用于解决相同类名问题,全部小写)
- 单级:miaolu,liuyi
- 多级(用.隔开):cn.ali
- 类或者接口:每个字的首字母大写,含有大小写。
- 一个单词 : 首字母大写 eg:Times
- 多个单词:每个单词首字母大写。 eg: studentAge,showAllAge
- 方法和变量
- 一个单词 : 全部小写 eg:main,age
- 多个单词:从第二个单词开始每个单词首字母大写。 eg: studentAge,showAllAge
- 常量名。基本数据类型的常量名使用全部大写字母,_字与字之间用下划线分隔。对象常量可大小混写。
- 一个单词 : 字母大写 eg:TIME
- 多个单词:字母大写,每个单词用_隔开。 eg:SIZE_TYPE
- 包(其实就是文件夹,用于解决相同类名问题,全部小写)
(三)注释
- 注释概述
- 用于解释说明程序的文字
- Java中注释分类格式
- 单行注释
- 格式: //注释文字
- 多行注释
- 格式: /* 注释文字 */
- 文档注释
- 格式:/** 注释文字 */
- 对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
- 单行注释
- eg:标准注释举例:
//标准注释
/*
* 需求:准备写一个Java程序,把HelloWorld!!!这句话输出在控制台
* 分析:
* A:要写一个Java程序,必须定义类
* B: 把数据能够输出,说明我们的程序时可以独立运行的,而 程序要独立运行,必须定义main方法
* C: 把数据输出在控制台,必须使用输出语句
* 实现:
* A:java 语言提供了一个关键字:class用来定义类,后面跟的是类名
* B: main方法的格式是固定的:
* public static void main(String[] args){
}
* C:输出语句的格式是固定的:
System.out.println("HelloWorld");
*/
//这是一个HelloWorld案例
class HelloWorld{
/*
为了程序能够独立运行,定义main方法
main方法是程序的入口,被jvm自动调用
*/
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
(四)常量
- 常量概述
- 在程序执行的过程中其值不可以发生改变
- Java中常量分类
- 字面值常量
- 自定义常量(面向对象部分讲)
- 字面值常量分类
- 字符串常量 用双引号括起来的内容
- “Helloworld”
- 整数常量 所有整数
- 12,23
- 小数常量 所有小数
- 12.34,56.78
- 字符常量 用单引号括起来的内容
- ‘a’,’A’,’0’(必须只能是一个字符)
- 布尔常量 较为特有,只有true和false
- 空常量 null(数组部分讲解)
- 字符串常量 用双引号括起来的内容
- 注对于数值默认按十进制处理。
- 二进制:0b100
- 八进制 :0100
- 十进制: 100
- 十六进制:0x100
原码、反码、补码
有符号数据表示法
- 在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。
- 原码
- 就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
- 反码
- 正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
- 补码
- 正数的补码与其原码相同;负数的补码是在其反码的末位加1。
- 有符号数据练习
- 已知某数X的原码为10110100B,试求X的补码和反码。
- 已知某数X的补码11101110B,试求其原码。(补码 ->原码 符号位除外直接取反加1)
(五)变量
- 变量概述
- 在程序执行的过程中,在某个范围内其值可以发生改变的量
- 理解:如同数学中的未知数
- 变量定义格式
- 数据类型 变量名 = 初始化值;
- 注意:格式是固定的,记住格式,以不变应万变
Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间
- 注:
- 整数默认:int
- 小数默认:double
- 长整形后缀用L或l标记。建议用L。
- 单精度浮点数用f或F标记。建议用F。
- 使用变量注意事项:
- 作用域
- 变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。
- 相同的作用域中不能定义两个同名变量。
- 初始化值
- 没有初始化值不能直接使用。只要在使用之前给值就行,不一定在定义的时候立马给值。
- 在一行上建议只定义一个变量,可以定义多个,但是不建议
数据类型的默认转换
- 一般来说要求参与运算的数据类型必须一致。
- boolean类型不能转换为其他的数据类型
- 默认转换(小类型先转成大类型再参与运算)
- byte,short,char—>int—>long—>float—>double
- byte,short,char相互之间不转换,他们参与运算时首先转换为int类型
数据类型的强制转换
- 目标类型 变量名=(目标类型)(被转换的数据);
- eg:byte c = (byte)(a+b); //int a,byte b;
面试题1
- byte b1=3,b2=4,b;
- b=b1+b2;
- b=3+4;
- 哪句是编译失败的呢?为什么呢?
- 因为b1和b2是变量,因为变量相加首先考虑类型问题,最终把结果赋值时也会考虑类型问题,所以默认b1+b2后为保证不溢出,会转为int类型进行存储。
- 3和4都是常量,常量相加首先做加法,看结果是否超出byte类型的范围。如果没有可以正常赋值。
面试题2
- byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?
- 因为byte的范围是 -128 ~ +127, 130溢出了。
- byte b = (byte)130;编译不会报错。
- 分析过程:
- A : 130转为2进制时:00000000 00000000 00000000 10000010(这是130的原码,反码,补码)
- B : 截取操作,截取成byte : 10000010(这个结果是补码)
- C :显示以原码形式呈现 转为原码(除符号位外取反+1)1111110
练习题1 byte b = 300;
练习题2,写出下列程序结果
- System.out.println(‘a’); 结果:a
- System.out.println(‘a’+1);结果:97
- System.out.println(“hello”+’a’+1);
- System.out.println(‘a’+1+”hello”);
- System.out.println(“5+5=”+5+5);
- System.out.println(5+5+”=5+5”);
- 注:
1、字符串数据和其他数据做+,结果是字符串类型.但是要注意运算的顺序。
- 答案:
- helloa1
- 98hello
- 5+5=55
- 10=5+5
时间: 2024-11-04 13:41:25