JVM 叫 Java 虚拟机,它也是整个 Java 技术的核心。Java 语言的跨平台就多亏了 JVM。
JDK 叫 Java 开发工具包,没有 JDK 就没有办法进行 Java 程序的开发。
JRE 叫 Java 运行环境,如果我们需要运行一个 Java 程序,就得安装 JRE。

JAVA简明教程1 - 图1


Hello World
image.png

Java中所有的代码,都必须包含在class中,main方法是程序的入口,Java是区分大小写的

使用 public 修饰的 class 名(HelloWorld)须和源代码文件名相同。

写完代码之后要编译源代码。

打开命令行,切换到源代码目录,/home/project

输入 javac HelloWorld.java
会在同级目录下,生成一个class文件,如果生成了,说明编译成功了。

image.png


常量
Java中的final 语句可以用来声明常量

比较字符串大小

public class StringTest{
public static void main(String[] args){
String s = new String(“Java”);
String m = “java”;
System.out.println(“用equals()比较Java和java的结果是”+s.equals(m));
System.out.prinln(“用equalsIgnoreCase()比较Java和java的结果是”+s.equalsIgnoreCase(m)):
}
}

equals()是区分大小写的。
s.equals()代表对s使用equals()方法。

System.out.println(“用equals()比较Java和java的结果是”+s.equals(m));

“+”字符串的连接

字符串连接

字符串连接有两种方法:

  1. 使用 +,比如 String s = “Hello “ + “World!”。
  2. 使用 String 类的 concat() 方法。

“==”的作用
比较两个对象在内存中存储的地址是否一致。

image.png

new代表申请新的内存,所以地址s1和地址s2的内存地址不一样。
b = false

charAt()方法
charAt() 方法的作用是按照索引值(规定字符串中第一个字符的索引值是 0,第二个字符的索引值是 1,依次类推),获得字符串中的指定字符。例如:

String s = “abc”;
char c =s.charAt(1);

则C的变量的值是b。

字符串提取方法
image.png

image.png
image.png


String是无法修改的,对String的修改,其实是新建了一个String对象。如果需要修改字符串的内容,需要用StringBuilder()方法,相当于一个存储字符的容器。

StringBuilder常用的方法
image.png
#构建一个不含任何内容且初始容量为16的StringBuilder
StringBuilder a = new StringBuilder();
#构建一个不含任何内容且容量为cap的StringBuilder
StringBuilder b = new StringBuilder(int cap);
#构建一个StringBuilder,内容初始化为str
StringBuilder c = new StringBuilder(String str);

StringBuilder()中可以放容量,也可以放字符串内容


算术运算符

image.png
image.png
image.png


位运算符

image.png

image.png


逻辑运算符

image.png

&& 与 || 是具有短路性质,当按优先级顺序计算到当前表达式时,表达式的结果可以确定整个表达式的结果时,便不会继续向后进行判断和计算,而直接返回结果。
(数字电路)


运算优先级
JAVA简明教程1 - 图15


方法

Java 中的方法,可以将其看成一个功能的集合,它们是为了解决特定问题的代码组合。

访问修饰符 返回值类型 方法名(参数列表){
方法体
}

  1. 访问修饰符:代表方法允许被访问的权限范围, 可以是 public、protected、private 或者省略(default) ,其中 public 表示该方法可以被其他任何代码调用。
  2. 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void (代表无类型);如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值。
  3. 方法名:是方法的名字,必须使用合法的标识符。
  4. 参数列表:是传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
  5. 方法体:方法体包含具体的语句,定义该方法的功能。


image.png
image.png


Switch语句

image.png

当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

  • defualt 块不是必须的,默认为空。

跳转语句

break 关键字经常用在条件和循环语句中,用来跳出循环语句
continue关键字的作用是跳过循环体中剩余的语句执行下一次循环。


  1. for语句遍历数组

for(元素类型 元素对象:遍历对象)

image.png


Java中数组的声明

使用数组前要声明数组

数据类型[] 数组名;

声明数组之后,要为数组分配内存空间。

数组名 = new 数据类型[数组长度];

image.png


do while语句

image.png

注意:
这里int i = 0;
要定义在while循环外面

如果定义在while循环里面,程序就会报错

image.png

image.png
这是由于,因为
do{
int i = 0;
s0[i] = in.nextLine();
i++;

}while(s0[i] ! = “end”);

int i定义在do循环里面,当while判断的时候,i还未被定义,所以程序会报错


练习题:用户输入

在 /home/project/ 目录下新建文件 InputTest.java,你需要完成以下需求:

  • 获取用户的输入信息(字符串)。
  • 当用户输入 end 时,结束输入并打印用户之前输入的所有信息(输入的信息数量不超过 100 个)。

在写用户输入的时候,我们会先建立一个数组

然后通过

Scanner in = new Scanner(System.in);
data[i] = in.nextLine();

把数据输入数组中

但是如何判断,当用户输入为end呢

写代码,可读性也非常重要,这里我们可以使用equal语句

image.png

(data[i] = in.nextLine()).equals(“end”)
相当于,当最新的data[i] = end时

break;

我们可以用for循环,加break语句,也可以用while循环,在while中写判断语句,我们都能实现相同的功能

如何定位end之前的代码呢,我们可以用指针,也可以及时检测,很显然即时检测的可读性时比较高的。


找出数列中最大值和最小值

image.png

1,排序法
利用Arrays.sort(数组名);
会把数组从小到大排序

2,替换法
image.png