前言
该提纲是针对有C语言或者C++语言基础的同学,帮助同学快速掌握Java区别与C和C++的部分。在本提纲中,在如运算符、与或非等三种语言相似的语法部分跳过,对于Java特立独行的点加以概述,可以作为有C语言基础学习Java语法的入门提纲。
代码一般简单结构
import 全类名;//一般都可以在写用回车直接打印
public class 类名 {
public static void main(String[] args) { //可以用main加回车直接打印public static void main(String[] args)
各种语句;
}
}
常用数据类型
- 整数
int i = 1000;
-
字节数 类型 范围 1 byte -128~+127 2 short -32768~+32767 4 int -21亿~+21亿 8 long …
- 小数
double d = 3.14;
-
字节数 类型 范围 4 float … 8 double … Math.random()
可以产生一个0.0~1.0之间的随机小数(想要产生随机整数,可以乘以10后用强制类型转换)
- 字符
char c = '中';
- 不仅可以用英文字符,也可以直接用中文字符
- 字符串
String s = "中国";
- 可以直接用中文字符串
- String的首字母大写
- 比较用equals():
yesno.equals("yes")
会得出一个布尔值
- 布尔
boolean bool1 = false;
- 用boolean定义
- 不是数值,是真假概念
- 数据类型的转换
- 如果一个操作数是double,则整个表达式提升为double
- 自动类型转换的条件:两种类型要兼容,目标类型大于源类型
- 强制转换:
char c2=(char)(c1+i);
变量与常量
- 常量
- 用final修饰,例:
final int AGE = 18;
- 命名规则:全部大写,如果多个单词用_隔开,如:AGE、MAX_VALUE
- 无法更改
- 变量
- 命名规则:首字母是字符、$、_,后面除首字母要求外还可以是数字
- 不能是关键字
- 小驼峰命名法:第一个字母是小写,如myAge(类命名用大驼峰法)
Scanner用法
- 例子:
import java.util.Scanner;
public class demo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的名字:");
String name = scanner.next();
System.out.println("你的名字是:"+name);
}
}
import java.util.Scanner;
引入声明,在Scanner后用回车会自动生成Scanner scanner = new Scanner(System.in);
是固定写法String name = scanner.next();
等待输入
- 输入不同的变量
- 整数:
int age = scanner.nextInt();
- 小数:
double money = scanner.nextDouble()
- 字符串:
String name = scanner.next();
条件语句
- if的结构
if (条件1){
执行语句1;
}else if(条件2){
执行语句2;
}else if(条件3){
执行语句3;
}else{
执行语句4;
}
- 和C不同,必须按照这种结构来
- {}内只有一条执行语句时,{}可以省略
- switch
switch(数据类型){
case 数据1:
执行语句1;
break;
case 数据2:
执行语句2;
break;
default:
执行语句3;
break;
}
- 支持的数据类型:byte、short、int、char、String
- 不支持的数据类型:long、flaot、double
- 可以通过break的有无合理设置透传
循环结构
- while循环
while(条件){
循环的内容;
更新条件;
}
- do while循环
do{
循环的内容;
更新条件;
}while(条件);
- for循环
for(声明初始化循环变量;条件;更新){
循环体;
}
- foreach输出
for(int a:arr){
System.out.println(a);
}
- 每次将int型数组arr的一个值返回a中加以输出
- break和continue同C语言
数组
- 基本的定义与赋值
int[] arr; //声明
arr = new int[3]; //分配空间
arr[0] = 1; //赋值
arr[1] = 2;
arr[2] = 3;
- 省略写法
int[] arr = new int[]{1,2,3};
再简化
int[] arr = {1,2,3};
- length的用法
System.out.println(arr.length);//得长度
- Arrays的用法
Arrays.sort(arr);
可以将数组由小到大排序System.out.println(Arrays.toString(arr));
可以将数组数字变成字符串,方便输出System.out.println(Arrays.equals(arr1,arr2));
可以比较两个数组是否相等(长度相等+内容相等)Arrays.fill(array,val);
可以把数组array的所有元素赋值为valarray2=Arrays.copyOf(array1,length);
可以把数组array2复制成一个长度为length的array1数组num=Arrays.binarySearch(array,val);
可以查询val在数组的下标(前提:必须按升序排序后才可以用)
函数
- 常用定义结构
public static void/int等 方法名(参数列表){
方法体;
void无返回,int等有返回:return **;
}
- 函数的重载
- 方法名相同
- 参数列表不同(看类型)
- 与返回值无关
- 例子:
public class Demo01{
public static void main(String[] args){
f01(1.0);//用的double的f01
f01(1);//用的int的f01
}
public static void f01(double money){
System.out.println("double被调用");
}
public static int f01(int age){
System.out.println("int被调用");
return 100
}
}
- 传参
- 同C语言
- 基本数据类型传值,在函数里改值不影响函数外
- 引用数据类型传地址,在函数里改值影响函数外
文件操作
- 文件操作入门例子:
利用递归展示文件夹下所有文件
import java.io.File;
public class Demo02{
public static void main(String[] args){
showFiles(new File("路径"));
}
public static void showFiles(File[] file){
File[] files = file.listFiles();//枚举文件夹file对象下所有文件或文件夹
for(File f:files){
if(f.isFile()) System.out.println(f.getName);//文件
if(f.isDirectory()) showFiles(f);//递归调用文件夹
}
}
}
- 这里只针对Java的基础语法,其他的文件操作就不一一列举了