Java:数据类型、变量、运算符、控制流程
来源:互联网 发布:密度板的甲醛 知乎 编辑:程序博客网 时间:2024/05/02 01:27
每个Java程序都要包含一个main方法,其形式如下:
public class ClassName { public static void main(String[] args) { program statements }}
Java的类和C++很类似,但还是有所不同。Java中所有函数都是属于某个类的方法,因此,main方法必须有一个外壳类。
main方法的String[] args
参数表明main方法接收一个字符串数组,也即命令行参数。例如运行程序时:
java Message -g cruel world
则args数组将包含:
args[0]:"-g"args[1]:"cruel"args[2]:"world"
注意到和C++不同,此处的程序名没有存储在args数组中。
数据类型
在Java中,一共有8种基本类型,包括4种整型、2种浮点类型、1种用于表示Unicode字符单元的字符类型char和1种boolean类型。
整型
在Java中,整型的范围与运行Java代码的机器无关,这就解决了跨平台时整数溢出等问题。
Java没有无符号类型(unsigned)。
浮点类型
还有3个表示 溢出和出错情况的特殊浮点数值:
- 正无穷大 Double.POSITIVE_INFINITY
- 负无穷大 Double.NEGATIVE_INFINITY
- NaN(不是一个数字) Double.NaN
然而,浮点数不适用于禁止出现舍入误差的金融计算。
char类型
Unicode编码单元可以表示为十六进制值,其范围从\u0000到\uffff。
设计Unicode的目的,是要统一原先不同的编码方案。
代码点是指与编码表中某个字符相对应的代码值。例如,U+0041就是字母A的代码点。Unicode的代码点可以分成17个代码级别。
char类型用UTF-16编码描述一个代码单元。
boolean类型
和C++不同,整型值和布尔值不能相互替换。Java中的布尔值只有false和true两个值。
大数值
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的BigInteger和BigDecimal类。
BigInteger类实现了任意精度的整数运算,而BigDecimal类实现了任意精度的浮点数运算。
使用valueOf方法可以将普通的数转换成大数值:
BigInteger a = BigInteger.valueOf(100);
但遗憾的是,和C++不同,Java没有提供运算符重载功能,因此不能使用普通的算术运算符(+、-、*、\),而要使用大数值类中的add和multiply方法。
BigInteger c = a.add(b); //c=a+bBigInteger d = c.multiply(b.add(BigInteger.valueOf(2))); //d=c*(b+2)
BigInteger类的其他常用函数有:
BigInteger subtract(BigInteger other); //减BigInteger divide(BigInteger other); //除BigInteger mod(BigInteger other); //取余int compareTo(BigInteger other); //如果相等,返回0;如果小于other,返回负数;如果大于other,返回正数
变量
常量
和C++中使用const定义常量不同,Java中使用关键字final定义常量,它表示这个变量只能被赋值一次。习惯上,常量名一般使用全大写。
运算符
位运算符
“>>”和“<<”运算符将二进制位进行右移或左移操作。
注意,“>>”是用符号位填充高位,而“>>>”是用0填充高位。
数学函数与常量
在Math类中,包含了各种数学函数,例如使用sqrt方法求取平方根:
double x=4;double y=Math.sqrt(x);
其他常用的方法还有:
Math.pow(x,a)Math.sinMath.cosMath.tanMath.atanMath.atan2Math.expMath.logMath.log10
另外,Java还提供了两个用于表示π和e常量的近似值:
Math.PIMath.E
其实不必在调用方法时添加前缀“Math.”,只要在源文件的顶部加上:
import static java.lang.Math.*;
这叫做静态导入。
强制类型转换
double x=9.997;int nx=(int) x;
强制类型转换通过截断小数部分将浮点值转换为整型。
如果想进行四舍五入,那就需要使用Math.round
方法:
double x=9.997;int nx=(int)Math.round(x);
调用round时仍然需要使用强制类型转换,这是因为round方法返回的结果为long类型。
控制流程
块
和C++不同,Java中不能在嵌套的两个块中声明同名的变量,例如下面的代码就是错误的:
public static void main(String[] args){ int n; { int n; }}
终止语句
和C++不同,Java中增加了一条**带标签的**break,用于跳出多重嵌套的循环语句。标签必须放在希望跳出的最外层循环之前,并且紧跟一个冒号。
int n=0;...read_data:while(...){ ... for(...) { ... if(n<0) break read_data; }}//检查是break跳出还是正常结束循环if(n<0){...}else{...}
- Java:数据类型、变量、运算符、控制流程
- Java序谈之变量,数据类型,运算符,流程控制,三目运算符
- python基础-变量、数据类型、input、格式化、运算符、流程控制
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- java核心技术读书笔记<一>之数据类型,变量,运算符,字符串,控制流程,大数值,数组
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- JAVA:变量,数据类型,运算符,流程控制(简介)<1>
- java学习_03_标识符、数据类型、运算符、控制流程
- java详解 --- 进制、变量、运算符及流程控制
- 数据类型、运算符、流程控制、数组
- JavaScript基础语法、语法规范、标识符与变量、数据类型、运算符、流程控制
- JAVA 变量、数据类型、运算符
- 04-变量+运算符+流程控制语句
- Java语言基础(二)——数据类型、运算符和流程控制语句
- 【JavaScript】(2)标识符与关键字\基本|引用数据类型 \变量 \运算符与表达式\流程控制语句
- Java基础知识(数据类型、运算符、流程)
- 002Java变量、基本数据类型、运算符
- 51nod1459【二级最短路】
- ajax小结
- java常量池理解
- malloc、ralloc、calloc的原理,用法,作用,区别
- 开通博客,立贴纪念。
- Java:数据类型、变量、运算符、控制流程
- 会话管理机制:Cookie和Session
- java:从消息机制谈到观察者模式
- 7 种将字符串反转的 Java 方法
- CoordinatorLayout的使用
- CSS定位
- 观察者模式应用场景实例
- Java基础复习 查找算法之二分法
- 冒泡算法记录