1.注释
java与C的注释相同。
// 注释一行
/* */ 中间的均被注释,且不能嵌套
不同:java的注释可以自动的生成文档,方式为以"/**"开始,以"*/"结束
2.数据类型
java无unsigned,且所有数值类型所占据的字节数量与平台无关,C在不同的处理器上的数值不同,给跨平台编程带来了麻烦。
java:
整型
java的int取值与C的lang类型近似,最小值比C的lang小1。
java的short取值与C的int,short近似
java的long与C的int64_t相同,基本编程数据不会超。
java的byte取值与C的char近似。
java十六进制有前缀0x,八进制有前缀0
加前缀0b可以写二进制数,还可以在数字前边加下划线,java编译器会去除这些下划线,例1_000_000,就是1000000。
浮点
float有效位数6~7位,double15位
三个特殊浮点值:正无穷大-Double.POSITIVE_INFINITY,负无穷大-Double.NEGATIVE-INFINITY,不是一个数字-Double.NaN.
char
转义字符 | 名称 |
\b | 退格 |
\t | 制表 |
\n | 换行 |
\r | 回车 |
\" | 双引号 |
\' | 单引号 |
\\ | 反斜杠 |
boolen
false/true
3.变量常量
C区分变量的声明与定义。int i=10;是一个定义,extern int i;是一个声明。
java中不区分变量的声明与定义。
java来指示常量:
final double T=2.42;表示这个浮点数的变量只能被赋值一次,一旦被赋值后就不能再更改了。习惯上常量字母用大写。
类常量:希望某个常量可以在一个类的多个方法中使用。定义在main的外部。
public static final double x=2.11;//声明为public那么其他类的方法也可以使用,否则只能同类的才能使用。
4.运算符
基本与C相同
+、-、*、/表示加减乘除,两个都是整数时为整数除法,否则强制类型转换为浮点除法。
% 取余;且整数与浮点数不同。例:15.0%2等于7.5.
同样赋值语句可以简写,即:x=x+4.等价于x+=4.
同样可以自加自减,支持n++,++n,n--,--n。
同样关系运算符类似:==(是否相等)!=(不等于),<,>,<=,>=。
同样逻辑运算符:&&(与),||(或),!(非)。同样为短路特性。
同样存在三目运算符(?:):例x<y?x:y,x<y为true,表达式返回x,否则返回y。
同样位运算符:&(与),|(或),^(异或),~(非),>>(右移,符号位填充最高位),<<(左移),>>>(运算符将用0填充最高位),无<<<。
数学函数与常量:
首先在源文件的顶部加入”import static java.lang.Math.*;"后边再引用函数的时候就不用在函数名前别添加前缀“Math”
sqrt()(开方),pow(x,a)(幂运算,x的a次幂),sin,cos,tan,atan,atan2,exp,log,log10。
除此之外还提供了PI代表Π,E代表e常量,均为近似值。
类型转换:
支持隐式和显式类型转换。
枚举类型:
enum size={s,m,l};
size x=size.m;//size类型的变量只能存储这个类型声明中给定的某个枚举值,否则为null。
字符串:
java没有内置的字符串类型,但提供了一个预定义类:String。
定义:String e=“hello”;
裁剪/字串:String son=e.substring(0,3);//即son=“hel",如果看成一个数组的话,从0~n-1.
拼接:允许+连接,String l=e+son;//即l=”hellohel",同时也支持非字符串和字符串相加,非字符串会被强制转换成字符串类型。
note:String类型的对象都是不可变字符串,如果想要改变某些特定位置的字符,只能采用裁剪加拼接的方式。
检测字符串是否相等:
s.equals(t)//s,t均可以是字符串常量或者变量。
s.equalsIgnoreCase(t);//不区分大小写比较。
note:java不支持==运算符检测两个字符串是否相等,C++的string类重载了==运算符。
s.length()//长度
空串“”是长度为0,内容为空的一个java对象,String变量还可以存放一个特殊的值null,二者不同;如果要判断一个字符串既不是null也不是空串要使用
if(str!=null&&str.length()!=0)