目录计算机基础知识JAVA基础语法最基本的JAV代码helloworldJDK、JRE 和 JVM 的定义与功能功能上的层次结构JAVA标识符运算符短路逻辑运算符流程控制语句顺序结构选择语句循环语句if语句for循环九九乘法表代码力扣例题回文数方法数组Java 对象和类Java 作为一种面向对象的编程语言支持以下基本概念1、类Class定义对象的蓝图包括属性和方法。示例public class Car { ... }2、对象Object类的实例具有状态和行为。示例Car myCar new Car();3、继承Inheritance一个类可以继承另一个类的属性和方法。示例public class Dog extends Animal { ... }4、封装Encapsulation将对象的状态字段私有化通过公共方法访问。示例private String name; public String getName() { return name; }5、多态Polymorphism对象可以表现为多种形态主要通过方法重载和方法重写实现。示例方法重载public int add(int a, int b) { ... }和public double add(double a, double b) { ... }方法重写Override public void makeSound() { System.out.println(Meow); }6、抽象Abstraction使用抽象类和接口来定义必须实现的方法不提供具体实现。示例抽象类public abstract class Shape { abstract void draw(); }接口public interface Animal { void eat(); }7、接口Interface定义类必须实现的方法支持多重继承。示例public interface Drivable { void drive(); }8、方法Method定义类的行为包含在类中的函数。示例public void displayInfo() { System.out.println(Info); }9、方法重载Method Overloading同一个类中可以有多个同名的方法但参数不同。示例public class MathUtils { public int add(int a, int b) { return a b; } public double add(double a, double b) { return a b; } }对象就是根据模板造出来的具体实例张三女孩、李四女孩、王五女孩每一个真实、具体的女孩都是女孩类的对象类就是模板、图纸、统称女孩类规定了女孩都有姓名、年龄、身高、会说话、会走路…是抽象的、概念上的不是某一个具体人Java中的对象软件对象也有状态和行为。软件对象的状态就是属性行为通过方法体现。在软件开发中方法操作对象内部状态的改变对象的相互调用也是通过方法来完成类可以看成是创建 Java 对象的模板。如图图源菜鸟编程一个类可以包含以下类型变量局部变量在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中方法结束后变量就会自动销毁。成员变量成员变量是定义在类中方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。类变量类变量也声明在类中方法体之外但必须声明为 static 类型。public class Dog { // // 成员变量实例变量 // 类里、方法外、没有static // 每 new 一只狗就自带这四个属性 // String breed; int size; String colour; int age; // // 类变量静态变量 // 类里、方法外、加了 static // 所有狗狗共用同一个 // static String type 哺乳动物; void eat() { // // 局部变量 // 写在方法里面 // 只在 eat() 里能用方法结束就销毁 // int num 3; System.out.println(吃 num 碗饭); } void run() { } void sleep(){ } void name(){ } }构造方法每个类都有构造方法。如果没有显式地为类定义构造方法Java 编译器将会为该类提供一个默认构造方法。在创建一个对象的时候至少要调用一个构造方法。构造方法的名称必须与类同名一个类可以有多个构造方法。Java 分两大类基本类型引用类型基本类型byte short int long float double char boolean除了这 8 个剩下全是引用类型引用类型类classDog、Girl、String都是接口interface数组[]特殊String 也是引用类型最核心区别超好懂基本类型存的就是真实值直接存在栈内存int a 10;//a 里直接装着 10引用类型不存真实对象只存对象的地址引用对象在堆内存变量里只是指向它的地址Dog d new Dog();new Dog()真正的狗狗对象 在堆里d里存的不是狗狗本身是狗狗的地址d 就是一个引用指向那个对象一句话记住基本类型装值引用类型装地址指向对象// 引用类型变量 d Dog d new Dog(); d.age 3; d.run();d 是引用类型变量通过地址找到堆里的 Dog 对象然后操作它的属性和方法。Java 常量什么是常量固定不变、一旦赋值就不能改的变量叫常量。在 Java 中使用 final 关键字来修饰常量声明方式和变量类似final double PI 3.1415927;虽然常量名也可以用小写但为了便于识别通常使用大写字母表示常量。字面量可以赋给任何内置类型的变量。写在代码里直接写死的值就叫字面量。Java语言支持一些特殊的转义字符序列。符号字符含义\n换行 (0x0a)\r回车 (0x0d)\f换页符(0x0c)\b退格 (0x08)\0空字符 (0x0)\s空格 (0x20)\t制表符\双引号\单引号\\反斜杠\ddd八进制字符 (ddd)\uxxxx16进制Unicode字符 (xxxx)自动类型转换JAVA基础的一些知识点很枯燥疑问为什么没有出现Hello.class2.1最基本的JAVA代码helloworld创建文件HelloWorld.java(文件名需与类名一致), 代码如下public class HelloWorld{ public static void main(String[] args){ System.out.println(hello); } }2.2JDK、JRE 和 JVM 的定义与功能JVM 是 Java 虚拟机 (Java Virtual Machine)它是运行 Java 字节码文件 (.class 文件) 的虚拟化环境。它的作用是将字节码解释成操作系统可以识别的机器指令并执行1。JRE 即 Java 运行时环境 (Java Runtime Environment)包含了 JVM 和 Java 基础类库用于支持 Java 程序的运行。换句话说JRE 提供了一个完整的运行环境来启动和执行任何已编译好的 Java 应用程序3。JDK 则代表 Java 开发工具包 (Java Development Kit)是一个全面的开发环境不仅包括了 JRE 所有的组件还提供了额外的开发工具如javac编译器和其他调试工具等。因此JDK 主要面向开发者帮助他们编写、测试以及部署 Java 程序功能上的层次结构从功能角度来看这三者存在一种嵌套的关系JVM 是核心部分负责实际的代码执行工作JRE 包含了 JVM 并提供必要的类库支持使得它可以独立于其他开发工具运行应用程序JDK 不仅包含 JRE 中的一切内容还包括一系列开发所需的工具集比如编译器 (javac) 和打包工具 (jar)2.3JAVA标识符标识符 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。合法的标识符由字母、数字、下划线“_”、美元符号“$”或者“”组成并且首字符不能是数字。不能把java关键字和保留字作为标识符。标识符对大小写敏感。关键字Java语言中已经赋予了特定含义的2.4变量程序运行期间可以被改变的量。在程序中使用变量必须先创建它并为它取一个名字并且指明它能够存储信息的类型这称为“变量声明”也叫容器的创建。变量的使用变量的声明数据类型 变量名;变量的赋值变量名 数据;变量的操作放入打印语句进行输出或者进行运算2.5类型转换自动类型转换也叫隐式转换强制类型转换也叫显式转换4运算符运算符一种特殊符号用以表示数据的运算、赋值和比较数与整数运算符分类算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符4.1算术运算符4.2.赋值运算符4.3.比较运算符4.4.逻辑运算符4.5三元运算符条件表达式b?x:y;先计算条件b然后进行判断。如果b的值为true计算x的值运算结果为x的值否则计算y的值运算结果为y的值。int num23?22:44; System.out.println(num);4.6短路逻辑运算符短路与||短路或效率更高5流程控制语句5.1顺序结构5.2分支语句switch把有限个数据一一列举出来让我们任选其一package yixiu; public class fenzhi { public static void main(String[] args) { int number1; switch(number){ case 1: System.out.println(number1); break; case 10: System.out.println(number2); break; case 20: System.out.println(number3); break; default://可以写在任意位置最前或者最后都可以 System.out.println(number既不是1也不是2); break;//dfault可以省略但是不建议 } } }case穿透在 Java 的 switch 语句里“case 穿透”指的是当 switch 表达式的值匹配到某个 case 标签后若该 case 块里没有 break 语句程序就会继续执行后续 case 块的代码直至遇到 break 语句或者 switch 语句结束。有时可以利用case穿透简化代码下面展示 case 穿透的效果程序运行结果switch 更简洁的表达方式package yixiu;//switch另一个表达方式 public class fenzhi { public static void main(String[] args) { int number1; switch(number){ case 1 - System.out.println(yi); case 2 - System.out.println(er); } } }5.循环语句5.1if语句对范围的判断import java.util.Scanner; public class ifdemo{ public static void main(String[] args) { Scanner scnew Scanner(System.in); Systemm.out.println(请输入女婿的酒量); int winesc.nextInt(); if(wine2){ System.out.println(hao); }else{ System.out.println(buhao); } } }5.2for循环九九乘法表代码public class text { public static void main(String[] args) { for (int i1;i9;i) { for(int j1;ji;j) { System.out.print(j*ii*j ); } System.out.println(); } } }5.2.1while循环力扣例题回文数package yixiu; public class huiwenshu { public static void main(String[] args) { int x 123456; int temp x; int num 0; while (x ! 0) { int ge x % 10; x x / 10; num num * 10 ge; } System.out.println(num); System.out.println(x); System.out.println(num temp); } }循环高级无限循环//无限循环 //for for(;;) { System.out.println(学习); } //while while(true) { System.out.println( 学习); } //do while do { System.put.println(学习); }while(true);5.2.2跳转循环用到continue结束本次循环继续下次循环//跳转循环 public class fenzhi { public static void main(String[] args){ for(int i1;i5;i){ if(i3){ continue;//结束本次循环继续下次循环 } System.out.println(chiibaozi); } } }break(结束整个循环)eg:逢七过//逢七过代码 public class fenzhi { public static void main(String[] args){ for(int i1;i100;i) { if(i%107||i/10%107||i%70) { System.out.println(guo); continue; } System.out.println(i); } } }eg:平方根public class liti { public static void main(String[] args) { Scanner scnew Scanner(System.in); System.out.println(shuru); int numbersc.nextInt(); for (int i1;inumber;i) { if(i * inumber) { System.out.println(ishinumberpingfanggen); break; } else if (i*inumber) { System.out.println((i-1)shinumberpingfanggen); break; } } } }6方法带参数的方法package demo; import java.util.Scanner; public class lizi6method { public static void main(String[] args) { Getsum(20,30);//实参 } public static void Getsum(int num1,int num2){//形参 //数字不明确的时候就定义在小括号中并用逗号隔开 int resultnum1num2; System.out.println(result); } }形参和实参形参方法定义中的参数实参方法调用中的参数eg:求长方形的周长package demo; public class changfangxing { public static void main(String[] args) { getlength(6.6,7.8); } public static void getlength(double chang,double kuan){ double result(changkuan*2); System.out.println(result); } }eg:求圆的面积package demo; public class yuan { public static void main(String[] args) { circus(5); } public static void circus(double r){ double resultr*r*3.14; System.out.println(result); } }带返回值方法的调用把void改成返回值类型就是有返回值的方法调用的三种方法最常用的是赋值调用package demo; public class yuan { public static void main(String[] args) { getsum(5,4,5);//直接调用 double sumgetsum(5,4,5); System.out.println(sum);//赋值调用 System.out.println(getsum(5,4,5));//输出调用 } public static double getsum(int num1,int num2,int num3){ double resultnum1num2num3; System.out.println(result); return result; } }在调用处根据方法的结果去编写另一端代码的时候需要用到有返回值的方法eg:比较两个长方体的面积package demo; public class yuan { public static void main(String[] args) { int num1compare(3,4); int num2compare(5,6); if(num1num2){ System.out.println(num1); }else{ System.out.println(num2); } } public static int compare(int chang,int kuan){ int resultchang*kuan; return result; } }7数组