一、基本语法
1.1 初识java
HelloWorld.java :
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello world!");
People p1=new People();
p1.height=180;
p1.weight=120;
p1.Speak("hi bro!")
}
}
class People{
int height;
int weight;
void Speak(String s){
System.out.println(s)
}
}
-
java文件以.java为后缀名。
-
上面就是一个简单的java程序,java是面向对象的编程语言,每个java文件都是以类为单位组成,上面的程序只有两个类,有一个是public,在java文件中,最多只能有一个类用public关键字修饰,称为主类(public类),文件名得和public类类名一致,所以这个程序的java文件名是:HelloWorld.java。也可以没有public类,文件名和其中一个类类名一致即可。
-
主类中的 public static void main(String[] args){} 是java的程序入口,如c语言的main函数一样。固定写法,记住即可。
-
java程序完整过程:编写源代码,编译器编译成字节码,解释器解释执行字节码文件。
-
执行时,不是 java HelloWorld.class ,而是java HelloWorld,不需要加扩展名.class。 -
如果源文件包含多个类,编译将生成多个扩展中名为.class的文件,每个文件只存放一个类的字节码,文件名和类名一致。 -
编译:javac HelloWorld.java
-
执行:java HelloWorld
-
java使用Unicode标准字符集。
1.2 标识符和关键字
-
标识符
java中用来标识 变量名、类名、类型名、方法名、数组名、文件名的有效字符序列。
规则:
-
由字符、下划线、数字、美元💲符号组成,长度不限制。 -
不能以数字开头。 -
不能是关键字。 -
不能是true、false、null。(虽然不是这三个不是关键字) -
区分大小写,hello和Hello不同。 -
关键字
java中具有特定用途或已经被赋予特殊意义的单词。
过一遍大概有印象即可,无需背诵,随着java接触时间增加,自然而然会记住
50个关键字:
-
Abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while
1.3 基本数据类型
-
逻辑类型:
-
boolean : true, false -
整数类型:
-
byte :占1字节
-
short : 占2字节
-
int : 占4字节
-
long(8): 占8字节
-
字符类型:
-
char:
-
取值范围:0~65535 -
长度:1字节 -
单引号表示:'A','1' -
可以用在unicode表中排序位置16进制进行转义:'u****',如:'u0041'表示'A' -
浮点类型:
-
float: -
长度:4字节 -
精度:8位有效数字 -
格式:后缀必须带f或F,如:12.2f,14.2445F -
double: -
长度: 8字节 -
精度:16位有效数字 -
格式: -
后缀带d或D,小数后面不带任何字符默认是double类型,如:12.33,11.2d,56.3234D -
科学计数法表示:2E1, 3e2
1.4 类型转换
什么是类型转换呢?
有时候,我们可能想把double类型的数据转化成int类型,如:3.1415 =>3
这时就涉及到类型转化了,无规矩不成方圆, java给类型转换定了规矩,让我们去了解看看叭。
精度升序排序:
byte short char int long float double
上面就是java基本数据类型精度升序排序的结果,这个排序是我们进行类型转化的依据,接下来看看规则~
-
低精度赋值给高精度,系统自动转换:
float x=100;
// 100是int型,而x是float型,按理来说,100不能赋值给x
// 但是低精度的int型赋值给高精度的float型的时候,系统会
// 给我们自动把100转化成100.0f再赋值给x
// 输出x是:100.0 -
高精度赋值给低精度,手动强制转换:(类型名) 要转换的值
int y=(int)23.4f;
// 23.4f是float型,比int型y要精度高,属于高精度赋值给低精度
// 这时候就得手动强制转化类型
// 输出y:23
1.5 输入输出
输入输出是每门编程语言最基础的操作,接下来看看java是如何进行数据的输入输出的。
-
输入:JDK 1.5新增的一个类:Scanner,使用这个类进行输入数据。
//引入Scanner类
import java.util.Scanner;
//创建Scanner类对象
Scanner sc = new Scanner(System.in)
/*调用nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble()
方法进行输入对应类型数据*/
int i;
float f;
double d;
i = sc.nextInt();
f = sc.nextFloat();
d = sc.nextDouble(); -
输出:
-
System.out.print() : 输出不换行 -
System.out.println() : 输出换行 -
System.out.printf("格式控制",表达式1,表达式2) :如c语言一样的输出形式
1.6 数组
数组使用过程:
声明数组 分配数组元素(指定数组大小) 使用数组
-
声明数组:
格式:数组名[] 或者 类型[] 数组名
//一维数组
int intArr[];
float[] floatArr;
//二纬数组
short shortArr[][];
double[][] doubleArr;
-
分配数组元素:
格式: 数组名 = new 类型[长度]
intArr = new int[10];
floatArr = new float[3];
shortArr = new short [3][4];
doubleArr = new double [3][5];
// 二维数组也可以这样分配
shortArr = new short [3][];
shortArr[0] = new short[3];
shortArr[1] = new short[6];
shortArr[2] = new short[7];
-
使用数组:
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
for(int i=0;i< intArr.length;i++){
System.out.print("number "+(i+1)+" : ");
intArr[i] = sc.nextInt();
}
-
使用length属性查询长度:
System.out.println(intArr.length);
-
数组初始化:数组声明和分配元素后,元素默认值是:0
int[] arr = {1,2,3,4}
-
数组的引用:
// 数组的引用,java数组支持同类型数组赋值,数组名存放第一个数组元素地址。
int[] a={1,2},b={3,4,5,6};
a = b;
// 这时候a和b都存放b[0]的地址。
//char数组有点不同,输出数组名是输出全部元素的值,而不像其他数组一样输出地址。
char[] charArr = {'c','h','i','n','a'};
System.out.println(charArr);// 输出: china
// 要想输出地址,可以让数组名和字符串做并置运算。
System.out.println(""+charArr);
END
接下来每天更一篇java笔记,欢迎关注获取最新消息~
发表评论