第2章 Java编程基础

这一章节的内容基本上与C是相同的,故只列出几许差异和个人认为需要注意的点。

2.1 语句与表达式

同VC,C语言的程序员可以略过该节。

2.2 变量和数据类型

1、有3 种变量:实例变量、类变量和局部变量。实例变量用于定义对象的属性。类变量定义类的属性,适用于类的所有实例。局部变量用于方法定义乃至方法中更小的语句块中。仅当Java 虚拟机执行这些方法或语句块时,它们才被使用,离开方法或块之后,它们将不复存在。(局部变量在失效后将被自动回收,不能再使用,与C不同。例如:

       forint i=0;i<10;i++

       {

              ……

       }

       System.out.println("i = "+i);             //Java,编译出错,变量i找不到符号

       TRACE(_T("i = %d", i);               //VS2008,编译通过,i = 0

2、良好的习惯是给所有局部变量指定初始值。默认情况下,实例变量和类变量的初始值取决于其数据类型。

数值变量:0。

字符变量:"\0"。

布尔变量:false。

对象:null。

3、Java 语言使用Unicode 字符集,有Unicode 字符号的重音字符和其他符号也可用于变量名中。

4、变量通常被赋予一个有意义的,由多个单词组合而成的名称。为方便辨识,可使用下述通用规则:

变量名的第一个字母小写;

变量名中其他单词的第一个字母大写;

其他字母都小写。

5、虽然在变量名中可以使用下划线,但除非在如下情况下,否则不应使用它:整个变量名都是大写时,使用下划线将各个单词分开。

6、虽然在变量名中可以使用美元符号,但在任何情况下都不应这样做。Java 官方文档建议不要使用它,因此程序员都遵循这种约定。

7、Java 提供了8 种基本数据类型,用于存储整数、浮点数、字符和布尔值。它们通常被称为简单类型(primitive type)。不管在什么操作系统和平台上,这些数据类型的长度和特征都相同,这与其他编程语言的某些数据类型不同。

8、所有类型都是有符号的,给变量指定哪种类型取决于需要存储的值的范围。所有这些整型变量都不能正确存储超出其取值范围的值,所以在指定类型时一定要小心。(C中变量类型还有无符号型

9、boolean类型,其取值为true 或false。(C中布尔类型可以是truefalse,也可以是0或非0的数字,java中不能用0或非0

10、所有这些变量类型名都是小写的,在程序中必须这样使用它们。存在与这些数据类型名称相同,但大小写不同的类,如Boolean 和Double。

11、类型void, 表示“空”(nothing),用于指出方法不返回任何值。

12、在Java 中,可以创建各种类型的常量:实例常量、类常量和局部常量。

13、要声明常量,可在变量声明前加上关键字final,并指定初始值。(C中使用关键字const

14、常量名都为大写。Java 程序员都这样做,以表明这是常量而不是变量;虽然Java 并未要求常量名必须大写,但最好遵循这种做法。

15、常量名由多个单词组成时,将整个常量名都大写将导致各个单词难以区分,应使用下划线将各个单词分开。

2.3 注释

Javadoc 注释以/**打头,*/以结束。这些分界符之间的内容都被视为用于描述类及其方法的官

方文档。Javadoc 注释可被诸如javadoc(JDK 中的一个命令行工具)等实用程序读取。javadoc 使用这种注释可创建一组网页,用于说明Java 类的功能、指出Java 类在继承层次结构中的位置、描述其每个方法。(其他注释方法“//”、“/*....*/”与C相同

2.4 字面量

除变量外,还可以在Java 语句中使用字面量。字面量可以是任何直接表示一个值的数字、文本或其他信息。(其实就是等号右边的常量值

1、一个int 类型的整型字面量,可将其赋给byte 或short类型的变量,因为它足够小,在这些整数类型的取值范围内。

2、位于int 取值范围之外的整型字面量将被视为long 类型。也可以再数字后面加L或l表示该值为long型,如4L。(C中如果字面量大于变量类型的取值范围,将表现为溢出

3、对于很大的整型字面量,为提高其可读性,可在其中添加下划线。这种下划线的作用与表示千分位的逗号相同,旨在让数字更易读。(C中无此表示法

4、所有的浮点数字面量都被视为double 类型,而不是float 类型。要将字面量的类型指定为float,可加上字母F(或f)。在浮点数字面量中,可以使用指数表示法,即使用字母e(或E),而指数可以是负数。

5、二进制字面量以0b 打头,八进制字面量以0 打头,十六迚制字面量以0x打头。(C中没有二进制的规定,八进制和十六进制相同

6、布尔值true 和false 也是字面量。boolean 变量的取值只能是true 或false。

7、字符字面量是用单引号括起的单个字符,。Java 使用16 位的Unicode 标准,除ASCII 字符外,还支持其他数以千计的字符。有些字符字面量表示的是非打印字符或不能通过键盘输入的字符。

8、以下转义字符与C不同,字母d 表示一个数字或十六迚制数字(a~f或A~F)。

转义符

含义

\d

八进制

\xd

十六进制

\ud

Unicode字符

9、Java 中的字符串是一种对象,而不是一种基本数据类型String。同时,不像C 语言那样,字符串被存储在数组中。字符串字面量是用双引号括起的一系列字符,字符串中可以包含转义字符。(类似于VC中的CString

10、在支持Unicode 的系统上,Unicode 编码序列\u2122 将生成一个TM符号。

11、虽然Java 支持对Unicode 字符的传输,但要在程序运行时显示这些字符,计算机也必须支持Unicode。Unicode 提供了一种对字符进行编码的方式,可用于支持该标准的系统。Java 支持任何Unicode 字符的显示,只要该字符能够被主机的某种字体表示出来。

2.5 表达式和运算符

1、&和&&之间的差别在于对组合表达式所做的工作量。如果使用&,则不管什么情况下,&两边的表达式都将被计算;如果使用&&,则当左边的表达式为false 时,将不计算右边的表达式。因此,&&的效率更高,因为它不做不必要的工作。&优先级高于&&。

2、||和|之间,||的效率更高,左边为true时就不再计算右边的值。|优先级高于||。

3、instanceof 运算符返回true 或false 值,这取决于该对象是否属于指定的类或其子类的一个实例。优先级同(++ −− ! ~)。

4、运算符+拼接多个字符串。如果拼接运算的任何一个部分是String 或String 字面量,则其他所有元素都将被作为字符串进行处理:

System.out.println(4 + " score and " + 7 + " years ago");

这将产生文本输出4 score and 7 years ago,就像整数字面量4 和7 是字符串一样。(这点和C不同

《21天学通Java(第7版)》——VC程序员的学习笔记2相关推荐

  1. 21天学通java第7版pdf_21天学通Java.第7版.pdf

    <21天学通Java(第7版)>是初学者学习Java编程语言的畅销经典教程,循序渐进地介绍了Java编程语言知识,并提供了丰富的实例和练习:同时全面涵盖了Java 8这一新标准以及与And ...

  2. 《21天学通Java(第7版)》—— 第2章 Java编程基础 2.1 语句和表达式

    本节书摘来异步社区<21天学通Java(第7版)>一书中的第2章,第2.1节,作者: [美]Rogers Cadenhead(罗格斯 卡登海德),更多章节内容可以访问云栖社区"异 ...

  3. 《21天学通Java(第6版)》—— 1.4 属性和行为

    本节书摘来异步社区<21天学通Java(第6版)>一书中的第1章,第1.4节,作者:[美]Rogers Cadenhead,更多章节内容可以访问云栖社区"异步社区"公众 ...

  4. 21天学通Java学习笔记-Day01

    21天学通java 中文第6版 下载地址:点击打开链接 Day01: 命令行查看和设置classpath: 查看:echo %classpath% 设置:set classpath = %classp ...

  5. 21day学通python epub_21天就让你掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  6. ole2高级编程技术 pdf_21天快速掌握Python语言,《21天学通Python》PDF版送给你去学...

    Python的学习书籍小编看过很多,但是这本<21天学通Python>真的是堪称极品! 本书的作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版 ...

  7. 21天学通Python,从入门到上手,学习方式+学习资料+学习视频汇总,零基础转行自学必备

    前言 python的学习资料小编看过很多,但是这个21天学通python真的是堪称极品!作者团队成员为一线开发工程师.资深编程专家或专业培训师,在编程开发方面有着丰富的经验,颇受广大读者认可.长期积累 ...

  8. 21天学通Java学习笔记-Day12(MYsql-JDBC)

    JDBC MYQL 基础: 用命令行进入MYSQL:shell > mysql -h host(主机) -u user(用户名) -p 回车,等待输入密码 退出MYSQL:mysql >  ...

  9. 21天学通java 3_《21天学通Java》PDF 下载

    第一篇  基 础 篇 第1章  Java简介 1.1  Java的平台简介 1.2  安装工具包 1.3  程序开发过程 1.4  编码规范 1.5  HelloWorld:第一个Java程序 1.6 ...

  10. 21天学通Java学习笔记-Day04

    Day04: 静态数组是一组对象,每个元素都是一个对象,所以用 new 创建新的数组实例. class test{public static void main(String[]args){a[] a ...

最新文章

  1. Open3d学习计划—高级篇 3(点云全局配准)
  2. linux下查看内存使用情况
  3. 百度二面:一个线程OOM了,其它线程还能运行吗?
  4. 结构风险和经验风险是什么?怎么去平衡它们?
  5. request获取各种路径 转,记下来免得 以后忘记了。
  6. Spring+SpringMVC项目搭建
  7. linux创建sudo用户_Linux终极指南-创建Sudo用户
  8. axure实现复选框全选_jq简单的全选、反选和全不选效果
  9. Git 常用命令总结,掌握这些,轻松驾驭版本管理
  10. 利用中值滤波而不是均值滤波去除椒盐噪声(脉冲噪声)
  11. 一个麻省理工学院毕业生对中国教育的反思 转
  12. 【渝粤教育】电大中专电商运营实操 (4)作业 题库
  13. c#时分秒毫秒微妙_c# - 将秒转换为(小时:分钟:秒:毫秒)时间的最佳方法是什么?...
  14. 深入Python进程间通信原理
  15. 【Java】时间戳与秒、毫秒转化
  16. idea中HTML格式化时标签缩进问题
  17. 一些opencv小工程(蓝白转换,进度条亮度对比度,鼠标位置读取rgb)
  18. C#上位机开发串口通信
  19. 要么干、要么滚,别在这里混!
  20. 剑侠单机版显示服务器正在维护,剑侠情缘8月22日部分服务器维护开服及补偿公告...

热门文章

  1. c语言八大数据结构有哪些,C语言中都有哪些常见的数据结构你都知道几个??...
  2. 《深入浅出通信原理》连载1-562合集
  3. Oracle之分析函数
  4. 基于Jsp的简单论坛(BBS)的设计与实现(附代码)
  5. 2018年下半年计算机软件,2018年下半年程序员真题+答案解析(全国计算机软考)上午选择+下午案例完整版.pdf...
  6. 【经验分享】如何为visio扩展云服务图标
  7. ansys17.2安装教程
  8. 增程式串联混合动力实际项目模型,本模型基于Cruise软件和Simulink软件共同搭建完成,并实际应用,本资料包包含所有源文件
  9. 第四届江西省高校网络安全技能大赛初赛WebMisc—Writeup
  10. 我用Python可视化了7次人口普查数据变化,你所在的省份还好吗?