No_16_0221 Java基础学习第二天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No_16_0221 Java基础学习第二天相关的知识,希望对你有一定的参考价值。

文档版本 开发工具 测试平台 工程名字 日期 作者 备注
V1.0 2016.02.21 lutianfei none

第二章 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:标准注释举例:

  1. //标准注释
  2. /*
  3. * 需求:准备写一个Java程序,把HelloWorld!!!这句话输出在控制台
  4. * 分析:
  5. * A:要写一个Java程序,必须定义类
  6. * B: 把数据能够输出,说明我们的程序时可以独立运行的,而 程序要独立运行,必须定义main方法
  7. * C: 把数据输出在控制台,必须使用输出语句
  8. * 实现:
  9. * A:java 语言提供了一个关键字:class用来定义类,后面跟的是类名
  10. * B: main方法的格式是固定的:
  11. * public static void main(String[] args){
  12. }
  13. * C:输出语句的格式是固定的:
  14. System.out.println("HelloWorld");
  15. */
  16. //这是一个HelloWorld案例
  17. class HelloWorld{
  18. /*
  19. 为了程序能够独立运行,定义main方法
  20. main方法是程序的入口,被jvm自动调用
  21. */
  22. public static void main(String[] args){
  23. System.out.println("HelloWorld");
  24. }
  25. }

(四)常量

  • 常量概述
    • 在程序执行的过程中其值不可以发生改变
  • Java中常量分类

    • 字面值常量
    • 自定义常量(面向对象部分讲)
  • 字面值常量分类

    • 字符串常量 用双引号括起来的内容
      • “Helloworld”
    • 整数常量 所有整数
      • 12,23
    • 小数常量 所有小数
      • 12.34,56.78
    • 字符常量 用单引号括起来的内容
      • ‘a’,’A’,’0’(必须只能是一个字符)
    • 布尔常量 较为特有,只有truefalse
    • 空常量 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





















以上是关于No_16_0221 Java基础学习第二天的主要内容,如果未能解决你的问题,请参考以下文章

No_16_0224 Java基础学习第五天

No_16_0324 Java基础学习第二十三天

No_16_0229 Java基础学习第八天

No_16_0229 Java基础学习第九天

No_16_0222 Java基础学习第三天

No_16_0226 Java基础学习第七天