知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

3-Java的基本程序设计结构(笔记)

发表时间:2022-03-25来源:网络

1.一个简单的Java应用程序.

1.源代码的文件名必须与公共类的名字相同. 2.Java语言规范:Java SE 1.4之前的版本中main方法不是public时,有些版本的Java解释器也可以执行Java应用程序.JavaSE 1.4及之后的版本规定main方法必须声明为public. 3.每一个Java应用程序都必须有一个main方法.

2.和C++类概念的几点不同.

1.Java中的所有函数都属于某类的方法(标准术语都将其称为方法,而非成员函数). 2.Java关键字void表示方法没有返回值,但不同的是main方法没有为操作系统返回"退出代码".如果main方法正常退出,那么Java应用程序的退出代码为0.表示成功运行了程序.如果希望在终止程序时返回其他代码,可以调用System.exit()方法. 3.System.out.println表调用了System.out对象的println方法.

3.Java中的数据类型.

3.1整型

1.Java是一种强类型语言,即每一个变量都需要被声明为某类型. 2.int 4个字节取值范围约±20亿. 3.Java中整型的范围与运行Java代码的机器无关(移植性好).C和C++需要针对不同的处理器选择最高效的整型.有可能造成整数溢出. 4.Java没有任何无符号形式的int、long、short或者byte类型.

3.2整型前后缀

1.长整型数值:后缀L或l 2.十六进制数值: 前缀0x或0X 3.八进制: 前缀0(容易混淆,不推荐使用八进制常数)

3.3 从Java7开始

1.加前缀0b或0B即可写二进制数.如: 0b1001就是9 2.可以为数字字面量添加下划线, 如: 1_000_000(或0b1111_0100_0010_0100_0000)都表示一百万.目的是增加易读性,编译器会自动去除下划线.

3.3.2 浮点类型

一.double和float.

1.double称为双精度的原因是其数值精度为float类型的两倍. 2.多数情况下float类型无法满足精度需求,使用场景:需要存储大量数据等 3.float类型的数值有一个后缀F或者f.没有后缀F的浮点数值默认为double类型. 4.可以再double类型后添加后缀D或d.

二.用于表示溢出或出错情况的三个特殊浮点数值.

- 正无穷大(+/0) - 负无穷大 - NaN(不是一个数字)(0/0)

三.检测一个特定值是否等于Double.NaN用法:

- if(x == Double.NaN)//错误用法 - if(Double.isNaN(x))//这是正确方法

四.浮点数值不适用于无法接受误差的金融计算.因为二进制系统无法精确表示分数1/10.应该使用BigDicimal类

3.3.3char类型

一.描述对象

char类型原是用于表示单个字符的.但现在情况有变.有些Unicode字符有一个char值描述,但另外一些Unicode字符则需要两个char值.

二.转义序列\u:

可以出现在加引号的字符常量或者字符串之外(其他的转义序列不可以), 比如说: public static void main(String \u005B\u005D args)// \u005B\u005D 为[ 以及 ]的编码.

三.Unicode转义序列

1.他们会在解析代码之前处理.即处理之前先将其转换为相应的特殊字符. 2.正因如此才需要当心注释中的\u.比如说: // \u00A0 is a newline // in c:\users ,\u need to follow hexadecimal number

四.Unicode 和 char 类型.

1.传统的不同的编码方案的缺陷是字母对应不一和编码长度不同. 2.码点是指与一个编码表中的某个字符对应的代码值.如拉丁字母A的码点为U+0041. 3.基本的多语言级别中,每个字符用16位表示,通常被称为代码单元;而辅助字符采用一对连续的代码单元进行编码.这样设计的优势是: 可以迅速地知道一个代码单元是一个字符的编码还是一个辅助字符的第一部分还是第二部分. 4.在Java中,char类型描述的是UTF-16编码中的一个代码单元. 5.强烈不建议在程序中使用char类型.除非却是需要处理UTF-16代码单元.最好将字符串作为抽象数据类型.

4 变量.

1.$虽是一个合法的Java字符,但最好不要在自己的代码中使用这个字符.因为它只用于Java编译器或者其他的工具生成的名字中. 2.可以在一行中声明多个变量.但为了提高可读性并不提倡这种风格.最好在新的一行中逐一声明变量. 3.变量的命名可参考: Box box; Box abox;

4.1 变量的初始化.

1.必须先进行显式的初始化才能使用变量. 2.将变量的声明尽量靠近第一次使用的地方是一种好习惯.

4.2 常量

1.关键字final表示该变量只能被赋值一次.赋值后不可更改.习惯将常量名大写.

5.运算符.

5.1 数学函数与常量.

1.欧几里得规则中整数求余对负数操作的处理方式是 :余数总是>=0 2.使用floorMod方法如:floorMod(position+adujstment,12)总会得到0~11之间的数. 3.import static java.lang.Math.*包可后在使用数学方法和常量时可以不添加前缀Math. 4.如需确保所有平台获得相同的结果可以使用StrictMath类.

5.2数值类型之间的转换.

5.3 强制类型转换.

double x = 9.997; int nx = (int) x; 1.以上强制转换是通过截断小数部分将浮点值转换为整型. int nx = (int) Math.round(x); 2.当调用round时,仍然需要进行强制类型转换为int.因为round方法返回的结果是long类型. (byte) 300 将得到结果44 3.强制转换超出了目标类型的表示范围,故得到的值错误.

5.4 结合赋值和运算符.

如果运算符得导的值与左侧操作数类型不同,就会发生强制类型转换.如: int x = 0; x += 3.5;

5.5 自赠与自减运算符.

为避免bug和提高可读性,最好不要在表达式中使用该运算符.

5.7 位运算符.

例子1: n是整型变量,用二进制表示n从右数第四位是否为1: int fourthBitFromRight = (n & 0b1000)/0b1000; 返回1则是,否则返回0不是.即: 1.利用&并结合2的幂,可以将二进制数中的某些位掩掉而只保留某些位. 2.利用>>和
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜