![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE笔记
文章平均质量分 64
有关Java基础的个人笔记
m1m-FG
这个作者很懒,什么都没留下…
展开
-
Java中的异常(Exception)
下面代码中的注释写的很清楚。//1.当执行到num1/num2,因为num2 = 0,程序就会抛出异常ArithmeticException。Arithmetic(adj 算术的)//2.抛出异常后,程序就退出,因为崩溃了,下面的代码不再执行。//3.在2中叙述的情况,在现实中不合理,不应该因为出现了一个不算致命的问题,就导致整个系统崩溃。//4.因此java设计者提供了一个叫 异常处理机制 来解决该问题。System.out.println("程序继续运行......");原创 2022-12-15 22:17:47 · 1103 阅读 · 0 评论 -
Java中常见的注解
如果方法前有@Override注解,编译器就会去检查该方法是否真的是重写父类的方法,如果不是(因为这相当于是子类自己的方法,不是重写父类的),则会编译报错。说白了,@Override起着检查语法的作用称为源码中的Override是这样的:(@interface不是接口,而是注解类,是jdk1.5之后加入的;Override是注解,Target是修饰注解的注解,称为元注解)该注解的作用范围与它放的地方有关,例如放在main方法上,抑制警告的范围就是main方法;表示该方法是重写的父类方法。原创 2022-12-15 16:06:31 · 642 阅读 · 2 评论 -
Java中的成员内部类
成员内部类就是定义在外部类成员位置(属性/方法的位置)的类。成员内部类就是个成员。原创 2022-12-14 15:58:11 · 424 阅读 · 0 评论 -
Java中的局部内部类
局部内部类就是定义在外部类的方法/代码块中的类,有类名。class Outer02{ //外部类public void m1(){ //方法//局部内部类定义在方法中class Inner02{ //局部内部类}}}原创 2022-12-14 18:02:10 · 641 阅读 · 0 评论 -
Java中的匿名内部类
定义:巴拉巴拉巴拉,就不写了。原创 2022-12-14 15:14:19 · 757 阅读 · 1 评论 -
Java中的静态内部类
和成员内部类一样,都是放在外部类的成员位置,但是!静态内部类有static修饰。(那不就是被static修饰的成员内部类吗...一旦被static修饰了,就叫做静态内部类)原创 2022-12-14 16:21:39 · 5203 阅读 · 0 评论 -
Java中的四种内部类
一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类成为外部类(outer class)。(3)没有类名(但其实系统自动分配的有类名,表面上看不见);一定要记住:(1)局部内部类是定义在方法体or代码块中;就是可以直接访问私有属性,并且可以体现类与类之间的包含关系。1、概念:局部内部类是定义在外部类的局部位置,比如方法、代码块中,并且有类名。说明:匿名内部类是定义在外部类的局部位置,比如方法中,并且没有类名。属性、方法、构造器、代码块、内部类),内部类。原创 2022-12-14 12:57:40 · 355 阅读 · 0 评论 -
Java中的接口
那就需要实现游泳和飞的接口,可以看成是父子(extends)师徒(implements)的关系。比如前面的Usb接口案例,USB usb,既可以接收手机对象,又可以接收相机对象,就体现了接口多态。如果IG继承了IH接口,而Teacher类实现了IG接口,就相当于Teacher类也实现了IH接口,这就是多态传递现象。即接口类型的数组,可以存放多种类型的对象,而不是像普通数组那样,只能存放类型相同的对象。接口就是给出一些没有实现的方法,封装到一起,等某个类要使用的时候,再根据具体情况把这些方法写出来。原创 2022-12-09 15:50:30 · 211 阅读 · 0 评论 -
Java中的抽象类和抽象方法(abstract)
想象一下,有一个父类Animal,子类有Dog,Tiger,Cat等等。我们实例化一个Dog类型orTiger类型的变量(即new Dog())看起来是很合理的事。但是!如果我们实例化一个Animal类型的变量,即new Animal(),是不是看起来有一点奇怪?Animal的实例化对象是什么?Dog是一条狗,Cat是一只猫,Animal是什么???因此,我们发现有些类是不应该被初始化的。(即不应该存在被实例化的对象)在本例子中,Animal就是抽象类,而Dog、Tiger和Cat这些都是具体类。而在jav原创 2022-12-03 16:12:00 · 446 阅读 · 0 评论 -
Java中的final关键字
final可以修饰类、属性、方法和局部变量。原创 2022-12-09 14:21:12 · 769 阅读 · 0 评论 -
Java中的单例模式
设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局我们使用不同的棋谱,免去我们自己再思考和摸索。Java中公认的有23种设计模式。二、什么是单例设计模式?单例,就是指单个的实例。单例设计模式就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有两种方式:(1)饿汉式;(2)懒汉式。原创 2022-12-09 12:16:08 · 139 阅读 · 0 评论 -
Java中的代码块
代码块又叫初始化块,是类的一部分,类似于方法,将逻辑语句封装在方法体中,通过{}包围起来。但代码块又和方法不同,没有方法名,没有返回,没有参数,只有方法体,而且不用通过对象或类显式调用,而是在加载类时,或者创建对象时隐式调用。原创 2022-12-09 10:01:30 · 1510 阅读 · 2 评论 -
Java中的main方法
main方法是java程序的入口,每个java应用程序都必须有且仅有一个main方法。 main方法是被java虚拟机调用的。 java虚拟机不在该类中,也不在该类的包中,也不是该类的子类。因此main方法的访问权限被设置为static。 java虚拟机在执行main方法时不必创建对象,所以该方法是static。 虚拟机不需要返回值,正常能执行就执行,不能执行就算了。所以是void。 该方法接受String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数。 java 执原创 2022-12-07 22:35:44 · 3406 阅读 · 0 评论 -
Java中的静态变量和静态方法(static)
静态变量就是用static关键字修饰的变量,该变量最大的特点就是会被该类中所有的实例对象共享二、静态变量放在那里? 不管是哪个版本,都不重要。重要的是:定义静态变量:访问静态变量:(静态变量也遵守访问权限,即public, private......)1、什么时候需要用静态变量2、静态变量与实例变量的区别3、加上static就是静态变量,否则是实例变量。4、实例变量不能通过 类名.实例变量名 方式访问。5、静态变量是在类加载时就初始化了,即使没有创建对象,只要类加载了,就可以使用静态变量6、静态变原创 2022-12-07 20:57:09 · 1057 阅读 · 0 评论 -
零钱通项目
使用java开发零钱通项目,完成收益入账、消费、查看明细、退出系统等功能。原创 2022-12-13 11:06:03 · 115 阅读 · 0 评论 -
Java中的断点调试
1、断点调试是指在程序的某一行设置一个断点,调式时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看到各个变量当前的值,出错的话,调式到出错的代码即显示错误,停下,进而分析找到bug。2、重要提示:断点调试的过程是运行状态,是以对象的运行类型来执行的,而非编译类型。原创 2022-12-09 20:59:37 · 1099 阅读 · 0 评论 -
Java中的finalize方法
当一个对象没有引用的时候,对象的垃圾回收器会调用finalize方法。当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法,做一些释放资源的操作。什么时候被回收:当某个对象没有任何引用时,jvm就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁对象前,会先调用finalize方法。垃圾回收机制的调用,是由系统来决定(有自己的GC算法),也可以通过System.gc()主动触发垃圾回收机制。原创 2022-12-12 21:13:30 · 3626 阅读 · 1 评论 -
Java中的toString()方法
/(1)getClass().getName() 返回类的全类名(包名+类名)//(2)Integer.toHexString(hashCode())将对象的hashCode值转成16进制字符串}Object类中的toString方法输出的结果是:全类名(包名.类名+@+16进制的哈希值)原创 2022-12-12 20:40:18 · 9347 阅读 · 1 评论 -
Java中的hasCode
hashCode()方法返回对象的哈希码值。原创 2022-12-12 20:18:35 · 159 阅读 · 0 评论 -
Java中的equals方法
解释:this指的就是当前对象,this是指equals方法是谁调用的,上面的hello调用的equals,所以this指的是字符串hello,而==右边的obj对象,是传入的abc。Object类中的equals方法默认就是比较对象地址是否相同。"=="是一个比较运算符。原创 2022-12-12 17:41:30 · 17628 阅读 · 4 评论 -
Java中的Object类
Object类是Java java.lang包下的核心类,Object类是所有类的父类,何一个类时候如果没有明确的继承一个父类的话,那么它就是Object的子类;以下两种类的定义的最终效果是完全相同的:使用Object类型接收所有类的对象Object 类的结构图(Object提供了11 个方法) 下面我们一个个方法进行分析,看这些方法到底有什么作用:1. clone()保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedExcepti原创 2022-12-06 10:51:03 · 1520 阅读 · 0 评论 -
Java中的多态
一、概念多态是面向对象程序设计(OOP)的一个重要特征,指同一个实体同时具有多种形式,即同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态(概念是网上抄的,可以不看)。简单解释:多态就是指方法或对象具有多种形态。它建立在封装和继承之上。要想解释多态,我们先从创建对象说起。 Dog myDog:声明一个Dog类型的引用变量myDog。JVM分配空间给引用变量,并将此引用变量命名为myDog,而且此引用变量被永久的固定为Dog类型。 new Dog():实例化Dog对象,分配堆空间给新建的原创 2022-12-03 21:12:26 · 163 阅读 · 0 评论 -
Java中的super关键字
简单来说,就是子类中重写的方法,既需要调用父类的方法,又需要再额外增加一些自己的东西。已经在Java的继承这篇文章中使用过super关键字了。简单来说:super代表父类的引用,用于访问父类的属性,方法和构造器。二、super关键字详解 super关键字访问父类的属性,但是不能访问父类的private属性。super.属性名;(属性就是父类中的实例变量。在子类中,从父类那继承来的实例变量的值是可以修改的,只要不是private) super关键字访问父类的方法,但是不能访问父类的private原创 2022-12-05 22:21:20 · 574 阅读 · 0 评论 -
Java中的继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为(概念是网上抄的,可以不看),Java中用extends关键字表示继承。Fig.1 简单的继承关系二、深入理解继承是将多个子类的共同属性抽象出来,组成父类。父类是较为抽象的类,而子类是较为具体的类。以动物为例子,见Fig.2,动物都有叫(makeNoise)、吃(eat)、睡觉(sleep)和散步(roam)的行为(方法),因此将其抽象出来作为父类。Fig.2 动物的继承关系Howe原创 2022-12-03 15:22:58 · 486 阅读 · 0 评论 -
Java中的访问修饰符
公开级别:用public修饰,对外公开。受保护级别:用protected修饰,对子类和同一个包中的类公开。默认级别:没有修饰符(default),对同一个包的类公开。私有级别:用private修饰,只有类本身可以访问,不对外公开。修饰符可以用来修饰类中的属性、方法和类。只有default和public才能用来访问类。原创 2022-12-09 21:23:02 · 202 阅读 · 0 评论 -
Java中的封装
封装就是把属性和方法封装在一起,将数据保护在内部,程序的其他部分只有通过被授权的操作(方法),才能对数据进行操作。如果同时存在构造器和set方法,通过构造器初始化的对象实例会破解set方法中的逻辑判断。此时在构造器中调用set方法,即可解决这种问题,达到即使通过构造器初始化对象,也能实现数据验证的效果。账号信息 name=fg 余额=60000.0 密码=345789。账号信息 name=mg 余额=60.0 密码=123456。原创 2022-12-12 13:41:33 · 1321 阅读 · 0 评论 -
Java中的包
包(package)就是java中打包好的一个文件夹,里面有很多可以使用的类。例如:ArrayList是放在java.util这个包中,顾名思义,java.util包中放了很多工具类。使用java API的类是很简单的,把它当作是自己写的去用就行了。唯一的区别就是,需要在程序的某个地方指明函数库类的完整名称,即包的名称+类的名称。例如:java.util.ArrayList(这个才是ArrayList的完整名字)。说白了,包就是文件夹,类就是文件夹里面的文件。package是关键字,表示打包;后面的是包名。原创 2022-12-07 11:39:49 · 5549 阅读 · 0 评论 -
Java中的this关键字
首先,先看一段简单的代码:这是一段简单的自定义构造器,然后创建对象并初始化的代码,最终输出的结果是Rubyand9。在构造器中我们可以看见为了区分命名,我们选择了dName和dAge,但每次都这样命名是一件很麻烦的事情,尤其是当命名的数量多了之后。因此我们选择this关键字来解决这个问题。另外,如果只是把构造器中的内容改成name = name和age = age,最后输出的结果会是nulland0。这是因为在构造器方法体中的name和age指的是构造器形参中的name和age,等于是构造器自己把自己原创 2022-12-05 15:21:46 · 190 阅读 · 0 评论 -
Java中的对象是怎么被创建的?
首先看一个例子:创建对象的流程是如下:Fig.1 对象的创建过程原创 2022-12-05 13:13:23 · 228 阅读 · 0 评论 -
Java中的构造器(Constructor)
首先说明,构造器和构造方法是一个东西,翻译的问题。假设一个场景,通常我们在实例化一个类的对象时,例如实例化人类的对象,一般是先new一个对象,然后再给该对象的属性赋值(名字、年龄等)。但是如果我想在实例化对象的时候,就直接设置该对象的属性,这时就要用到构造器。构造器的作用是初始化对象,要注意在调用构造器之前,对象已经实例化了(已经存在),调用构造器只不过是将对象初始化。[修饰符] 方法名(参数列表){方法体;}Tips:Tips:构造器Person是真真实实要被调用的,"构造器被调用了"这句话是会被输原创 2022-12-05 10:09:43 · 1855 阅读 · 0 评论 -
Java中变量的作用域
简单理解:全局变量就是定义在类中的变量,它可以用在该类中的任何地方。局部变量就是定义在方法里面的变量,只能在该方法内使用。(不是很准确,但是可以这样简单理解)Tips:下面用一段代码来解释上面的Tips:二、二者的区别作用域范围不同:修饰符不同:原创 2022-12-05 16:14:57 · 552 阅读 · 0 评论 -
Java中的ArrayList
ArrayList可以看作是一个可以动态修改和动态改变大小的数组,与普通数组最大的区别就是它没有固定大小的限制,并且可以在add和remove数组内元素的时候,自动增大或缩小数组。ArrayList继承了 AbstractList ,并实现了 List 接口。但是ArrayList并不是一个数组,它是java.util包中的一个类。在使用ArrayList时,我们只是在使用ArrayList类型的对象,因此和其他类型对象的使用一样,我们用“.”运算符来调用它的方法。 E: 泛型数据类型,用于设置 o原创 2022-12-07 10:41:05 · 3012 阅读 · 1 评论 -
Java中的二维数组
应用场景:比如我们要开发一个五子棋游戏,期盼就是需要用二维数组来表示。即一维数组的每一个元素也是数组。例子:请用二维数组输出如下图形:000000001000020300000000/*请用二维数组输出如下图形:000000001000020300000000*//*什么是二维数组?1.从定义形式上看 int[][]2.原来的一维数组的每个元素都是一堆数组,就构成二维数组。因此如果要得到每个一维数组的值,还需要再次遍历。原创 2022-12-14 11:29:39 · 1319 阅读 · 0 评论 -
Java中的数组
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数(数据)组(一组)就是一组数据。原创 2022-12-14 10:21:58 · 209 阅读 · 0 评论 -
Java中的程序控制
程序由上到下逐行地执行,中间没有任何判断和跳转。让程序有选择的执行,分支控制有三种。原创 2022-12-12 21:56:12 · 103 阅读 · 0 评论 -
Java下载及环境配置
注在jdk1.5之后的版本,无需配置classpath,只用配置Path和JAVA_HOME即可。默认的安装路径是(为防止忘记安装在哪,可以选择默认路径安装),安装过程均下一步,完成即可。1、打开cmd,输入java后回车。出现下列内容代表已经配置成功。这样我们的java-jdk就下载并配置好了!6、双击系统变量中的Path。4、在系统变量下,点击新建。2、点击高级系统设置。......原创 2022-07-28 22:59:55 · 10248 阅读 · 3 评论