java基础
数据类型
在Java中,整型的范围与运行Java代码的机器无关:
- int:4字节,带符号整型;
- short:2字节,带符号整型;
- long:8字节,带符号整型;
- byte:1字节,带符号整型,-128~127;
- float:4字节,带符号单精度浮点数;
- double:8字节,带符号双精度浮点数;
- char:强烈建议不使用char类型,除非确实需要处理UTF-16代码单元;
常量
关键字final指示常量;static final设置类常量,提供一个类中的多个方法使用;
如果将一个类标记为strictfp,这个类中的所有方法都要使用严格的浮点计算。
强制类型转换
如果想对浮点数进行四舍五入,需要使用Math.round(),round方法返回结果为long类型,可能还需要显示的强制类型转换以防止信息丢失。
位运算符
>>>运算符会用0填充高位,>>运算符用符号位填充高位;不存在<<<运算符。
字符串
1. 子串
String类的substring方法从较大的字符串中提取出子串:
2. 拼接
Java允许使用+号连接两个字符串,当一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串(任何一个Java对象都可以转换成字符串)。
如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态join方法:
3. 不可变字符串
String类没有提供修改字符串的方法,当修改字符串时,首先提取需要的字符,再拼接替换的字符串:
Java编译器让字符串共享,类似字符串变量指向公共存储池中相应的位置,如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。
4. 检测字符串是否相等
使用equals方法检测两个字符串是否相等:
不要使用==运算符检测两个字符串是否相等,这个运算符只能够确定两个字符串是否放在同一个位置上。
5. 构建字符串
将较短的字符串构建字符串,若使用字符串连接的方式达到此目的效率较低,可以使用StringBuilder类实现:
输入输出
通过控制台进行输入,需要构造一个Scanner对象,并与“标准输入流”System.in关联。
大数值
使用java.math包中的类BigInteger和BigDecimal来处理包含任意长度数字序列的数值:BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
数组
创建一个数字数组时,所有元素都初始化为0,;boolean数组的元素会初始化为false;对象数组的元素则初始化为null,表示这些元素(还)未存放任何对象。在Java中,允许数组长度为0。
1. 数组拷贝
Java允许将一个数组变量拷贝给另一个数组变量,这时两个变量将引用同一个数组。如果希望将一个数组的所有值拷贝到另一个新的数组中去,就要使用Arrays类的copyOf方法:
2. 命令行参数
在Java应用程序的main方法中,程序名并没有存储在args数组中。
3. 数组排序
可以是使用Arrays类中的sort方法。
4. 不规则数组
Java实际没有多维数组,只有一维数组,类似于C++中包含指针的数组,因此可以构造不规则数组:
java安装
- javac程序是一个Java编译器,将.java文件编译为.class文件;
- java程序启动Java虚拟机,虚拟机执行编译器放在class文件中的字节;