1.1 数据类型
1.1.1整型
- int:4字节
- short:2字节
- long:8字节
- byte:1字节
注意:Java无任何无符号整型。
1.1.2浮点类型
- float:4字节(后缀F)
- double:8字节(后缀D或无后缀)
1.1.3boolean类型
- false
- true
用于逻辑判定,整型值和布尔值之间不能进行相互转化
1.2 变量
1.2.1常量
- Java中用final指示常量,一旦赋值,就不可再改变。
final double CM_PER_INCH = 2.54;
- 一个类中的多个方法使用
public static final double CM_PER_INCH = 2.54;
1.3运算符
1.3.1数学函数与常量
- sqrt:计算一个数值的平方根,可以用sqrt的方法
double x = 4;
double y = Math.sqrt(x);
System.out.println(y);//print 2.0
- pow:幂运算
double y = Math.pow(x,a);//将y的值设定为x的a次幂
- 三角函数
Math.sin
Math.cos
Math.tan
Math.atan
Math.atan2
- 自然对数
Math.exp
Math.log
Math.log10
- 用于表示π和e的常量
Math.PI
Math.E
1.3.2 强制类型转换
double x = 9.997;
int nx = (int)x;//强转后nx的值为 9,而非10
- 浮点数的四舍五入:
double x = 9.997;
int nx = (int)Math.round(x);//现在x的值为10
1.4 字符串
String e = "";//an empty string
String greeting = "Hello";
1.4.1子串
- substring:从母串中提取子串
String greeting = "Hello";
String s =greeting.subsring(0,3);//s的值为Hel
1.4.2拼接
- java允许使用 + 号拼接两个字符串
String greeting = "Hello";
String name = "World";
String message = greeting + name;// message = "HelloWorld"
注意,message中间无空格
System.out.println("The message is " + name);
上式合法
- 将多个字符串放在一起,进行分隔
String all = String.join("/","S","M","L","XL");//all is the string "S/M/L/XL"
- 字符串的替换
greeting = greeting.substing(0,3) + "p!";//greeting由“Hello”变成了“Help!”
- 字符串的相等检查
s.equals(t);//检查s字符串是否和t相等
"Hello".equals(greeting);//合法的
"Hello".equalsIgnoreCase("helli");//忽略大小写的字符串相等检查
- 码点与代码单元
String greeting = "Hello";
int n = greeting.length();//n is 5
char first = greeting.chatAt(0);//first is 'H'
- 构建字符串
StringBuilder builder = new StringBuilder();//构建了一个空的字符串构建器
builder.append(ch);//append a single character
builder.append(str);//append a string
1.4 输入输出
- 读取输入
Scanner in = new Scanner(System.in);//构造一个Scanner对象
System.out.print("What is your name?");
String name = in.nextLine;//输入一整行,可包括空格
String name = in.next;//输入一个单词,空格作为分隔符
String name = in.nextInt;//输入一个整型参数
String name = in.nextDouble;//输入一个浮点数
- 静态创建一个格式化的字符串
Sting message = String.format("Hello,%s. Next year, you will be %d",name, age)
- 文件的输入与输出
Scanner in = new Scanner(Path.get("路径\\myfile.txt"),"UTF-8");
如果路径中有 “ \ ” 就要记住在每个反斜杠之前再加一个反斜杠:
C:\mydirectory\myfile.txt
1.5控制流程(和C一样)
1.6大数值
- 大数值的转化
BigInteger a = BigInteger.valueOf(100);//将普通数值转化成大数值
BigInteger c = a.add(别);//c = a + b
BigInteger d = c.multiply(b.add(BigTnteger.valueOf(2)));//d = c * (b + 2)
1.7 数组
- 声明
int [] a;//声明了变量a,并未初始化为一个真正的数组
int a[];
int [] a = new int[100]; //用了new运算符创建了数组
- for each 循环:依次处理数组中的每个元素
for(int element : a)
System.out.println(element);//打印数组a的每一个元素,一个元素占一行
以上代码等同于
for(int i = 0; i < a.length; i++)
System.out.println(a[i]);
相比之下,for each 更简洁,不必考虑下标的起始值和终止值
- Java中允许将一个数组的变量拷贝给另一个数组
int[] luckNumbers = smallPrimes;//这里类似于指针的赋值,并非开辟了新的数组
luckNumbers[5] = 12;//现在,smallPrimes[5] 是 12.
开辟一个新的数组,并且复制
int[] copiedLuckNumbers = Arrays.copyOf(luckNumbers, 2 * luckNumbers.length)
- 数组排序
int[] a = new int [1000];
...
Array.sort(a);//优化的快速排序
- 多维数组类似于C

被折叠的 条评论
为什么被折叠?



