- 博客(58)
- 收藏
- 关注
原创 智能驾驶传感器的工作原理
自动驾驶核心传感器,实现自动驾驶众多规划、控制的基础,相比激光雷达和毫米波雷达。优势:识别车辆周边的环境信息和纹理信息,能看到目标类型、信号灯颜色等,类似于人类眼睛。
2022-10-24 11:12:33 1312
原创 instanceof和类型转换
instanceof父类Person;子类Student;子类Teacher;测试类Applicationpackage com.oop.Demo05;public class Application { public static void main(String[] args) { //Object>String //Object>Person>Teachar //Object>Person>Student
2021-08-31 15:28:09 127
原创 什么是多态
多态多态就是同一方法可以根据发送对象的不同,而采用不同的行为方式。(使程序变得更灵活)一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)动态编译:类型:可扩展性多态是方法的多态,属性没有多态性。父类package com.oop.Demo05;public class Person { public void run(){ System.out.println("run"); }}子类package com.oop.
2021-08-31 14:01:10 240
原创 方法重写详解
Override重写父类package com.oop.Demo04; //重写都是方法的重写,和属性无关public class B { public void test() { System.out.println("B=>test()"); }}子类package com.oop.Demo04;public class A extends B { @Override//注解:有功能的注释!
2021-08-31 11:55:52 117
原创 Super详解
Super和this对比代表的对象不同this:本身调用者这个对象super: 代表父类对象的应用前提this:没有继承也可以使用super:只能在继承条件下才能使用构造方法this():本类的构造super():父类的构造!子类package com.oop.Demo04;// 学生 is 人 ; 派生类,子类//子类继承了父类,就会拥有父类的全部方法!public class Student extends Person{ public Student() {
2021-08-31 10:52:09 108
原创 什么是继承
继承继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。extands的意思是"扩展"。子类是父类的扩展。**JAVA中类只有单继承,没有多继承!**一个子类只能有一个父类。继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的两个类,一个为主类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系。父类package com.oop.Demo04;//在java中,所
2021-08-31 09:54:38 167
原创 封装详细解释
封装该漏的漏,该藏的藏我们程序设计要追求高内聚,低耦合。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而通过操作接口来访问,这称为信息隐藏。属性私有,get/set!!!!!!封装后的代码package com.oop.Demo03;public class Appliction { public static void main(String[] args) {
2021-08-31 00:52:55 93
原创 简单小结与对象
简单小结与对象类与对象类是一个模板:抽象,对象是一个具体的实例方法定义、调用!对应的引用引用类型:基本类型(8)对象是通过引用来操作的:栈—>堆(地址)属性:字段Field 成员变量默认初始化:数字:0 0.0char:u000boolean: fals引用:null修饰符 属性类型 属性名 = 属性值!对象的创建和使用必须使用new 关键字创造对象,构造器person zdj = new Person对象的属性zdj.name对象的方法
2021-08-30 23:52:51 73
原创 创建内存分析
创建内存分析package com.oop.Demo02;public class Application { public static void main(String[] args) { Pet dog = new Pet(); dog.name="旺财"; dog.age=3; dog.shout(); System.out.println(dog.name); System.out.pri
2021-08-30 23:30:06 61
原创 构造器详解
构造器必须要掌握package com.oop.Demo01;//java--->classpublic class Person { //一个类即使什么都不写,也会存在一个构造方法,构造器 //显示的定义构造器 String name; int age; //实例化初始值 //1.使用new关键字,本质是在调用构造器 //2.构造器用来初始化值 //无参构造器 public Person() { this.
2021-08-30 22:54:53 109
原创 方法回顾总结
方法回顾总结1package com.zhong.array;import java.io.IOException;//Demo01 类public class Demo01 { //main 方法 public static void main(String[] args) { } /* 修饰符 返回值类型 方法名(...){ //方法体 return 返回值; } */ /
2021-08-30 00:34:10 73
原创 稀疏数组详解
稀疏数组分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。解决问题:稀疏数组稀疏数组介绍当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:1. 记录数组一共有几行几列,有多少个不同值2. 把具有不同值的元素和行列值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组解读红色最左边列的记录了有几行稀疏数组第0行告诉我们这是一个6行7列的数组,有8个不相同的值稀疏数组第1行的意
2021-08-29 18:18:14 128
原创 冒泡排序详解
冒泡排序冒泡循环,外层冒泡轮数,里层依次比较冒泡排序比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置每次比较,都会产生一个最大或者最小的数下一轮可以少一次排序!依次循环,直到结束!package com.zhong.array;import java.tuil.Arrays; //冒泡排序 //1. 比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 //2.每次比较,都会产生一个最大或者最小的数 //3.下一轮
2021-08-29 15:19:35 101
原创 Arrays类讲解
Arrays类数组的工具类java.tuil.Arrays (自己写数组,不需要后面输出)由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据进行一些基本操作查看JDK帮助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意不是不能)package com.zhong.array;import java.tuil.Arrays;public class D
2021-08-29 11:39:17 124
原创 多维数组详解
多维数组类似与矩阵多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。二维数组语法结构int a[][] = new int[2][5];解析:以上二维数组a可以看成一个两行五列的数组。图一图二package com.zhong.array;public class ArrayDemo03{ public static void main(String [] args){ //相当于 三行两列的[3][
2021-08-27 10:43:30 709
原创 数组的使用
数组使用For-Each循环数组作方法入参数组作返回值package com.zhong.array;public class ArrayDemo03{ public static void main(String [] args){ int[] array = {1,2,3,4,5}; //打印全部的数组元素 for (int i = 0; 0 < array.lengt
2021-08-26 22:58:05 67
原创 下标越界及小结
下标越界及小结数组的四个基本特点长度是确定的。数组一旦被创建,它的大小就是不可以改变的。元素必须是相同类型,不允许出现混合类型。数组中的元素可以是任何数据类型,包括基本类型和引用类型。数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。数组边界下标的合法区间:[0,length-1],如果越界就会报错;语法为:public static voi
2021-08-26 22:13:38 156
原创 三种初始化及内存分析
三种初始化及内存分析Java内存分析;堆:存放java的对象和数组可以被所有所有的线程共享,不会存放别的对象引用栈:存放基本变量类型(会包含这个基本类型的具体数值)引用对象的变量(会存放这个引用在对里面的具体地址)方法区:可以被所有的线程共享包含了所有的class和static变量栈相当于存放java的书,栈里面的堆相当于章节步骤:当想要输出第11个元素会发生如下错误 叫做越界数组的三种初始化状态静态初始化int[] a = {1,2,3};Man[] mans =
2021-08-26 21:29:14 72
原创 数组详细讲解
什么是数组数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建 (数组 array)首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar; // 首选的方法//或dataType arrayRefVar[]; //效果相同,但不是首选方法Java语言使用new操作符来创建数组,语法如下
2021-08-26 17:44:53 190
原创 递归详细讲解
递归 (消耗性能,能不用就不用,除非基数较小)A方法调用B方法,我们很容易理解!递归就是:A方法调用A方法!就是自己调用自己利用递归可以简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出题过程所需要的多次重复计算,大大地减少程序的代码量。递归的能力在用有限的语句来定义对象的无限集合。递归结果包括两个部分:**递归头:**什么时候不调用自身方法。如果没有头,将陷入死循环。**递归体:**什么时候需要调用
2021-08-26 17:04:03 160
原创 可变参数详讲
可变参数JDK1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(…)。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。package com.zhong.method;public class Demo04{ public static void main(String args[]) { //调用可变参数的方法 printM
2021-08-24 18:25:12 81
原创 命令行传递参数
命令行传递参数(了解)有时候你希望运行一个程序的时候再传递给它消息。这要靠传递命令行参数给main()函数实现拓展,只需要了解语法结构public class CommandLine{ public static void main(String [] args){ for(int i = 0;i < args.length; i++){ System.out.printIn("args[" + i + "]:" + ar
2021-08-24 17:03:56 206
原创 方法的重载
方法的重载重载就是在一个类中,有相同的函数名称,但形象不同的函数。方法的重载的规则: return方法名称必须相同。参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。方法的返回类型可以相同也可以不同。仅仅返回类型不同不足以成为方法的重载。package com.zhong.method;public class Demo02{ public static void main(String [] args){ int max = m
2021-08-24 09:49:44 318
原创 方法的定义和调用
方法的定义和调用Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:**方法包含一个方法头和一个方法体。**下面是一个方法的所有部分:修饰符:修饰符是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueTtpe 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。这种情况下,returnValueTtpe是关键字void。方法名:是方法的实际名称。方法名和参数表共同构成方法
2021-08-23 19:39:43 108
原创 Java方法详解
Java方法详解Java里的方法近似于C语言里的函数什么是方法System.out.println()类 . 对象. 方法解释 调用系统类(system)中的标准输出对象 (out)中的方法(println)。Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在嵌套地方被引用package com.zhong.method;public class Demo01{ //
2021-08-23 18:46:52 61
原创 打印三角形流程控制练习题
打印三角形package com.zhong.base;public class hello{ public static void main(String [] args){ //打印三角形 5行 for (int i = 1; i <= 5; i++){ //行数 for (int j = 5;j >=i ; j--){ //每行个数 System.out.printIn(" ");
2021-08-23 17:51:22 72
原创 break与continue与goto关键字
break与continuebreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否跳过执行循环的判定。breakpackage com.zhong.struct;public class BreakDemo{ public static void main
2021-08-23 17:30:47 122
原创 增强for循环
增强for循环这里我们先只是见一面,做个了解,之后数组重点使用Java5 引入了一种主要用于数组或集合的增强型for循环。Java 增强 for 循环语法格式如下:for(声明语句 : 表达式){//代码句子}数组package com.zhong.struct;public class ForDemo05{ public static void main(String [] args){ int[] numbers = {10,20,
2021-08-23 15:34:17 51
原创 for循环打印九九乘法表
for循环打印九九乘法表我们先打印第一行我们把固定的1再用一个循环包起来去掉重复项,j<=i调整样式package com.zhong.struct;public class ForDemo04{ public static void main(String [] args){ //1.我们先打印第一行 //2.我们把固定的1再用一个循环包起来 //3.去掉重复项,j<=i //4.调整样式
2021-08-23 15:15:59 125
原创 For循环
For循环虽然所有循环结构都可以用while或者do…while表示,但java提供了另一种语句——for循环,使一些循环结构变得更加简单。for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环执行的次数是在执行前就确定的。语法结构如下:for(初始化;布尔表达式;更新){ //代码语句 }package com.zhong.base;public class ForDemo01{ public static void main(St
2021-08-23 12:56:02 148
原创 do...while循环
do…while循环do{//代码语句}while(布尔表达式)while和do-while的区别:while先判断后执行。do while是是先执行后判断Do…while总是保证循环体会被至少执行一次!这是他们的主要差别package com.zhong.struct;public class whileDemo01{ public static void main(String [] args){ //1+2+3+4+......+100=?
2021-08-23 09:13:42 112
原创 循环结构详讲
循环结构while循环do…while循环for循环在java5中引入了一种主要用于数组的增强型for循环。while循环while是最基本的循环,结构为while(布尔表达式){//循环内容}只要布尔表达式为true,循环就会一直执行下去。我们大多数情况下是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器的请求响应监听等。循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序
2021-08-21 22:31:21 92
原创 switch多选择结构
switch多选择结构多选择结构还有一个实习方式就是switch case语句。switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。switch (expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数量的case语句 default : //可选 //语句 }
2021-08-21 20:49:27 67
原创 if选择结构
选择结构if单选择结构if双选择结构if多选择结构嵌套的if结构Switch多选择结构if单选择结构我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示语法:if(布尔表达式){ //如果布尔表达式为true将执行的语句}图解package com.zhong.struct;public class IfDemo01{ public static void main(String [] args)
2021-08-18 22:37:21 94
原创 顺序结构详解
顺序结构java的基础结构就是顺序结构,除非特别指明,否则就按照顺序一句一句的执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。package com.zhong.struct;public class shunxuDemo{ public static void main(String [] args){ Sy
2021-08-18 18:52:16 277
原创 Scanner进阶使用
Scanner进阶使用输入单个数字package com.zhong.scanner;public class Demno04{ public static void main(String [] args){ Scanner scanner = new Scanner(System.in); //从键盘接受数据 int i = 0; float f =
2021-08-18 18:09:10 92
原创 JavaDoc生成文档
JavaDocjavadoc命令是用来生成自己API文档的参数信息@author 作者名@version 版本号@since 指明需要最早使用的jdk版本@param 参数名@return 返回值情况@throws 异常抛出情况package com.zhong.base/** *@author zhonng *@version 1.0 *@since 1.8 */public class Doc{ String name; //属性
2021-08-18 00:35:48 63
原创 包机制详解
包机制为了更好地组织类,java提供了包机制,用于区别类名的命名空间。包放在类的最上面包语句的语法格式为:package pkg1[.pkg2[.pkg...]];一般利用公司域名倒置作为包名; com.zhongstudy.www为了能够使用某一个包的成员,我们需要在java程序中明确导入该包。使用"import"语句可完成此功能import package1[.package2...].(classname|*);IDEA 设置Alt+Enter 可以自动生成包package co
2021-08-17 22:23:48 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人