本文仅记录了一些作者认为值得注意的地方
(一) 基本程序设计结构
数据类型:
整形分为int long short byte
java中不含有任何无符号类型(unsigned)
java中不区分变量的声明和定义
常量使用final修饰,习惯上常量名使用大写字母
数学函数与常量:
主要借助 Math 类
Math类中常用方法包含 Math.sqrt() Math.pow() Math.PI Math.E
字符串:
String类型是不可变字符串 可以通过substring()方法进行字符串拼接
equals方法可以检测两个字符串是否相等
equalsIgnoreCase()方法可以不区分大小写进行字符串相等比较
注意:java中没有重载"=="进行相等比较的操作
空串和Null串
可以调用length()方法,或者将字符串和空字符串进行比较的equals(" ")方法进行判断
null串则是直接进行"=="对比判断
码点和代码单元
charAt()方法可以直接返回该码点的代码单元
StringBuilder 类提供更方便的增添功能 (字符串构建器)
toString()方法返回字符串 append()方法实现增添
输入输出:
Scanner类实现标准输入
Scanner sc = new Scanner(System.in);该类包含在java.util包中,当一个类不包含在java.lang包中的时候需要将其包含进来
为了克服Scanner的可见性缺点Java有引入Console类专门用来读取密码
基本类型转换符:
d,x,o,f,e,g,a,s,c,b,h java中有System.out.printf()方法
文件的输入与输出
使用file对象构造一个Scanner对象
循环:
java中提供了带有标签的break & continue:
break flag;continue flag;
java中的通用型for循环(for each循环)
for(variable : collection) statement
例如:
for(int element : a)
System.out,println(element);
大数值:
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有 用的类:BigInteger和BigDecimal,分别实现任意精度的整数运算和浮点数运算。
数组:
要想获得数组中元素的个数可以调用array.length方法
数组处理:
可以使用Arrays类中的sort方法 java.util.Arrays
Arrays类中包含有二分搜索算法 static int binarySearch(type[] a,type v);
equals方法比较数组是否相等同样包含在Arrays类中
打印数组Arrays.toString()方法
多维数组:
若要使用foeach循环遍历二维数组则需:
for(double[] row : a)
for(double value : row)
{
do something with value;
}
java中的多维数组不同于c/c++ 它是一种不规则数组,更可以被称作为“数组的数组”
同一维数组,若想快速的打印出数组的数据元素列表,可以调用Arrays.deepToString()方法;
(二)对象与类
引用:
java中的引用不同于c++,且所有的Java对象储存在堆中
例如:
Java类库中的LocalDate类,可进行查阅学习
构造器等基础高级语言知识不再赘述。
main方法:
每一个类可以包含一个main方法,这是一个常用于对类进行单元测试的技巧
例如:
class Employee
{
public Employee(String n,double s,int year,int month,int days)
{
name = n;
salary = s;
LocalDate hireDay = LocalDate.now(year,month,day);
}
...
public static void main(String[] args)//unit Test
{
Employee e = new Employee("Romeo",50000,2003,3,31);
e.raiseSalary(10);
System.....
}
//如果想要独立的测试Employee类只需要执行 java Emloyee
方法参数:
一个方法可以修改传递引用所对应的变量值,但不能修改传递至调用所对应的变量值。
java程序对对象采用的不是引用调用,实际上对象引用是值传递的。
包(package):
Java中使用包将类组织起来,更方便于使用者组织自己的代码,并将自己的代码和别人提供的分开管理。