
JavaSE复习
记录JavaSE复习之路
是2的10次方啊
职业软件开发工程师! 记录技术成长之路! 个人网站、掘金、微信公众号搜索:是2的10次方啊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JavaSE复习总结思维导图
思维导图源文件地址:思维导图源文件原创 2021-06-30 00:51:35 · 247 阅读 · 0 评论 -
异常03:自定义异常及经验小结
异常03:自定义异常及经验小结自定义异常使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可在程序中使用自定义异常类,大体可分为如下几个步骤1.创建自定义异常类2.在方法中通过throw关键字抛出异常对象3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作4.在出现异常方法的调用转载 2021-06-26 18:18:14 · 139 阅读 · 0 评论 -
异常02:捕获和抛出异常
异常02:捕获和抛出异常异常处理机制抛出异常捕获异常异常处理5个关键字try、catch、finally、throw、throws代码showdemo01://Test.javapublic class Test { public static void main(String[] args) { int a = 1; int b = 0; //假设要捕获多个异常:从小到大 try {//try监控原创 2021-06-26 17:54:28 · 360 阅读 · 0 评论 -
异常01:Error和Exception
异常01:Error和Exception大纲1.什么是异常2.异常体系结构3.Java异常处理机制4.处理异常5.自定义异常6.总结什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求,你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序在跑着,内存或者硬盘可能满了。等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意原创 2021-06-26 17:34:49 · 665 阅读 · 0 评论 -
面向对象17:N种内部类
面向对象17:N种内部类内部类内部类就是在一个类的内部再定义一个类,比如:A类中定义一个B类,那么B类相对于A类来说就被称为内部类,而A类相对于B类来说就是外部类了1.成员内部类2.静态内部类3.局部内部类4.匿名内部类代码showdemo01://Outer.javapublic class Outer { private int id = 10; public void out() { System.out.println("原创 2021-06-26 17:00:13 · 101 阅读 · 0 评论 -
面向对象16:接口的定义与实现
面向对象16:接口的定义与实现接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有接口:只有规范!自己无法写方法~专业的约束! 约束和实现分离:面向接口编程~接口就是规范,定义的是一组规则,体现了现实世界中,“如果你是…则必须能…"的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是美女,则必须很美。。。。接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都原创 2021-06-25 01:12:31 · 202 阅读 · 2 评论 -
面向对象15:抽象类
面向对象15:抽象类抽象类abstract修饰符可以用来修饰方法也可以用来修饰类。如果修饰方法,那么该方法就是抽象方法。如果修饰类,那么该类就是抽象类抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类抽象类,不能使用new关键字来创建对象,它是用来让子类继承的抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的子类继承抽象类,那么就必须实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类代码showdemo01://Action.java原创 2021-06-25 00:41:28 · 119 阅读 · 0 评论 -
面向对象14:static关键字详解
面向对象14:static关键字详解代码showdemo01://Student.java//staticpublic class Student { private static int age;//静态的变量 多线程 private double score;//非静态的变量 public void run() { } public static void go() { } public static void main(St原创 2021-06-25 00:24:52 · 132 阅读 · 0 评论 -
面向对象13:instanceof和类型转换
面向对象13:instanceof和类型转换instanceof(类型转换) 引用类型,判断一个对象是什么类型~代码showdemo01://Personpublic class Person { public void run() { System.out.println("Person run"); }}//Studentpublic class Student extends Person { public void go() {原创 2021-06-20 12:01:12 · 146 阅读 · 1 评论 -
面向对象12:什么是多态
面向对象12:什么是多态多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,但是可以指向对象的的引用的类型有很多(父类,有关系的类)多态存在的条件有继承关系子类重写父类方法父类引用指向子类对象注意:多态是方法的多态,属性没有多态性instanceof (类型转换) 引用类型转换~代码showdemo01://Person类public class Person { public void run() {原创 2021-06-20 11:40:45 · 163 阅读 · 0 评论 -
面向对象11:方法重写
面向对象11:方法重写代码showdemo01://B//重写都是方法的重写,和属性无关public class B { /*public static void test() { System.out.println("B-->test()"); }*/ public void test() { System.out.println("B-->test()"); }}//A//继承public class A原创 2021-06-14 16:04:47 · 112 阅读 · 0 评论 -
面向对象10:Super详解
面向对象10:Super详解代码showdemo01://Person://在Java中,所有的类,都默认继承Object类//Person 人:父类public class Person /*extends Object*/ { public Person() { System.out.println("Person类无参构造执行了"); } protected String name = "gongyi"; //私有的东西无法被继承原创 2021-06-14 15:41:16 · 136 阅读 · 0 评论 -
面向对象09:什么是继承
面向对象09:什么是继承继承继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模extends的意思是“扩展”。子类是父类的扩展。Java中类只有单继承,没有多继承。一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖,组合,聚合等继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上来讲应该具有“is a”的关系。obje原创 2021-06-14 15:14:04 · 155 阅读 · 0 评论 -
面向对象08:封装详解
面向对象08:封装详解封装该露的露,该藏的藏我们程序设计要追求:“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏记住这句话就够了:属性私有,set/get彩蛋1.在ieda中快速打印一个变量的返回值例如:s.getName().sout回车就行...原创 2021-06-14 10:38:22 · 133 阅读 · 0 评论 -
面向对象07:简单小结类与对象
面向对象07:简单小结类与对象代码showdemo01://一个项目应该只存在一个main方法public class Application { public static void main(String[] args) { /* 1.类与对象 类是一个模板:抽象,对象是一个具体的实例 2.方法 定义,调用 3.对象的引用 引用类型: 基本类型(8)原创 2021-06-14 10:13:11 · 120 阅读 · 0 评论 -
面向对象06:创建对象内存分析
面向对象06:创建对象内存分析代码showdemo01:public class Pet { public String name; public int age; public void shout() { System.out.println("叫了一声"); }}/* Pet dog = new Pet(); dog.name = "旺财"; dog.age = 3; dog.s原创 2021-06-14 10:04:32 · 93 阅读 · 0 评论 -
面向对象05:构造器详解
面向对象05:构造器详解代码showdemo01:// java ---> classpublic class Person { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; //实例化初始值 //1.使用new关键字,本质是在调用构造器 //2.用来初始化值 public Person() { this.name = "gongyi"; } //有原创 2021-06-13 18:38:28 · 166 阅读 · 0 评论 -
面向对象04:类与对象的创建
面向对象04:类与对象的创建类与对象的关系类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物动物,植物,手机,电脑…Person类,Pet类,Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为对象是抽象概念的具体实例张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念创建与初始化对象使用new关键字创建对象使用new关键字创建的时候原创 2021-06-13 17:48:15 · 160 阅读 · 0 评论 -
面向对象03:回顾方法的调用
面向对象03:回顾方法的调用代码showdemo01:public class Demo02 { public static void main(String[] args) { //实例化这个类 new //对象类型 对象名 = 对象值; Student student = new Student(); student.say(); } //和类一起加载的 public static void a()原创 2021-06-09 00:20:10 · 145 阅读 · 0 评论 -
面向对象02:回顾方法的定义
面向对象02:回顾方法的定义回顾方法及加深方法的定义修饰符返回值类型break(跳出switch,结束循环)和return的区别方法名:注意规范就ok 见名知义参数列表:(参数类型,参数名)…异常抛出: 疑问,后面讲解方法的调用静态方法非静态方法形参和实参值传递和引用传递this关键字代码showdemo01:public class Demo01 { //main方法 public static void main(String[] arg原创 2021-06-08 09:01:19 · 149 阅读 · 0 评论 -
面向对象01:什么是面向对象
面向对象01:什么是面向对象面向对象学习大纲1.初识面向对象2.方法回顾和加深3.对象的创建分析4.面向对象三大特性5.抽象类和接口6.内部类及OOP实战面向过程 & 面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么…面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索面向对象适合处理复杂的问题,适合处理需要多人协作原创 2021-06-08 08:30:25 · 134 阅读 · 0 评论 -
Java数组09:稀疏数组
Java数组09:稀疏数组稀疏数组需求:编写五子棋游戏中,有存盘退出和续上盘的功能分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据解决:稀疏数组稀疏数组介绍当一个数组中大部门元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组稀疏数组的处理方式是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模如下图:左边是原始数组,右边是稀疏数组代码show原创 2021-06-08 02:00:01 · 364 阅读 · 0 评论 -
Java数组08:冒泡排序
Java数组08:冒泡排序冒泡排序冒泡排序无疑是最为出名的排序算法之一,总共有八大排序![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rkhbiyIt-1622982315642)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210606201208647.png)]冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人尽皆知我们看到嵌原创 2021-06-08 01:59:52 · 358 阅读 · 0 评论 -
Java数组07:Arrays类讲解
Java数组07:Arrays类讲解Arrays类数组的工具类:java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数组对象进行一些基本的操作查看JDK帮助文档Arrays的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用使用对象来调用(注意:是 不用 而不是 不能)具有如下常用功能给数组赋值:通过fill方法对数组排序:通过sor方法,按升序比较数组原创 2021-06-08 01:59:43 · 384 阅读 · 0 评论 -
Java数组06:二维数组
Java数组06:二维数组多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组二维数组int a[][] = new int[2] [5];解析:以上二维数组a可以看成一个二行五列的数组思考:多维数组的使用?num[1] [0];代码showdemo01:public class ArrayDemo05 { public static void main(String[] args) {原创 2021-06-08 01:59:34 · 252 阅读 · 0 评论 -
Java数组05:数组的使用
Java数组05:数组的使用数组使用普通的for循环for-each循环数组作方法入参数组作返回值代码showdemo01:public class ArrayDemo03 { public static void main(String[] args) { int[] arrays = {1, 2, 3, 4, 5}; //打印全部的数组元素 for (int i = 0; i < arrays.length; i++) {原创 2021-06-08 01:59:20 · 254 阅读 · 0 评论 -
Java数组04:下标越界及小结
Java数组04:下标越界及小结数组的四个基本特点其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型数组中的元素可以是任何数据类型,包括基本类型和引用类型数据变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的数组边界下标的合法区间:[0,length-1],如果越界就会报错publi原创 2021-06-07 09:19:49 · 303 阅读 · 0 评论 -
Java数组03:三种初始化及内存分析
Java数组03:三种初始化及内存分析内存分析Java内存分析写代码画图分析内存三种初始化静态初始化int[] a = {1,2,3};Man[] mans = {new Man(1,1),new Man(2,2)};动态初始化int[] a = new int[12];a[0] = 1;a[1] = 2;数组的默认初始化数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化原创 2021-06-07 09:19:42 · 98 阅读 · 0 评论 -
Java数组02:数组的声明和创建
Java数组02:数组的声明和创建数组声明创建首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:dataType[] arrayRefVar; //首选的方法或dataType arrayRefVar[]; //效果相同,但不是首选方法Java语言使用new操作符来创建数组,语法如下:dataType[] arrayRefVar = new dataType[arraySize];数组的元素是通过索引访问的,数组索引从0开始获取数组长度:ar原创 2021-06-07 09:19:35 · 165 阅读 · 0 评论 -
Java数组01:什么是数组
Java数组01:什么是数组数组大纲1.数组概述2.数组声明创建3.数组使用4.多维数组5.Arrays类6.稀疏数组数组的定义数组是相同类型数据的有序组合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成其中,每一个数据称做一个数组元素,每个数组元素可以通过一个下标来访问他们...原创 2021-06-07 09:19:28 · 122 阅读 · 0 评论 -
Java方法06:递归讲解
Java方法06:递归讲解递归A方法调用B方法,我们很容易理解。递归就是:A方法调用A方法!就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常将一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复运算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限组合。递归结构包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法原创 2021-06-07 09:19:19 · 194 阅读 · 1 评论 -
Java方法05:可变参数
Java方法05:可变参数可变参数JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后面加一个省略号(…)一个方法中中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在他之前声明代码showdemo01:public class Demo05 { public static void main(String[] args) { printMax(); printMax(1,3,原创 2021-06-07 09:19:12 · 101 阅读 · 0 评论 -
Java方法04:命令行传递参数
Java方法04:命令行传递参数命令行传参有时候你希望运行一个程序时候再传递给他消息。这要靠传递命令行参数给main()函数实现示例:public class CommanLine { public static void main(String[] args) { for(int i=0;i < args.length;i++) { System.out.println(“args[”+i+"]:"+args[i]); } }}代码sho原创 2021-06-07 09:19:04 · 252 阅读 · 0 评论 -
Java方法03:方法的重载
Java方法03:方法的重载方法的重载重载就是在一个类中,有相同的函数名称,但形参不同的函数方法的重载的规则:方法名必须相同参数列表必须不同(个数不同,或类型不同,参数排列顺序不同等)方法的返回类型可以相同也可以不相同仅仅返回类型不同不足以成为方法的重载实现理论:方法名相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错代码showdemo01:public class Demo03 { publi原创 2021-06-07 09:18:56 · 126 阅读 · 0 评论 -
Java方法02:方法的定义和调用
Java方法02:方法的定义和调用方法的定义Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含如下语法:方法包含一个方法头和方法体。下面是一个方法的所有部分:修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void方法名:是方法的实际名称原创 2021-06-07 09:18:49 · 115 阅读 · 0 评论 -
Java方法01:什么是方法?
Java方法02:方法的定义和调用方法的定义Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含如下语法:方法包含一个方法头和方法体。下面是一个方法的所有部分:修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void方法名:是方法的实际名称原创 2021-06-07 09:18:39 · 127 阅读 · 0 评论 -
Java流程控制12:打印三角形及Debug
Java流程控制12:打印三角形及Debug代码showdemo01:public class TestDemo { public static void main(String[] args) { //打印三角形 5行 for (int i = 0; i <= 5; i++) { for (int j = 5; j >= i; j--) { System.out.print(" ");原创 2021-06-06 08:41:22 · 112 阅读 · 0 评论 -
Java流程控制11:break、continue、goto
Java流程控制11:break、continue、gotobreak continuebreak在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环体中剩余的语句(break语句也在switch语句中使用)continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定关于goto关键字goto关键字很早就在程序设计语言中出现。尽管goto仍然是Java的一个保留字,但并未在语言中得到正式使原创 2021-06-06 08:41:13 · 253 阅读 · 0 评论 -
Java流程控制10:增强for循环
Java流程控制10:增强for循环增强for循环这里我们先只是见一面,做个了解,之后数组我们重点使用Java5引入了一种主要用于数组或集合的增强型for循环Java增强for循环语法格式如下:for(声明语句:表达式) {//代码句子}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等表达式:表达式是要访问的数组名,或者是返回值为数组的方法代码showdemo01public class原创 2021-06-06 08:41:03 · 105 阅读 · 0 评论 -
Java流程控制09:打印九九乘法表
Java流程控制09:打印九九乘法表代码showdemo01:public class ForDemo04 { public static void main(String[] args) { //1.我们先打印第1列,这个大家应该都会 //2.我们把固定的1再用一个循环包起来 //3.去掉重复项,i <= j //4.调整样式 for (int j = 1; j <= 9; j++) {原创 2021-06-06 08:40:56 · 141 阅读 · 0 评论