整理自https://www.bilibili.com/video/BV18J411W7cE
配置环境使用VScode编辑,参见博客https://blog.csdn.net/weixin_43529904/article/details/88371185
基本程序设计结构 HelloWorldpublic class HelloWorld{//定义HelloWorld类,名称要与文件名相同
public static void main(String[] args){//类方法
System.out.println("HelloWorld");
}
}
System.out.println打印字符并换行
main方法是程序的入口方法,代码的执行是从main方法开始的
注释//单行注释
多行注释
常量除空常量外都可直接输出。
数据类型
public class variable{
public static void main(String[] args){
int a=10;
System.out.println(a);
}
}
赋long类型的值在后面加一个L(默认int),赋float类型在后面加一个F(默认double)
类型转换-
自动类型转换 小转大
-
强制类型转换 大转小 int k = (int)88.88
算术运算符:+-*/%
整数操作只能得到整数,想得到小数必须有浮点数参与
算术表达式中包含多个基本数据时,整个算术表达式的类型会自动进行提升。
字符串中的加操作即字符串的拼接,使用println时一起输出。
System.out.println("Hello World"+6+66);
输出Hello World666。
System.out.println(1+99+"Hello World");
输出100Hello World。
连续出现加操作时从左至右依次执行。
赋值=
加赋值+=
减赋值-=
类似的有*=,/=,%=
运算赋值自动执行类型转换,若使用基本赋值:
short s = 10;
s = short(s + 20);//需进行类型转换
System.out.println("s:"+s);
自增自减:++,--,变量位于左右的规则与C语言相同。
关系运算符与C语言中的类似:
可以直接输出true或false:
System.out.println(i==j);
逻辑运算符:
短路逻辑运算符:
三元运算符与C语言中类似。
Formula?Execution1:Execution2;
若Formula为真,Execution1被执行。若为假,Execution2被执行。
数据输入需要导入库使用类实现输入。
-
导入库
import java.util.Scanner;//该动作必须出现在类定义之前
-
创建对象
Scanner sc = new Scanner(System.in);
-
接收数据
int i = sc.nextInt();
示例:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
//创建对象
Scanner sc new Scanner(System.in);
//接收数据
int x= sc.nextInt();
//输出数据
System.out.println("x:"+x);
}
}
分支语句
与C语言类似
if语句
if(expression)
{
process;
}
if-else语句
if(expression)
{
process1;
}else{
process2;
}
if-else-if格式
if(expression1)
{
process1;
}else if(expression2){
process2;
}
...
else{
process3;
}
switch语句
switch(expression){
case value1: process1;break;
case value2: process2;break;
...
case valuen: processn;break;
default: valuex :processx;break;
}
循环语句
与C语言类似
for循环:
for(init;condition;valuechange)
{
process;
}
while循环:
init;
while(condition){
process;
valuechange;
}
do…while循环:
init;
do{
process;
valuechange;
}while(condition);
continue执行下一次循环。
break跳出循环。
循环嵌套与C语言类似。
随机数使用流程与输入数据类似。
导库:
import java.util.Random;
创建对象和获取随机数:
Random r = new Random; int num = r.nextInt(10);//获取数据的范围:[0:10)数组
定义数组:
int[] arr; int arr[];
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值(0,false和null):
int[] arr = new int[len];//new为数组申请内存空间
数组索引编号从0开始,输出数组名时输出其地址。
访问数组元素:arr[index]
int[] arr为局部变量,即定义在方法中的变量,在栈内存中,使用完毕立即消失。
new int[3]为new声明的内容或实体,在堆内存中,在垃圾回收器空闲时被回收。
定义一个数组指向另一个数组:
int[] arr2 = arr;
静态初始化:
int[] arr = new int[len]{value1,...,valuen};
简化格式:
int[] arr={value1,...,valuen};
方法
方法定义:
public static void method(){
process;
}
方法调用使用方法名。
带参方法定义:
public static void method(type1 para1,type2 para2,...,typen paran){
process;
}
带返回值方法的定义:
public static returntype method(type1 para1,type2 para2,...,typen paran)
{
process;
return value;
}
调用:赋值给一个变量或直接调用。
方法重载:
-
多个方法在同一个类中。
-
多个方法具有相同的方法名。
-
多个方法的参数不相同,类型不同或数量不同。
public class classname{
public static methodtype1 method(paralist1)
{
process1;
}
public static methodtype2 method(paralist2)
{
process2;
}
}
引用类型的方法参数传递:
public static methodtype method(type[] arr){
process;
}
相当于C语言传递指针。



