1、>>>最高位用0填充,>>最高位用符号位填充 ,没有<<。
2、强制转换是直接截断,要四舍五入的话需要用Math.round();
3、boolean不要于任何数值类型进行转换。除非b?1:0
4、Java没有内置字符串类型。
5、String类没有提供用于修改字符串的方法,方便字符串共享。
6、C++重载了==,可以用它来检测字符串的相等性。Java没有重载。C也不用==对字符串进行比较,而使用strcmp函数。Java的compareTo()方法与strcmp类似。
pareTo(“Hello”)==0
7、length()返回代码单元数量;
codePointCount()返回代码点数量。
charAt(n)将返回位置n的代码单元,n介于0-s.length()-1。
得到第i个代码点,
- greeting.offsetByCodePoints(0,i);dePointAt(i);
- StringBuilderbuilder=newStringBuilder();builder.append(ch/str);orStringcompleteString=builder.toString();
返回一个与构建器或缓冲器相同的字符串。
8、输入: Scanner类位于 java.util.*
Console类可以实现控制台读取密码:
- Consolecons=nsole();Stringusername=cons.readLine(“Username:”);char[]passwd=cons.readPassword(“Password:”);
9、被格式化的参数索引:
System.out.printf(“%1$s%2$tB%2$te%2$ty”,”Duedate:”,newDate());
10、文件的输入与输出:
- Scannerin=newScanner(newFile(“myfile.txt”));//如果文件名包含反斜杠,要转义,加一个反斜杠。PrintWriterout=newPrintWriter(“myfile.txt”);
如果用一个不存在的文件构造一个Scanner,或者用一个不能被创建的文件名构造一个PrintWriter,那么就会发异常。
11、如果整数,浮点不能满足精度要求,可以使用java.math包中的两个类:BigInteger 和 BigDecimal
BigIntegera=BigInteger.valueOf(100);
不能使用+ *来处理大数值,而是add 和multiply方法。
12、
for(variable:collection)statement;
打印数组更见的方法: Arrays.toString(a); //返回一个包含数组元素的字符串。
数组的初始化:
- 1)int[]smallPrimes={2,3,4,5,6,7};//不需要使用new。2)newint[]{2,3,4,5,6,7}//匿名初始化,将创建一个新的数组并利用括号中提供的值进行初始化,数组的大小就是初始值的个数。
Java允许数组长度为0。
允许数组拷贝,这是两个变量引用同一个数组。如果要拷贝到一个新的数组 需要使用pyOf(number , length),通常用这个方法来增加数组的大小,剩余的数值赋0,布尔型赋false。
Java数组与C++数组在堆栈上有很大不同,但基本上与分配在heap上的数组指针一样。
int[]a=newint[100];//java[]被预定义为检查数组边界,而没有指针运算,即不能通过a+1得到数组下一个元素。
不同于
inta[100]//c++
而等同于
int*a=newint[100];//c++
数组排序: sort
快速打印一个二维数组的数据元素列表:Arrays.deepToString(a);
Java实际上只有一维数组。
13、命令行参数
java Message -g cruel worldargs[0]: “-g” args[1]:”cruel” args[2]: world
用最少的浪费面对现在