
JavaSE 入门学习笔记
Java 全栈 KuangStudy 技术专线之JavaSE 入门学习笔记
无明之徒
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。
展开
-
Java面向对象之内部类
内部类内部类就是在一个类的内部再定义一个类。比如,A 类中定义一个 B 类,那么 B 类相对 A 类来说就称为内部类,而 A 类相对 B 类来说就是外部类了。1、成员内部类2、静态内部类3、局部内部类package oop.demo14;/** * 内部类 * 内部类就是在一个类的内部再定义一个类。比如,A 类中定义一个 B 类, * 那么 B 类相对 A 类来说就称为内部类,而 A 类相对 B 类来说就是外部类了。 * 1、成员内部类 * 2、静态内部类 * 3、局部内部类原创 2021-05-12 09:48:55 · 165 阅读 · 0 评论 -
Java异常之自定义异常
自定义异常类自定义异常1、使用 Java 内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承 Exception 类即可。2、在程序中使用自定义异常类,大体可以分为以下几个步骤:创建自定义异常类在方法中通过 throw 关键字抛出异常对象如果在当前抛出异常的方法中处理异常,可以使用 try-catch 语句捕获异常并处理;否则在方法的声明处通过 throws 关键字指明要抛出给方法调用者的异常,继续进行下一步操作在出现原创 2021-05-12 09:46:04 · 3691 阅读 · 0 评论 -
Java异常之异常处理机制
异常处理机制1、抛出异常2、捕获异常3、异常处理五个关键字:try、catch、finally、throw、throws注意:假设要捕获多个异常:需要按照层级关系(异常体系结构) 从小到大!package exception;/** * Java 捕获和抛出异常: * 异常处理机制 * 1、抛出异常 * 2、捕获异常 * 3、异常处理五个关键字 * try、catch、finally、throw、throws * 注意:假设要捕获多个异常:需要按照层级关系(异常体系结构) 从小原创 2021-05-12 09:17:27 · 153 阅读 · 0 评论 -
Java异常之 Error 和 Exception
简单了解 Java 异常1、实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求;你的程序要打开某个文件,这个文件可能不存在或者文件格式不对;你要读取数据库的数据,数据可能是空的等;我们的程序在跑着,内存或硬盘可能满了,等等等等。2、软件程序在运行过程中,可能遇到刚刚提到的这些异常问题,我们叫异常,英文是 Exception,意思是例外。这些例外情况,或者叫异常,怎么让我们写的程序做出合理的处理,而不至于程序奔溃,那我们就需要捕获异常。3、异常指程序运行原创 2021-05-12 09:11:10 · 304 阅读 · 0 评论 -
Java设计模式之单例模式_Demo
单例模式初识:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。知识透析意图:保证一个类仅有一个实原创 2021-05-11 16:46:05 · 228 阅读 · 0 评论 -
Java设计模式之单例模式_懒汉式
单例模式初识:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。知识透析意图:保证一个类仅有一个实原创 2021-05-11 15:58:56 · 330 阅读 · 0 评论 -
Java设计模式之单例模式_饿汉式
单例模式初识:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。知识透析意图:保证一个类仅有一个实原创 2021-05-11 15:46:40 · 187 阅读 · 0 评论 -
Java面向对象之接口
接口的定义与实现初识:1、普通类:只有具体实现,声明类的关键字是 class2、抽象类:具体实现和规范(抽象方法)都有,声明抽象类的关键字是 abstract3、接口:只有规范,声明接口的关键字是 interface自己无法写方法~ 专业的约束!工作中更多的是约束和实现分离:面向接口编程~理解:1、接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。 如果你是飞机,则必须能飞;如果你是汽车,则必须能跑。2、接口的本质是契约,就像我们的法律一样,原创 2021-05-11 14:15:07 · 190 阅读 · 0 评论 -
Java面向对象之抽象类
java 抽象类java 抽象类:1、abstract 修饰符可以用来修饰方法,也可以修饰类,如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类2、抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类3、抽象类不能使用 new 关键字来创建对象,它是用来让子类继承的4、抽象方法只有方法的声明,没有方法的实现,它是用来让子类实现的5、子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类注意:1、不能 new 这个抽象类,只能靠子类原创 2021-05-11 10:01:24 · 143 阅读 · 0 评论 -
Java面向对象之 static 关键字
static 关键字详解java static 关键字:静态方法在当前类中可直接进行调用或者通过“类名.方法名”调用非静态方法需要实例化对象进行调用非静态方法可以调用静态方法实例:package oop.demo11;/** * static关键字详解 * 静态方法在当前类中可直接进行调用或者通过“类名.方法名”调用 * 非静态方法需要实例化对象进行调用 * 非静态方法可以调用静态方法 */public class Student { private stati原创 2021-05-11 09:54:56 · 183 阅读 · 0 评论 -
Java面向对象之 instanceof 关键字
入口java面向对象三大特性:封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。继承:继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。多态:同一个引用类型,使用不同的实例,执行不同的操作。方法重写是实现多态的基础。java instanceof 关键字:instanceof 关键字判断一个对象是什么类型System.out.pr原创 2021-05-11 09:44:27 · 174 阅读 · 0 评论 -
Java面向对象之方法重写
重写重写:重写需要有继承关系,子类重写父类的方法!1、方法名必须相同2、参数列表必须相同3、修饰符:范围可以扩大public > Protected > Default > private4、抛出的异常:范围可以被缩小,但不能扩大ClassNotFoundException ---> Exception(大)5、注意:重写,子类的方法和父类必须一致,方法体不同!注意:重写,子类的方法和父类必须一致,方法体不同!快捷键:Alt + Insert 选择 o原创 2021-05-11 09:05:37 · 312 阅读 · 0 评论 -
Java面向对象三大特性之多态
入口java面向对象三大特性:封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。继承:继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。多态:同一个引用类型,使用不同的实例,执行不同的操作。方法重写是实现多态的基础。java面向对象三大特性之多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式一个对象的实际类型是确定的,原创 2021-05-10 12:27:44 · 184 阅读 · 0 评论 -
Java面向对象三大特性之继承
入口super注意点:1、super调用父类的构造方法,必须在构造方法的第一个2、super必须只能出现在子类的方法或者构造方法中3、super和this不能同时调用构造方法super 和 this 的对比:1、代表的对象不同: this:本身调用着这个对象 super:代表父类对象的引用2、前提: this:没有继承也可以使用 super:只能在继承条件下才可以使用3、构造方法: this(); 本类的构造 super(); 父类的构造实例: pa原创 2021-05-10 12:21:09 · 117 阅读 · 0 评论 -
Java面向对象三大特性之封装
入口java面向对象三大特性:封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。继承:继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。多态:同一个引用类型,使用不同的实例,执行不同的操作。方法重写是实现多态的基础。java面向对象三大特性之封装(数据的隐藏):通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信原创 2021-05-10 12:11:41 · 319 阅读 · 0 评论 -
Java设计模式之迭代器
学习DemoJava设计模式之迭代器使用 HashMap 来存储学生信息:键为学生学号,值为姓名毕业时,需要用户输入学生的学号,并根据学号进行删除操作码上行动代码如下(示例):import java.util.HashMap;import java.util.Iterator;import java.util.Scanner;/** * Java设计模式之迭代器 * 使用 HashMap 来存储学生信息【键为学生学号,值为姓名】 * 毕业时,需要用户输入学生的学号,并根据学号进行原创 2021-05-10 11:58:29 · 196 阅读 · 0 评论 -
Java数组之稀疏数组
学习Demo稀疏数组实例:五子棋游戏。数字1表示黑棋,数字2表示白棋,数字0表示空闲点位,棋盘为 11行 * 11列需求:编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据【有效数据只有黑白棋】解决:稀疏数组码上行动代码如下(示例):package array;/** * 稀疏数组 * 实例:五子棋游戏。数字1表示黑棋,数字2表示白棋,数字0表示空闲点位,棋盘为 11行 * 11列 * 1. 需原创 2021-05-10 11:56:00 · 145 阅读 · 0 评论 -
Java数组之冒泡排序
学习Demo冒泡排序【重点:闭着眼睛都应该会写】冒泡排序无疑是最为出名的排序算法之一,总共有八大排序。两层循环,外层冒泡轮数,里层依次比较,江湖中人尽皆知。由于嵌套循环,冒泡排序的时间复杂度高:O(n2)思考:如何优化?如果数组中的几个数已经排好序了,就没必要再去全部比较一轮了码上行动代码如下(示例):package array;import java.util.Arrays;/** * 冒泡排序【重点:闭着眼睛都应该会写】 * 冒泡排序无疑是最为出名的排序算原创 2021-05-10 11:51:53 · 318 阅读 · 0 评论 -
Java数组之Arrays类
学习Demo数组的工具类 java.util.ArraysArrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用"而不是"不能")具有以下常用功能给数组赋值:通过 fill 方法对数组排序:通过 sort 方法【升序】比较数组:通过 equals 方法比较数组中元素值是否相等查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作码上行动代码如下(示例原创 2021-05-10 11:48:53 · 214 阅读 · 0 评论 -
Java数组之多维数组
学习Demo码上行动代码如下(示例):package array;/** * 多维数组:数组中嵌入数组 */public class ArrayDemo3 { public static void main(String[] args) { /* 1,2 array[0] 2,3 array[1] 3,4 array[2] 4,5 ar原创 2021-05-10 11:42:34 · 107 阅读 · 0 评论 -
Java数组之进阶篇
学习Demo码上行动代码如下(示例):package array;/** * 数组进阶篇 */public class ArrayDemo2 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //For-Each /*for (int array : arrays) { System.out.println(arr原创 2021-05-10 11:39:35 · 175 阅读 · 0 评论 -
Java数组之基础篇
学习Demo码上行动代码如下(示例):package array;/** * 数组基础篇 */public class ArrayDemo1 { public static void main(String[] args) { //定义数组 int[] arrays = {1,2,3,4,5}; //遍历 for (int i = 0; i < arrays.length; i++) {原创 2021-05-10 11:35:09 · 124 阅读 · 0 评论 -
Java基础之 contains 简单用法
学习 Democontains方法:用于判断list集合是否包含某个元素containsKey方法:用于判断Map键中是否包含某个键containsValue方法:用于判断map中是否包含某个value值码上行动代码如下(示例):import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * contains方法用于判断list集合是否包含某个元原创 2021-03-16 16:55:20 · 1668 阅读 · 0 评论 -
Java基础之 List 集合简单练习
学习 Demo码上行动代码如下(示例):import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * List 集合 * @Author Hateyes * @Date 2020-07-24 17:54 */public class ListDemo { public static void main(String[] args) { //定义集合原创 2021-03-16 16:51:53 · 240 阅读 · 0 评论 -
Java基础之 Scanner 扫描器
学习 Demo:Demo1Scanner类:Java的输入类Scanner类既可以读字符,也可以读字符串和整数码上行动:Demo1代码如下(示例):import java.util.Scanner;/** * Java的输入类 * Scanner类既可以读字符,也可以读字符串和整数 * @Author Hateyes * @Date 2020-07-25 10:37 */public class ScannerDemo { public static void main原创 2021-03-16 13:54:11 · 1396 阅读 · 0 评论 -
Java基础之 Math UUID Random 随机数
学习 DemoMath类:random方法获取随机数UUID类:randomUUID方法生成UUIDRandom类:实例化一个Random对象创建一个随机数生成器码上行动代码如下(示例):import java.util.Random;import java.util.UUID;/** * Math类【random方法获取随机数】 * UUID类【randomUUID方法生成UUID】 * Random类【实例化一个Random对象创建一个随机数生成器】 * @Author Ha原创 2021-03-16 13:41:59 · 708 阅读 · 0 评论 -
Java基础之 IF 语句
学习 Demo码上行动代码如下(示例):import java.util.Scanner;/** * IF 语句 * @Author Hateyes * @Date 2020-07-25 13:58 */public class IfDemo { public static void main(String[] args) { System.out.println("******** 考生成绩查询系统 ********"); Scanner原创 2021-03-16 13:39:04 · 115 阅读 · 0 评论 -
Java方法之递归思想
学习 Demo递归【基于栈】:A方法调用A方法(自己调用自己)递归结构包括两部分:1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。2. 递归体:什么时候需要调用自身方法。注:适用于计算量小的情况 耗时 影响性能码上行动代码如下(示例):package TestDemo;/** * 递归【基于栈】:A方法调用A方法(自己调用自己) * 递归结构包括两部分: * 1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。 * 2. 递归体:什么时候需要原创 2021-03-16 13:34:17 · 140 阅读 · 0 评论 -
Java方法之方法重载
学习 Demo方法重载一个类中,有相同的函数名称,但形参不同的函数重载规则方法名必须相同参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)方法的返回值类型可以相同也可以不同仅仅返回值类型不同不足以成为方法的重载码上行动代码如下(示例):package TestDemo;/** * 方法重载:一个类中,有相同的函数名称,但形参不同的函数 * 重载规则: * 1.方法名必须相同 * 2.参数列表必须不同(个数不同、类型不同、参数排列顺序不原创 2021-03-16 13:28:26 · 123 阅读 · 0 评论 -
Java方法之方法调用
学习 Demo码上行动代码如下(示例):package TestDemo;/** * 调用方法:对象名.方法名(实参列表) */public class Test1 { public static void main(String[] args) { int max = max(10, 20); //调用max方法(实参) System.out.println(max); } //比大小 public static i原创 2021-03-16 12:06:22 · 104 阅读 · 0 评论 -
Java方法之参数传递
文章目录学习 Demo码上行动学习 Demo码上行动代码如下(示例):package TestDemo;/** * Java参数传递 * 形参:方法声明时,方法小括号内的参数。 * 实参:调用方法时,实际传入的参数值。 */public class Test3 { public static void main(String[] args) { //实际参数:实际调用传递给它的参数 int sum = add(2, 3);原创 2021-03-16 11:34:25 · 108 阅读 · 0 评论