![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java基础
本专栏主要适合查询相应的知识点
辰行
热爱编程,主攻java,研究复杂网络
展开
-
详解字符串相关的类
一、String的特性1.String类:代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。2.String是一个final类,代表不可变的字符序列,不可被继承。3.字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。4.String内部定义了final char[] value用于存储字符串数据。5.String实现了Serializable接...原创 2020-07-08 16:42:22 · 376 阅读 · 0 评论 -
详解throws方式
1.语法:throws+异常类型1⃣️写在方法的声明处。指出此方法执行时,可能会抛出的异常类型。一旦当方法体执行时,出现异常,仍会在异常代码处生成一个异常类的对象。此对象满足throws后异常类型时,就会被抛出。异常代码后面的代码就不会再执行了。2⃣️try-catch-finally:真正将异常给处理掉了。throws的方式只是将异常抛给了方法的调用者,并没有真正将异常处理掉。pub...原创 2020-04-20 14:12:50 · 2958 阅读 · 0 评论 -
详解try-catch-finally处理方式
1.语法:try{ //可能出现异常的代码}catch(异常类型1 变量名1){ //处理异常的方式1 // }catch(异常类型2 变量名2){ //处理异常的方式2 } ....finally{ //一定会执行的代码 }...原创 2020-04-20 11:47:59 · 986 阅读 · 0 评论 -
详解Java异常
一、概述1.Java程序在执行过程中所发生的异常事件可分为两类:1⃣️Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性的代码进行处理2⃣️Exception:其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问、试图读取不存在的文件、网络连接...原创 2020-04-19 20:40:44 · 243 阅读 · 0 评论 -
详解内部类
一、内部类的介绍1.当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。2.在Java中,允许一个类A声明在另一个类B中,A称为内部类,B称为外部类。3.内部类的分类:成员内部类(静态、非静态)、局部内部类(方法内、代码块内、构造器内)。4.成员内部类:(1)一方面作为外部类的成员1⃣️调用外部类...原创 2020-04-19 16:34:38 · 153 阅读 · 0 评论 -
详解Java8接口新特性
1.JDK8中除了定义全局变量和抽象方法之外,还可以定义静态方法、默认方法。2.接口中定义的静态方法,只能通过接口来调用;默认方法可以通过实现类的对象来调用。3.如果实现类中重写了接口中的默认方法,调用时,仍然调用的是重写以后的方法。4.如果子类(或实现类)继承的父类和实现的接口中声明了同名同参数的方法那么子类在没有重写此方法的情况下,默认调用的是父类中的同名同参数的方法。---->类...原创 2020-04-19 14:38:35 · 162 阅读 · 0 评论 -
详解接口
一、接口的介绍1.一方面,有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,java不支持多重继承。有了接口,就可以得到多重继承的效果。另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有is-a的关系,仅仅是具有相同的行为特征而已。二、接口的定义与使用1.接口使用interface来定义。2.java中,接口和类是并列的两个结构...原创 2020-04-19 10:07:23 · 159 阅读 · 0 评论 -
详解多态的应用:模版方法设计模式
一、介绍1.解决的问题:当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用,这些步骤已经在父类中写好了。但是某些部分易变,易变部分可以抽象出来,供不同子类实现。这就是一种模版模式。public class TemplateTest { public static void mai...原创 2020-04-18 20:27:36 · 142 阅读 · 0 评论 -
创建抽象类的匿名子类对象的具体实例
public static void main(String[] args){ method(new Student());//匿名对象 Worker worker=new Worker(); method1(worker);//非匿名的类非匿名的对象 method1(new Worker());//非匿名的类匿名的对象 ...原创 2020-04-18 18:14:00 · 706 阅读 · 0 评论 -
详解抽象类和抽象方法及abstract关键字
1.随着继承层次中一个个新子类都定义,类变得越来越具体,而父类则更一般,更通用。类都设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体都实例,这样都类叫做抽象类。2.abstract修饰类:抽象类1⃣️抽象类不能实例化。public static void main(String[] args){// Person p1=new Person(...原创 2020-04-18 17:55:08 · 972 阅读 · 0 评论 -
详解final关键字
一、1.final可以用来修饰的结构:类、方法、变量。2.final 用来修饰一个类:此类不能被其它类继承。比如:String类、System类、StringBuffer类。final class FinalA{}//class B extends FinalA{////}//class C extends String{////}3.final用来修饰方法:表明此方...原创 2020-04-18 16:37:29 · 114 阅读 · 0 评论 -
详解类中的代码块
一、代码块(初始化块)1.代码块的作用:用来初始化类、对象2.代码块如果有修饰的话,只能用static修饰,例如:static{}3.分类:静态代码块、非静态代码块。4.静态代码块:1⃣️内部可以有输出语句。2⃣️随着类的加载而执行,而且只执行一次。3⃣️作用:初始化类的信息。4⃣️如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行。5⃣️静态代码块的执行优先于非...原创 2020-04-18 15:19:41 · 406 阅读 · 0 评论 -
对属性进行赋值的位置
1.默认初始化2.显示初始化3.构造器中初始化4.有了对象以后,可以通过“对象.属性”或“对象.方法”的方式,进行赋值5.在代码块中赋值原创 2020-04-18 15:04:21 · 157 阅读 · 0 评论 -
详解main()方法
一、mian()方法的使用说明:1.main()方法作为程序的入口2.main()方法也是一个普通的静态方法,因此可以在类中调用public class MainTest { public static void main(String args[]){ Main.main(new String[100]); }}class Main{ pub...原创 2020-04-18 14:36:07 · 2767 阅读 · 0 评论 -
详解单例(Singleton)设计模式
1.定义:采取一定的方法保证整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态成员变量,所以,指向类内部产生的该类对象...原创 2020-04-16 10:04:41 · 342 阅读 · 0 评论 -
静态方法的注意事项
1.静态方法中只能调用静态的方法或属性。因为它们的生命周期是一样的。2.静态方法中不能使用this、super.原创 2020-04-16 08:51:58 · 267 阅读 · 0 评论 -
静态变量与实例变量的对比
一、static关键字的使用原创 2020-04-16 08:08:24 · 150 阅读 · 0 评论 -
基本数据类型包装类与String的相互转换
//基本数据类型、包装类--->String类型:调用String重载的valueOf(xxx,xxx) int num4=10; //方式1:连接运算 String str1=num4+""; //方式2: float f5=12.3f; String str2=String.valueOf(f...原创 2020-04-14 20:54:35 · 79 阅读 · 0 评论 -
自动装箱与自动拆箱的使用
//自动装箱 int num2=10; Integer in4=num2; //自动拆箱 int num3=in1;原创 2020-04-14 19:49:36 · 99 阅读 · 0 评论 -
详解包装类
基本数据类型包装类byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublebooleanBooleancharCharacterps:以上几个数值型的包装类都继承于Number。一、基本数据类型转换为包装类1.java提供了8种基本数据类型对应的包装类...原创 2020-04-14 18:46:58 · 80 阅读 · 0 评论 -
详解单元测试方法
一、环境配置使用idea IDE 进行单元测试,首先需要安装JUnit 插件。1.安装JUnit插件步骤File–>settings–>Plguins–>Browse repositories–>输入JUnit–>选择JUnit Generator V2.0安装。2.使用JUnit插件在需要进行单元测试的类中,使用快捷键alt+insert,选择JUnit ...原创 2020-04-14 17:04:53 · 421 阅读 · 0 评论 -
详解toString
当我们输出一个对象的引用时,实际上就是调用当前对象的toString()像String、Date、File、包装类等都重写了Object类中的toString(),使得在调用对象的toString()时,返回“实体内容”信息。自定义类也可以重写toString()方法,当调用此方法时,返回对象的“实体内容”。类似于equal()的重写。...原创 2020-04-14 16:15:12 · 95 阅读 · 0 评论 -
IDEA重写equals()的方法
原创 2020-04-13 16:20:28 · 1327 阅读 · 0 评论 -
"=="和equals()的比较及理解
一、“==”1.可以使用在基本数据类型变量和引用数据类型变量中2.如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等。(不一定类型要相同)3. 如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体。二、equals()方法的使用:1.是一个方法,而非运算符。2.只能适用于引用数据类型。3.Object类中equals()的定义:pu...原创 2020-04-13 15:53:40 · 279 阅读 · 0 评论 -
Object类结构的剖析
public class ObjectTest { /* * 1.Object类是所有Java类的根父类 * 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 * 3.Object类中的功能(属性、方法)就具有通用性。 * 属性:无 * 方法:equals() / toString() ...原创 2020-04-13 14:50:20 · 179 阅读 · 0 评论 -
详解向下转型及instanceof关键字
向下转型&使用instanceof进行判断向上转型&多态强制类型转换自动类型提升父类子类较高级的基本数据类型较低级的基本数据类型2.向下转型:nstanceof关键字的使用** a instanceof A:判断对象a是否是A的实例。如果是,返回true;如果不是,返回false.**使用情景:为了避免在向下转型时出现ClassCastExpection的异常,我们在向下...原创 2020-04-13 13:42:30 · 824 阅读 · 0 评论 -
虚拟方法调用的理解
1.子类中定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它的不同子类对象,动态调用属于子类的该方法。这样的方法调用在编译期是无法确定的。2.多态是运行时行为,不是编译时行为。...原创 2020-04-12 22:29:19 · 431 阅读 · 0 评论 -
多态性的学习笔记
一、面向对象特征之三:多态性1.理解多态性:可以理解为一个事物的多态性2什么是多态性:.对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)例: Person p2=new Man();3.多态的使用:当调用子父类同名同参数的方法时,实际上是子类重写父类的方法—虚拟方法调用。有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重...原创 2020-04-12 22:04:51 · 139 阅读 · 0 评论 -
子类对象的实例化过程的理解
1.从结果上来看:(继承性)子类继承父类以后,就获取了父类中声明的属性或方法。创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。2.从过程上来看:当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器…直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有父类的结构,所以才可以看到内存中有父类的结构,子类对...原创 2020-04-12 20:58:06 · 183 阅读 · 0 评论 -
super调用属性、方法、构造器
1.子类和父类中定义了同名的属性或方法时,我们要想在子类中调用父类中声明的属性,则必须显式的使用“super.属性”或“super.方法”的方式,表明调用的是父类中声明的属性或方法。2.super调用父类中的构造器:语法:super(对应构造器中的形参);改语法的使用,必须声明在子类构造器的首行。3.在类的构造器中,this(形参列表)和super(形参列表)只能用一个,不能同时出现。4....原创 2020-04-12 20:42:01 · 501 阅读 · 0 评论 -
关于继承性的一些规定
一个类可以被多个子类继承。java中单继承:一个类只能有一个父类子父类是相对的概念。子类直接继承的父类,称为直接父类;子类间接继承的父类,称为间接父类。支持多层继承如果我们没有显示的声明一个类的父类的话,则此类继承于java.lang.Object类所有的java类(除java.lang.Object类之外)都直接或间接的继承于java.lang.Object类。...原创 2020-04-07 17:46:02 · 1493 阅读 · 0 评论 -
继承中关于私有性的问题
父类中声明为private的属性或方法,子类继承父类后,仍然获取了父类中私有的结构。只是因为封装性的影响,使得子类不能直接调用父类的结构而已。可以通过javaBean来使用私有的结构。...原创 2020-04-07 17:16:00 · 139 阅读 · 0 评论 -
import关键字的使用及注意事项
import导入:1.在源文件中显示的使用import结构导入指定包下的类、接口。2.声明在包的声明和类的声明之间。3.如果需要导入多个结构,则并列写出即可。4.“*”的说明:比如,import java.util.*;表示导入了util下的所有的结构。可以使用“xxx.*”的方式导入xxx包下的所有结构。5.如果使用的类或接口是java.lang包下定义的,则可以省略import结构...原创 2020-04-07 14:36:06 · 1793 阅读 · 0 评论 -
package关键字的使用及注意事项
1.package原意是包2.使用package声明类或接口所属的包3.包的声明要遵循“简明知意”原则4.对于命名时使用的“.”,每“.”一次,就代表一层文件目录。5.同一个包下,不能命名同名的接口、类;不同的包下,可以命名同名的接口、类。...原创 2020-04-07 12:58:50 · 436 阅读 · 0 评论 -
this调用构造器的及其注意事项
1.语法:this(形参列表)2.构造器中不能通过该语法调用自己3.如果一个类中有n个构造器,则最多有n-1构造器中使用了该语法4.规定,该语法必须声明在当前构造器的首行5.一个构造器中最多使用一次该语法...原创 2020-04-07 12:16:27 · 342 阅读 · 0 评论 -
java四种权限修饰
1.java规定的4种权限(从小到大排列):private,缺省,protected,public2.private:只能在类里面使用3.缺省:同一个包里面使用4.protected:不同包的子类使用5.public:同一个工程使用6.四种权限可以用来修饰类及类的内部结构:属性,方法,构造器,内部类...原创 2020-04-07 08:08:30 · 100 阅读 · 0 评论 -
java变量的赋值规律
1、形参是基本数据类型,将实参基本数据类型变量的“数据值”传递给形参。2、形参是引用数据类型,将实参引用数据类型变量的“地址值”传递给形参。3、变量之间的传值也是按照这个方式进行的。public class test { public static void main(String args[]){ System.out.println("基本数据类型********...原创 2020-04-04 09:00:50 · 404 阅读 · 0 评论