Java语言也是在C语言的基础上发展而来的,属于C语系,所以大多数语法都同C语言的语法,这里只是尽量的列出其不同点。
1、JVM、JRE和JDK
JVM — Java Virtual Machine
JRE — Java Runtime Environment
JDK — Java Development Kit
JRE=JVM+java系统类库—-运行的最小环境
JDK=JRE+编译、运行等开发工具—开发的最小环境
2、Java标识符
Java的标识符只能包含字母、数字、_、$,并且不能以数字开头,大小写敏感,不能使用Java关键字。
Java编程规范要求,变量的命名需采用“驼峰命名法”,即如果变量的名字由多个单词组成,除第一个单词外,其他单词的首字母大写,其余的字母小写。
3、变量
Java语言规定变量在使用之前必须初始化,即必须给该变量赋予特定的值。
4、Java基本数据类型
Java语言有8种基本数据类型,分别用于存储整数、浮点数、字符数据和布尔类型数据。byte、short、int、long;float、double;char;boolean。
int:
a)整型,占4个字节,范围-21个多亿到21个多亿
b)整数直接量(666,888,520…),默认为int类型
c)两个整数相除,结果为整数(无条件舍去小数位)
long型直接量,在数字后面加l或L
long timeMillis = System.currentTimeMillis();
System.out.println(timeMillis);
System.currentTimeMillis();方法返回1970年1月1日零时到此时此刻所经历的毫秒数,该方法常用于计时操作。
默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加”f”或”F”后缀。例如:
float f1 = 3.14;//会有编译错误,应该写成3.14f
由于二进制系统中无法精确的标识0.1,所以浮点数存在舍入误差,不能进行精确计算。如果需要精确的运算可以考虑采用BigDecimal类来实现。
字符类型实质上是一个16位无符号整数,这个值是对应字符的编码。
Java字符类型采用Unicode字符集编码。Unicode是世界通用的定长字符集,所有的字符都是16位。
5、Java中的移位运算
Java中的移位运算有三种:左移(<<)、右移(>>)、无符号右移(>>>)。
这里左移和右移运算同C语言,比较特殊的是无符号右移(>>>)运算,其向右移动时,低位溢出的舍去,高位永远补0。
6、基本类型转换
在基本类型转换中,有关byte,short,char的两点规则:
a、整数直接量可以直接赋值给byte,short,char,只要不超过其表示范围;
b、byte,char,short只要参与运算,则一律转为int。
short s1 = 5;
s1 = s1 + 10;//编译错误,必须手动强转,s1 = (short)(s1 + 10);
s1 += 10;//正确,扩展赋值运算自动强转
7、取模运算(%)意为取余数,可适用于整数、char类型以及浮点数。
8、&&和||都遵循短路原则,而&和|则不短路。
9、赋值表达式本身也有值,其本身之值即为所赋之值。
10、“+”可以实现字符串的拼接,同时可以实现字符串与其他数据类型的“相连”。
11、switch…case可以用以判断的数据类型有byte,short,int,char。从JDK7.0开始,switch-case支持字符串表达式。
12、关于变量的作用域,当作用域重叠时,变量不能重名。
13、数组的定义
a、int[] arr = new int[10];
b、int[] arr = {1,2,3,4,5};
c、int[] arr;arr = new int[]{1,2,3,4,5};
d、int[] arr = new int[]{1,2,3,4,5};
14、基本类型的数组创建后,其元素的初始值:byte、short、char、int、long为0;float和double为0.0;boolean为false。
15、JDK中的java.util.Arrays类提供对数组操作的一系列实用方法。
a、Arrays.toString(arr)方法用字符串表示数组的内容。
import java.util.Arrays;
//打印数组中的内容
System.out.println("数组中的数据为:"+Arrays.toString(arr));
b、Arrays.sort(arr)用于实现数组的排序,且效率很高,数字则按从小到大排,字符串则按字典顺序。
16、数组的复制
a、System.arraycopy(源数组,源数组的起始下标,目标数组,目标数组的起始下标,要复制元素的个数);
b、使用java.util.Arrays类的copyOf方法可实现数组的复制。
类型[] newArray = Arrays.copyOf(类型[] original,int newLength),生成的新数组是原始数组的副本。
数组的长度在创建后是不可改变的,但可以通过Arrays.copyOf()方法,简便实现数组的扩容。所谓扩容是指创建一个更大的新数组并将原有数组的内容复制到其中。
int[] a = {1,2,3,4,5};
a = Arrays.copyOf(a,a.length + 1);
17、Math.sqrt()求平方根。
18、用round()进行四舍五入
double s = 0.5 * g * t * t;
//四舍五入,取保留一位小数
s = Math.round(10 * s) / 10.0;
19、Java语言中的方法用于封装一段特定的逻辑功能,类似于C语言中的函数。
20、生成随机数
20.1 Random类的nextInt()方法产生随机数
import java.util.Random;
//随机生成10个0-99之间的数值,放入数组
Random ran = new Random();
for (int i = 0;i < arr.length;i++){
arr[i] = ran.nextInt(100);
}
20.2 Math.random()生成1到100内的随机数
(int)(Math.random() * 100) + 1
21、使用Scanner类输入
21.1 使用Scanner类输入数字
import java.util.Scanner;
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
double b = scan.nextDouble();
scan.close();
21.2 使用Scanner类输入字符串
Scanner scanner = new Scanner(System.in);
String c = scanner.next().trim();//读取输入的字符串并且去掉空格
22、String的length()方法和charAt()方法
String str = "abcdefghijklmn";
//java语言中针对数组提供了length属性来获取数组的长度。针对字符串提供了length()方法来获取字符串的长度。
int size = str.length();
int rows = 3; //行数
int cols = size%rows==0?size/rows:size/rows+1; //列数
char[][] t = new char[rows][cols];
int index=0;
for(int j=cols-1; j>=0; j--){
for(int i=0; i<rows; i++){
if(index<size){
t[i][j] = str.charAt(index++);//charAt()方法返回位于字符串的指定索引处的字符。
}else{
t[i][j]=' ';
}
}
}