![](https://img-blog.csdnimg.cn/590c69967d3541f6ab39bd5f99065dbf.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
有关Java学习的博客
晓风残月( ̄ε(# ̄)~
这个作者很懒,什么都没留下…
展开
-
修改Jar包中的class文件
修改已经打包的Jar包原创 2022-09-15 15:45:50 · 3496 阅读 · 0 评论 -
37、Java基础之异常
异常Exception(异常):软件程序在运行过程中遇到,用户输入不符合要求、程序要打开某的文件,不存在或者文件格式不对,读取数据库,数据为空。程序跑着,内存或硬盘满了。遇到这些文件找不到、网络连接失败、非法参数等异常问题,它影响了正常的程序执行流程。怎样才能让程序合理处理,不至于程序崩溃。异常分类检查性异常:用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常::运行时异常是可能被程序员避免的异常。与检原创 2022-02-17 17:42:46 · 80 阅读 · 0 评论 -
36、Java基础之内部类
内部类在一个类的内部在定义一个类,如,A类中定义一个B类1、 则B类相对A类来说就称为内部类2、A类相对B类来说就是外部类了内部类分类1.成员内部类⒉静态内部类3.局部内部类4.匿名内部类内部类实例public class C12NeiBuLei { public static void main(String[] args) { /** * 通过这个外部类来实例化内部类 */ Outer out原创 2022-02-14 17:56:02 · 52 阅读 · 0 评论 -
35、Java基础之接口
接口普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有!接口:只有规范!自己无法写方法~专业的约束! 约束和实现分离:面向接口编程接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能.….”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言原创 2022-02-14 17:53:41 · 55 阅读 · 0 评论 -
34、Java基础之抽象类
抽象类abstract修饰符可以用来修饰方法也可以修饰类,修饰方法,那么该方法就是抽象方法;修饰类,那么该类就是抽象类。抽象类中可以没有抽象方法,但有抽象方法的类一定要声明为抽象类。抽象类,不能使用new关键字来创建对象,它是用来让子类继承的。抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的。子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类。public abstract class C10ChouXiangLei { /**原创 2022-02-14 16:11:17 · 58 阅读 · 0 评论 -
33、Java基础之static
static非静态方法可以直接调用 静态 和 非静态 的方法静态方法1、可以直接调用静态的方法2、调用非静态的方法需要通过新建对象才可以完成添加静态导入包后 可以直接当作定义的变量使用import static java.lang.Math.random;import static java.lang.Math.PI;System.out.println(random());System.out.println(PI);由于是静态变量,可以通过 类名.属性名 直接访问非静态要原创 2022-02-14 16:07:50 · 54 阅读 · 0 评论 -
32、Java基础之多态
多态多态注意事项:1.多态是方法的多态,属性没有多态2.父类和子类,有联系类型转换异常! classCastException !3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son( );以下没有多态1、 static方法,属于类,它不属于实例2、final常量;3、 private方法;同一方法根据发送对象的不同采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多多态存在的条件有原创 2022-02-14 16:03:12 · 142 阅读 · 0 评论 -
31、Java基础之方法的重写
方法重写注意:构造方法不能重写重写:需要有继承关系,子类重写父类的方法!1.方法名必须相同2.参数列表列表必须相同3.修饰符:范围可以扩大但不能缩小: public > Protected > Default > private4.抛出的异常: 范围,可以被缩小,但不能扩大; ClassNotFoundException > Exception(大)重写,子类的方法和父类必要一致;方法体不同!为什么需要重写:父类的功能,子类不一定需要,或者不一定满足原创 2022-02-14 00:01:50 · 80 阅读 · 0 评论 -
30、Java基础之继承
继承idea中使用Ctrl + H 查看继承树继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。extands的意思是“扩展”。子类是父类的扩展。JAVA中类只有单继承,没有多继承! (往上数,只有一个爹)继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。子类和父类之间,从意义上讲应该具有"is a"的关系.子类原创 2022-02-14 00:02:45 · 57 阅读 · 0 评论 -
29、Java基础之封装
封装该露的露,该藏的藏1、程序设计尽量“高内聚,低耦合”。2、高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;3、低耦合:仅暴露少量的方法给外部使用。封装(数据的隐藏,也就是说封装,大多数是对属性而言)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。记住这句话就够了:属性私有,get/set封装的意义1、提高程序的安全性,保护数据2、隐藏代码的实现细节3、统一接口4、系统可维护增加了封装实例实例类public原创 2022-02-14 00:03:32 · 60 阅读 · 0 评论 -
28、Java基础之面向对象
面向对象面向过程思想1、步骤清晰简单,第一步做什么,第二步做什么…2、面向过程适合处理一些较为简单的问题面向对象思想1、分类的思维模式,先思考解决问题需要哪些分类,再对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。2、面向对象适合处理复杂的问题,适合处理需要多人协作的问题!3、对描述复杂的事物,为宏观上把握、整体分析,要用面向对象的思路来分析整个系统。4、但是,对微观操作,仍要用面向过程的思路处理。什么是面向对象1、面向对象编程(Object-Orien原创 2022-02-13 23:37:14 · 262 阅读 · 0 评论 -
27、Java基础之稀疏数组
稀疏数组需求:编写五子棋游戏中,有存盘退出和续上盘的功能。分析问题:因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。解决:稀疏数组数组中大部分为同一值的数组时,可用稀疏数组来保存。稀疏数组的处理方式是:1、记录数组一共有几行几列,有多少个不同值2、把具有不同值的元素和行列及值记录在一个小规模的数组中,用来缩小程序规模如下图:左边是原始数组,右边是稀疏数组稀疏数组实例public class B9XiShuShuZu { public原创 2022-02-13 16:39:05 · 378 阅读 · 0 评论 -
26、Java基础之数组的简单应用-冒泡排序
冒泡排序1、最为出名的排序算法之一,总共有八大排序2、冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较3、两层嵌套循环,该算法的时间复杂度为O(n2)代码import java.util.Arrays;public class B8ManPaoPaiXu { /** * 冒泡排序 * 1、比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置 * 2.每一次比较,都会产生出一个最大,或者最小的数字; * 3。下原创 2022-02-13 16:34:13 · 70 阅读 · 0 评论 -
25、Java基础之数组Arrays类
Arrays类Arrays类简介1、数组的工具类java.util.Arrays2、数组对象本身没有什么方法可以供我们调用,但API中提供了一个工具类Arrays3、用Arrays可以对数据对象进行一些基本的操作。4、根据JDK帮助文档,Arrays类中的方法都是static修饰的静态方法,使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用”而不是“不能")Arrays有以下常用功能:1、给数组赋值:通过fill方法。2、对数组排序:通过sort方法,按升序原创 2022-02-13 16:31:20 · 113 阅读 · 0 评论 -
24、Java基础之多维数组
多维数组多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。int a[][] = new int[2][5]; //以上二维数组a 可以看成一个两行五列的数组。二维数组实例public class B6DuoWeiShuZu { public static void main(String[] args) { //[4][2] /* 1,2 array[0]原创 2022-02-13 16:25:02 · 331 阅读 · 0 评论 -
23、Java基础之简单的内存分析
Java中内存大致分类创建数组在内存中的过程分析原创 2022-02-13 16:20:48 · 55 阅读 · 0 评论 -
22、Java基础之数组
数组数组是相同数据类型(数据类型可以为任意类型)的有序集合数组中的每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.数组也是对象。数组元素相当于对象的成员变量数组长度的确定的,不可变的。如果越界,则报:ArraylndexOutofBounds数组声明创建必须先声明数组变量,才能使用数组的声明dataType[ ] arrayRefVar; //首选的方法或dataType arrayRefVar[]; //效果相同,但不是首选方法Jav原创 2022-02-13 11:54:45 · 230 阅读 · 0 评论 -
21、Java基础之递归
递归递归就是:A方法调用A方法!(自己调用自己)利用递归可以用简单的程序来解决一些复杂的问题。它常把大型复杂的问题,转化为与原问题相似,但规模较小的问题。递归只需少量的程序就可描述出解题过程所需要的多次重复计算,减少了代码量。递归的能力,就是用有限的语句来定义对象的无限集合。递归结构包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归体:什么时候需要调用自身方法。递归实例public class B4DiGui { public static void原创 2022-02-13 11:27:10 · 77 阅读 · 0 评论 -
20、Java基础之方法的可变参数
可变参数JDK 1.5开始,Java支持传递同类型的可变参数给一个方法。在方法声明中,在指定参数类型后加一个省略号(…)。一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。可变参数实例public class B3KeBianCanShu { public static void main(String[] args) { /** * 新建对象 * 通过 对象.方法名原创 2022-02-13 11:20:50 · 162 阅读 · 0 评论 -
19、Java基础之方法重载
方法的重载重载就是在一个类中,有相同的函数名称,但形参不同的函数。(同名,不同形参)方法的重载的规则:1、方法名称必须相同。 2、参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)3、方法的返回类型可以相同也可以不相同。4、仅仅返回类型不同不足以成为方法的重载。实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。重载实例 /** * 比大小 */原创 2022-02-13 11:09:58 · 196 阅读 · 0 评论 -
18、Java基础之Java的方法
1.Java的方法Java方法是语句的集合,它们在一起执行一个功能,类似于其它语言的函数方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。设计方法时,最好保持方法的原子性,一个方法只完成1个功能,有利于后期的扩展。Java定义一个方法包含以下语法:修饰符 返回值类型 方法名(参数类型 参数名){ --- 方法体 --- return原创 2022-02-12 21:01:47 · 61 阅读 · 0 评论 -
17、Java基础之循环结构(while、do while 、for、for each)
循环结构 while循环while是最基本的循环,它的结构为:while(布尔表达式) { //循环内容}只要布尔表达式为true,循环就会一直执行下去。大多数情况是会让循环停止下来的,但需要一个让表达式失效的方式来结束循环。少部分情况需要循环一直执行,比如服务器的请求响应监听等。死循环循环条件一直为true就会造成无限循环【死循环】,编程中应避免死循环。死循环会影响程序性能或者造成程序卡死奔溃! do...while循环while语句,不满足条件,不能进入循环。原创 2022-02-12 17:51:00 · 169 阅读 · 0 评论 -
16、Java基础之顺序结构和选择结构(if 和switch)
顺序结构JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。选择结构 if单选择结构 先是否可行,然后才去执行,这个过程用if语句表示if(布尔表达式){ //如果布尔表达式为true将执行的语句} if双选择结构if(布尔表达式){/如果布尔表达式的值为true}else{//如果布原创 2022-02-12 17:35:37 · 77 阅读 · 0 评论 -
15、Java基础之键入操作
键入操作Scanner对象使用java.util.Scanner 工具类(Scanner类)获取用户的输入。java.util.Scanner 是Java5更新的详见java.util包详解_雨里去的博客-CSDN博客_java.utilJava的实用工具类库java.util包在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、原创 2022-02-12 17:10:40 · 867 阅读 · 0 评论 -
14、Java基础之输出操作
输出操作 System.err和System.out out:“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:System.out.println(data);err:“标准”错误输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)原创 2022-02-12 16:39:33 · 167 阅读 · 0 评论 -
13、Java基础之使用idea生成 JavaDoc 文档
使用IDEA生成 JavaDoc 文档 1、点击 Tools-> Generate JavaDoc,这样会打开生成 javadoc 文档的配置页面2、配置好后点击生成,在相应的文件夹查看-encoding utf-8 -charset utf-8原创 2022-02-12 16:34:03 · 151 阅读 · 0 评论 -
12、Java基础之命令行生成 JavaDoc 文档
JavaDOCjavadoc命令是用来生成自己API文档的参数信息@author 作者名@version 版本号@since指明需要最早使用的jdk版本@param参数名@return返回值情况@throws 异常抛出情况 通过命令行 javadoc 参数 生成 JavaDoc 文档 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e23be087bf984ca9b39a86c62bfa7e2d.png?x-oss-process=i原创 2022-02-12 16:27:12 · 103 阅读 · 0 评论 -
11、Java基础之包机制
包机制为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。包语句的语法格式为:package pkg1[. pkg2[. pkg3..]];工作中,一般利用公司域名倒置作为包名;为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import”语句可完成此功能import package1[.package2...].(classname|*);//导入这个包下所有的类 .*import com. kuang.base.*;...原创 2022-02-12 16:16:41 · 55 阅读 · 0 评论 -
10、Java基础之运算符
Java中的运算符一、Java中运算符表算术运算符:+,-,*,l, %,++,–赋值运算符=关系运算符:>,<,>=,<=,==,!= , instanceof逻辑运算符: &&,||,!位运算符: &,|,^,~,>>,<<, >>>(了解!! ! )条件运算符?∶扩展赋值运算符:+=,-=,*=,/=二、Java中运算符实例算术运算符//二元运算符//ctrl + D:复制当前行到原创 2022-02-12 15:05:42 · 358 阅读 · 0 评论 -
9、Java基础之常量
常量常量(Constant):初始化(initialize)后不能再改变 值! 不会变动的值。常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变final 常量名=值;final double PI=3.14;常量名一般使用大写字符。常量实例public class A4ChangLiang { //static、final 、public 、private 等均是修饰符,在程序中不存在先后顺序 final public stat原创 2022-02-12 14:51:50 · 86 阅读 · 0 评论 -
IntelliJ IDEA右键无法创建Java Class文件
在进行测试时需要创建包下包,但是创建完成后无法新建 XXX.java 的类文件经过网上查找资料,找到了解决方法1、右击项目 —> 选择 Open Module Settings2、先选择对应的 文件夹 long —> 在点击Sources —> 点击Apply —> OK3、这样就可以进行 XXX. java 类的创建...原创 2022-02-09 10:52:22 · 921 阅读 · 0 评论 -
java编译与反编译
1、编译新建txt文件,编写测试代码public class test { public static void main(String[] args) { System.out.println("Hello world!"); }}修改 .txt 后缀为 .java 并保存修改在地址栏输入 cmd + 空格 点击 Enter 进入 cmd 命令行窗口使用 javac - test.java 编译 test 程序...原创 2022-01-29 22:53:11 · 123 阅读 · 0 评论 -
Integer与int 的比较(Java基础)
Integer 是int的包装类,是一个类,可将int这样的基本类型转换为对象Int 是基本数据类型,是一种数据类型在Integer的源码中,我们可以看到一个私有的静态类,叫做整形缓存。就是用来缓存某些整型值的,它默认将-128 ~ 127之间数字封装成对象,并放进一个常量池中,当定义类似于Integer a = 127时,由于a的值在默认范围之内,因此a就可以直接从这个常量池中取对象即可,不需要重新new。...原创 2022-01-25 15:47:37 · 1778 阅读 · 0 评论 -
通过异或运算交换两数的值
1、异或运算简介异或运算可以理解为1、同零异一2、无进位相加异或运算满足的定律N ^ 0 = NN ^ N = 0满足 交换律 和 结合律a ^ b = b ^ aa ^(b ^ c) = ( a ^ b) ^ c一堆值进行异或运算,产生的结果,和异或运算的顺序无关2、通过异或运算交换两数的值/** * 假设此时 arr[i] = 甲, arr[j] = 乙 * arr[i] = arr[i] ^ arr[j]; 此时 arr[i] = 甲 ^ 乙 ,原创 2022-01-25 15:40:53 · 462 阅读 · 0 评论 -
8、Java基础之变量
变量变量是什么:就是可以变化的量!Java是一种强类型语言,每个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和 作用域。type varName [=value] [i,varName[=value]}] ;//数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量。注意事项:每个变量都有类型,类型可以是基本类型,也可以是引用类型。变量名必须是合法的标识符。变量声明是一条完整的语句,因此每一个声明都必须以分号结束变量可依据原创 2022-01-20 17:30:43 · 318 阅读 · 0 评论 -
7、Java基础之基本数据类型间的转换
数据类型转换由于Java是强类型语言,所以要进行有些运算的时候的,不同类型的数据要先转化为同一类型,然后进行运算。需要用到类型转换低------------------------------------------------------->高byte,short,char ---> int ---> long ---> float ---> double类型转化1.强制转换转换发生的条件 :由高类型 —> 低类型转换格式 : (低类型)原创 2022-01-20 17:12:40 · 76 阅读 · 0 评论 -
6、Java基础之数据类型
数据类型Java数据类型 1、基本类型 2、引用类型基本数据类型分为1、数值类型(a)整数类型<1>byte占1个字节,范围 -128 ~ 127 (2^8)<2>short占2个字节,范围 -32768 ~ 32767 (2^16)<3>int 占4个字节,范围 -2147483648 ~ 2147483647 (2^32)<4>long占8个字节,范围 -9223372036854775808 ~ 923372036854775原创 2022-01-20 16:24:54 · 440 阅读 · 0 评论 -
5、Java基础之标识符
标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合不能使用关键字作为变量名或方法名。标识符是大小写敏感的合法标识符举例: age、$salary._value、__1_value非法标识符举例:123abc、-salary、#abc可以使用中文命名,但是一般不建议这样原创 2022-01-20 15:43:16 · 84 阅读 · 0 评论 -
4、Java基础之关键字
Java关键字Java语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。abstract表明类或者成员方法具有抽象属性assert断言,用来进行程序调试boolean基本数据类型之一,声明布尔类型的关键字break提前跳出一个块byte基本数据类型之一,字节类型case用在swi原创 2022-01-20 15:37:36 · 56 阅读 · 0 评论 -
3、Java基础之注释
注释Java 支持三种注释方式。前两种分别是 // 和 /* /,第三种被称作说明注释(文档注释),它以 /* 开始,以 */结束//单行注释/*多行注释*//** * 文档注释 */当然还可以是有趣的注释 /*** * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ * │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │原创 2022-01-20 14:54:19 · 176 阅读 · 0 评论