
JAVA编程
Java语言基本知识点
一只有理想的程序猿
在嵌入式领域摸爬滚打的小菜鸟。
展开
-
异常
1、异常也是JAVA中的类2、所有异常的父类:Throwable3、两类异常:Error和Exception(Error认为是不可修复的(内存不够用了,应用程序没有解决方案)、Exception是和应用逻辑有关的,可以补救的。)4、Exception的类型是很重要的,表明了它是哪种错误。Exception按照处理方式不同分类1、checked excepion:语法要求必须要用try catch 或者 throws语句处理的异常。2、unchecked exception:语法不要求一定要用tr原创 2021-02-01 11:55:42 · 136 阅读 · 0 评论 -
抽象类
抽象类:接口和类的混合体抽象类两点特殊性:1、被abstract修饰,可以有抽象方法。(抽象方法可以来自实现的接口,也可以自己定义)2、不可以被实例化。原创 2021-01-29 14:38:27 · 76 阅读 · 0 评论 -
接口
基本概念1、接口的定义使用interface,而非class。2、接口中的方法,就是这个类型的规范,接口专注于规范,怎么实现这些规范,它不管。3、接口方法不能被实例化,也就是不能够new一个接口的实例。4、接口里的方法如果不是缺省的,都是且只能用public abstract修饰,所以这俩修饰符可以忽略。5、接口里不能定义局部变量,变量默认都是public static final的,同样可以全部忽略。6、一个类实现了接口,就是从接口继承了抽象方法。7、可以用实现接口的类的引用,给接口的引用赋原创 2021-01-29 14:25:18 · 114 阅读 · 0 评论 -
初探反射
反射的作用1、使用反射(reflection)访问属性。2、使用反射访问方法。3、使用反射访问静态方法和属性。4、使用反射访问private的方法和属性认识FieldField不仅代表的是成员变量,类变量也是用Field。getFiled()方法的使用。...原创 2021-01-28 16:45:59 · 92 阅读 · 0 评论 -
equals和hashCode方法
hashCodehashCode :哈希码或者散列码。应该是表示对象特征值的**int整数。**如果没有任何类去覆盖hashCode方法,哈希码的值就是对象在内存中的地址。但是缺省的哈希码的值是没有什么太大意义的。实际中需要我们去覆盖hashCode 方法。equalsequals方法用来判断两个对象从逻辑上是否相等,并不是判断两个对象是否是同一个对象。hashCode 和 equals怎么写这两个方法是我们经常去要覆盖的方法。覆盖原则:equals为true,hashCode就应该相等。这是一原创 2021-01-27 22:31:02 · 507 阅读 · 0 评论 -
java中的覆盖以及继承中的静态方法
1、子类中的方法签名和父类如果是一样的,那么返回值类型也必须是一样的。2、通过引用去调用静态方法和非静态方法的区别。首先通过引用调用非静态方法,它有个覆盖的概念在里边,它会动态检查这个引用指向的对象是什么,然后判断调用哪个方法。在静态方法领域里面,没有覆盖这个概念。同时用引用调用静态方法是不被推荐的。...原创 2021-01-27 15:08:03 · 196 阅读 · 0 评论 -
四种访问控制符:public、private、protected、default
protected1、protectd属于继承专属访问控制符。2、类中的属性如果是protected的,访问权限仅限于类内部、本包、子类。note:构造方法可以是protected,但是如果是private,子类就不可以覆盖。如果父类有一个private方法,相当于这个类不能有子类。访问控制符权限总结。类内部本包子类外部包privatedefaultdefaultprotectedprotectedprotectedpublicpubl原创 2021-01-26 10:21:48 · 1632 阅读 · 2 评论 -
父类引用和子类引用之间 的关系
1、可以用子类的引用给父类的引用赋值,也就是说,父类的引用可以指向子类的对象。相当于父类的引用也指向子类的对象。2、不能让子类的引用指向父类的对象。因为父类并没有子类的属性和方法。3、因为子类继承了父类的方法和属性。所以父类的对象能做到的,子类对象肯定能做到。换句话说,可以在子类对象上,指向父类的方法,当父类的引用指向子类的实例,只能通过父类的引用,像父类一样操作子类对象。也就说名的类型,决定了执行哪些操作。举例来讲。如果引用ph 和 m都指向一个对象,但是引用ph和m却不属于同一个类型。如果ph的类原创 2021-01-25 09:43:20 · 1913 阅读 · 1 评论 -
调用父类的构造方法
1、使用super调用父类的构造方法,必须是子类构造方法的第一个语句。使用this调用重载的构造方法,也必须是构造方法的第一个语句。可以看到,程序中已经标红,这是不行的。解决这个问题,可以自己定义一个init方法,来初始化成员变量,通过调用init方法解决这个问题。如下所示:2、如果父类里面没有一个缺省的构造方法(没有任何参数的构造方法),那么子类必须通过super关键字,在构造方法的第一行调用一个有参数的构造方法,把参数传进去。相反,如果父类里有一个缺省的构造方法,在子类中不需要去做上边的这些调原创 2021-01-19 09:44:56 · 6818 阅读 · 0 评论 -
继承
继承的语法和作用1、子类继承了父类的方法和属性。但是子类不能访问父类的private方法和属性。2、使用子类的引用可以调用父类的方法。3、使用子类的引用可以访问父类的公有属性。即public属性。4、就好像子类的引用可以一物二用,既可以当父类的引用使用,又可以当子类的引用使用。继承是什么?继承是子类对象里藏着一个父类对象。可以认为,创建子类对象时,也就同时创建了一个隐藏的父类对象。组合和继承的区分是什么?继承是表达的一种“is - a” 的关系,也就是在类构造的时间中,“子类是父类的一种特原创 2021-01-17 02:37:34 · 667 阅读 · 0 评论 -
main方法使用指南
main方法使用指南main方法也只是一个静态的,有String[] 做参数的,没有返回值的方法而已。其特殊性地位在于Java把main方法作为程序入口。如何给main方法传递参数对于main方法:public static void main(Sting args[]),如果不特殊指定,这个args默认为是空,那如何给args传递参数,就使用到下边的方法:选择工具栏小锤子旁边的选项框,选择Edit Configurations,进入里边在标识位置填写参数,JAVA会以空格作为分隔符进行区分。那么原创 2021-01-11 21:52:35 · 1023 阅读 · 0 评论 -
java中参数和返回值是怎么传递的
1、参数和方法里的局部变量可以认为是一样的东西。2、发生在代码块儿里的,就让他留在代码块里。方法执行完毕,参数和方法的局部变量的数据就会被删除和回收。他们的作用就好像是演草纸,作用是计算一个值,算好之后,演草纸就可以扔了。3、调用一个有返回值的方法时,就好像访问一个成员变量。 int paramPrime = 7; m.willOutsideValueChangeIfParameterValueChangeHerePrime(paramPrime); // m是一个对象,执行m对象中的方法。 pu原创 2021-01-02 21:33:30 · 811 阅读 · 1 评论 -
认识JAVA中引用数据类型
1、引用类型认识1、JAVA中数据类型分为基本数据类型和引用数据类型。这个是引用数据类型在Java体系中的位置。在java的世界里就上述两种数据类型。详细介绍:class MyClass{ private int num1;}MyClass class1 = new MyClass();class1 是MyClass类型的一个引用,只能指向Myclass类型的实例。这个是引用的作用。一头连着类型,即他是MyClass类型的一个引用,另外一头连接着实例对象。2、引用数据类型和基本数据类型原创 2021-01-01 11:29:21 · 5892 阅读 · 1 评论 -
Arrays.copyOf() 和 System.arraycopy()的区别使用
一、System.arraycopy的使用1、函数声明:public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);src - 源数组。srcPos - 源数组中的起始位置。dest - 目标数组。d原创 2020-12-29 16:21:11 · 605 阅读 · 0 评论 -
Arrays.sort()的用法
一、介绍1、sort(T[] a) 的使用2、sort(T[] a,int formIndex, int toIndex) 的使用3、sort(T[] a, Comparator<? supre T> c)的使用补充:sort(T[] a, Comparator<? supre T> c)类对象比较的使用补充:那么在参数中会出现super呢?这意味着这类型可以是T或者它的父类型。这就是的该方法可以允许所有子类使用相同的比较器。Arrays.sort()的作用是对括号中的数组进行排序原创 2020-12-29 12:36:18 · 17332 阅读 · 1 评论 -
移位运算符<< >> >>>的使用
算数左移运算符<<使用规则:数学意义(了解):注意事项、疑惑点:使用规则数学意义使用规则使用规则:丢弃最高位(符号位同样丢弃),0补最低位举例:数学意义(了解):在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。注意事项、疑惑点:如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。算数右移运算符 >>使用规则:数学意义(了解):注意事项、疑惑点原创 2020-12-25 16:26:13 · 8898 阅读 · 3 评论 -
编译时和运行时的概念区分
什么叫编译时和运行时:https://blog.youkuaiyun.com/weiwenhp/article/details/8107203编译:类似翻译,就是将源代码翻译成机器能识别的代码。运行:就是将代码跑起来,被装载到内存中去了。原创 2020-06-30 14:14:08 · 610 阅读 · 0 评论 -
JAVA自学编程第一天
一、如何通过IDEA创建字节的JAVA工程、什么是JDK?JDK的安装位置在哪里?在创建一个JAVA工程时,需要选择一个JDK,那么什么是JDK。https://wenwen.sogou.com/z/q729940448.htm对于一个刚刚接触JAVA的小白来说,可能在看了刚才连接中的内容后,才刚刚大致理解了什么时JDK,那么JDK我们一般安装在什么位置了呢,怎样查看JDK的安装路径?...原创 2020-03-25 09:55:25 · 168 阅读 · 0 评论 -
图形用户接口2019/01/12
1、初识JFrame对象,它是个代表屏幕上windows的对象。2、super和this的区别:详细介绍链接:https://www.runoob.com/w3cnote/the-different-this-super.html原创 2020-01-13 13:42:38 · 123 阅读 · 0 评论 -
Java学习日志2019/01/13
1、当导入包时,例如import javax.swing,*;整句话的意思是:把javax.swing这个路径下 里面的所有东西引进来。2、ActionListener是一个抽象的类吗? AcitonLisener是一个接口,而且尽量去创建一个类去实现ActionListener的接口。3、 Jpanel是个什么样的类? Jpanel是JAVA图形用户界面GUI工具包...原创 2020-01-13 13:34:17 · 115 阅读 · 0 评论 -
Jav编程日志2019/01/10
一、对象如何创建、存在于何以及如何保存和抛弃更有效率。 对象存在堆上,堆又可以称为可垃圾回收的堆。方法在栈上,并且方法会被堆在一起。当调用一个方法时,该方法会在调用栈的栈顶。如果局部变量是个对该对像的引用,只有变量本身会放到栈上。但是对象无论如何都是运行在堆上。二、为什么要理解栈与堆的机制?1、如果想要了解变量的有效范围、对象的建立、内存管理、线程和异常处理,则认识堆与栈是很重要的。...原创 2020-01-10 11:36:01 · 607 阅读 · 0 评论 -
JAVA编程日志2020/01/09
1、如果对象在堆上没有被引用,它将变成无法存取的状态,那么这个对象将被抛弃且能够做垃圾收集器(GC)2、数组也是对象,不管里面的是不是primitive主数据类型。数组中有个称为length的变量,能够返回元素的数目。3、JAVA是通过值传递的,也就是通过拷贝传递的。4、如何隐藏数据?----》 使用公有和私有两个存取修饰符。封装的基本原则:将实例变量标记为私有的,并提供公有的gett...原创 2020-01-09 16:04:07 · 252 阅读 · 0 评论 -
2019/11/27Java编程总结
1、在编写第一个Java程序时遇到Resource leak: "in" is never closed的报警提示,这个报警的意思是:资源泄漏。原因是:申明了名为SC的数据输入扫描仪(Scanner),从而获得了配置内存,但是结束时却没有关闭或释放该内存,而出现警告。因此mian函数的结束时用XXX.close();结束数据流,释放内存。这样警告就会消失。2、报错Exception i...原创 2019-11-27 13:46:09 · 277 阅读 · 0 评论