Java
文章平均质量分 50
本专栏是看老韩和狂神的Java基础课整理的笔记,从入门到多线程和IO流,项目基本都没有做,之后做的项目会另外整理一个专栏
小袁拒绝摆烂
没啥特别的。
展开
-
Java之反射爆破操作
首先说一下-getField/Method什么的这种不带Declared只能获取到对应public的属性/方法只有带Declared可以获取到非public的属性/方法再看不带s和带s区别不带s只获取对应的构造器/方法比如说构造器就会获取不管什么修饰符,参数类型为int,String的构造器下面具体讲解。原创 2023-01-10 11:41:13 · 3916 阅读 · 4 评论 -
Java-类加载
动态加载就是执行到需要加载类的部分发现没有对应的类,然后报错。而我们的Person就是动态加载,只有在运行到它的时候加载。Dog类也会加载,因为Dog类是静态加载。Class.forName()才会加载。静态加载就是只要没有你写的类就报错。比如这个图中可能输入的不是1。就是当这个输入是2运行到了。mao是Cat类独有方法。Cat父类Animal。原创 2023-01-08 18:31:05 · 190 阅读 · 0 评论 -
Java之class类
1.类图2.Class类对象 系统创建该class对象是通过类加载器ClassLoader的loadClass()方法生成对应类对应的class对象通过debug可以追到该方法3.对于某个类的class类对象只加载一次因为类值加载一次类加载的时机演示一下运行结果4.大概就是我们创建的对象(比如cat)这个cat对象和我们堆中Cat类对于的Class对象有联系,cat和对应的Cat类的Class对象有联系简而言之,每个对象从属于所属类的Class对象。原创 2023-01-08 11:23:41 · 1276 阅读 · 1 评论 -
Java之反射机制
传统的方式就是new 然后通过对象调用呗用properties做的话,首先肯定是获取信息读取配置文件的信息然后我们需要创建对象是吧但是这个时候new classfullpath是不行的,因为我们实际上需要的是类名而不是字符串,不能用字符串来代替类名所以你从配置文件读取的信息,不能用来创建类那该怎么办呢?这就该用到反射了。原创 2023-01-07 18:19:50 · 519 阅读 · 0 评论 -
UDP网络编程
DatagramSocket(数据报套接字)和DatagramPacket(数据报)是比较重要的两个类这样说肯定很难理解所以先看一套基本流程。原创 2023-01-04 11:26:21 · 70 阅读 · 0 评论 -
TCP网上传输文件
本篇主要是一些案列的实现。原创 2023-01-03 12:46:28 · 257 阅读 · 0 评论 -
Java之网络编程
应用案例实现思路客户端"all" }) //这里是客户端,发送hello,Server给服务端 public class Cilent {// 思路 //连接服务器 //连接成功以后返回Socket对象,赋值给socket Socket socket = new Socket(InetAddress . getLocalHost() , 9999);原创 2023-01-02 12:29:05 · 285 阅读 · 0 评论 -
Java之网络相关概念
寒假又开始更新java了,之后更新的是b站教程韩顺平老师的课,编译器我从idea换成eclipse(因为蓝桥杯只有eclipse,要先熟悉)原创 2022-12-31 17:47:23 · 574 阅读 · 0 评论 -
Java之包装类
八大包装类原创 2022-07-16 17:56:44 · 180 阅读 · 0 评论 -
Java之Arrays类
返回数组的字符串形式。原创 2022-07-18 23:54:47 · 106 阅读 · 0 评论 -
Java之注解
注解(Annotation)也被称为元数据Javase中和注释类似不影响程序逻辑但注解可以被编译运行,相当于嵌入代码的补充信息使用Annotation时要在前面加@符号,并将Annotation当成一个修饰符使用,用于修饰它支持的程序元素有三种Jdk内置的注解分别是重写限于某个方法,是重写父类方法,该注解只能用于方法过时的抑制编译警告就那种编译器会自动暴出的警告不影响程序的运行,该注解就是来使这种黄色的警告消失的一种注解@SuppressWarnings({“”,“”})“这里面是你原创 2022-07-08 19:19:21 · 107 阅读 · 0 评论 -
Java之异常处理
在程序执行过程中发生的不正常行为称为异常(开发过程的语法和逻辑错误不算)异常事件分为两大种第一种是无法用异常处理机制的第二种介绍异常处理机制针对的对象了httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。.........原创 2022-07-16 00:03:21 · 160 阅读 · 0 评论 -
Java之String类
1.String对象是用来保存字符串的,也就是一组字符序列2.字符串常量是用双引号括起来的字符序列例如"你好","12.97"等3.字符串使用Unicode编码,一个字符(不管是汉字还是字母)占两个字节4.String有多个构造器比较常用的有5.String类实现了接口Serializable(可以串行化在网络上传输)和接口Comparable(可以进行大小比较)6.String是final类,不能被其他的类继承)...........................原创 2022-07-16 22:12:00 · 1068 阅读 · 0 评论 -
Java之枚举
枚举实现方式枚举是一组常量的集合这里可以理解为枚举是一种特殊的类,里面只包含一组有限的特定对象枚举有两种实现方式,我们一一讲解原创 2022-07-06 21:32:09 · 744 阅读 · 0 评论 -
Java之Math类
Math的方法都是静态的直接Math.方法()即可调用一般都是用Math类的方法进行一些计算。原创 2022-07-18 14:44:03 · 76 阅读 · 0 评论 -
Java之类加载时机(重点)
1.创建对象实例的时候(new)2.创建子类对象实类的时候,父类也会被加载3.使用该类的静态成员变量时,该类也会加载原创 2022-07-02 20:16:34 · 1150 阅读 · 0 评论 -
抽象类设计模式
抽象类的实际设计模式为了解决代码复用性差的问题抽象类设计模式横空出世主要是不同方法只有一段不同,但是还要建立不同方法会导致代码复用性差的问题例如下面的,这时可以用抽象类的设计模式解决1.创建抽象类模板,以不同的段作为抽象方法2.创建普通方法,把相同的代码复制上,然后不同的代码调用之前创建的抽象方法3.创建子类具体重写抽象方法4.在实际应用类中,用多态来完成方法的调用(相同代码调用父类的,不同的调用子类的)如图...原创 2022-07-04 12:08:05 · 383 阅读 · 0 评论 -
Java之toString方法
Object的toString 返回值是:全类名+ @+哈希值的十六进制字类往往重写toString方法来返回对象的属性信息一般在IDEA里按alt+insert可以直接重写 重写后默认是把本类的所有对象输出,当然我们可以自己进行修改指定输出 要是对应对象有重写就调用输出没有的话最后就调用Object的......原创 2022-06-28 13:58:55 · 132 阅读 · 0 评论 -
Java之单例设计模式
设计模式是静态方法和静态属性的经典使用设计模式类似于棋局中的棋谱是优选代码结构,编程风格以及解决问题的思考方式不同模式对于不同问题类似于不同棋盘对于不同的棋谱从软件开始运行到结束运行对某个类只能存在一个对象实例,并且该类只能提供一个取得其对象实例的方法简单来说在软件运行过程中保证某一个类只有一个实例,这个类一般都是核心类该设计模式有两种(1)饿汉式(2)懒汉式叫饿汉式的原因:提前创建对象(还没用就创建)步骤1.构造器私有化(防止用户直接去new对象)2.在类的内部去创建对象3.向外部暴露出一个静态的公共方法原创 2022-07-03 12:39:34 · 105 阅读 · 0 评论 -
Java之多态数组
建立与多态之上的以编译类的类型的数组之后没有说明的属性,修饰符一般都是privatesay方法名字+年龄+特有(score/salary)这里是运行结果可以看出只要编译类型与数组的类型相同便可以存储用Person()数组储存五个变量最后输出可以看到,出现不同结果这就叫多态数组答案是向下转型哦但是可见这样其实挺麻烦的需要自己判断是不是子类然后自己向下转型所以这里用instanceOf来做一种简单的方法这里的的两个a1因为代码块执行完以后就销毁了,所以不会报错一定要先判断再向下转型...原创 2022-06-26 23:00:10 · 176 阅读 · 0 评论 -
Java之多态参数
方法定义的形参为父类类型,实参允许为子类类型举个例子吧面对一些调用子类特有的要求可以用if(instanceof)来判断以后向下转型后调用比如下面的testwork啊啊啊,我自己写出来了,一定要好好看看,我自我感觉结合的知识挺好,也理解了构造器的重大作用一个个赋值真的麻烦啊父类员工子类经理子类员工测试类运行结果...原创 2022-06-26 23:39:08 · 511 阅读 · 0 评论 -
Java之接口
接口是一种规范接口类似于抽象类接口内部只有抽象方法且可以多插入(继承)插入关键字implements(实现)接口定义关键字是interface(接口)默认方法要有default修饰,第一个就是默认方法和static 接口快速入门通过接口调用接口的方法,但是要传入的参数是插入接口的子类 子类重写接口的方法以后,可以插入接口当调用接口的方法,其实是调用传入类的对应方法 方便之处1.方法名字统一2.通过接口调用方法,直接放对象就可以调用到其对应的方法(快速入门也有案例)1.接口不能被实例化2原创 2022-07-05 00:04:49 · 436 阅读 · 0 评论 -
Java之finalize方法
finalize是回收空间的方法当你的对象没有引用的时候系统是自动调用finalize方法销毁对在堆中的空间当然你也可以写一些自己的操作,进行finalize的重写finalize也可以用alt+insert快捷键方法 也可以通过自己重写的方法重写的 finalize方法 主动调用 才会输出 实际开发一般不会运用...原创 2022-06-28 14:39:24 · 678 阅读 · 0 评论 -
Java多态之动态绑定机制
看题目,写出运行后的结果结果 40 30可能有点同学认为是30 20别慌我们继续向下看如果吧子类B的sum()删除再看输出sum()的输出子类没该方法看父类这里就有疑问了,这个getI()父类和子类都有,调用的是谁的呢这里讲一下动态绑定机制1.当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定2.当类方法(不包含main方法)调用属性时,没有动态绑定机制,用方法所在的本类的属性(main看编译类型喽)所以肯定是调子类喽,所以sum输出是30再看如果把子类sum1()删除原创 2022-06-26 11:37:18 · 156 阅读 · 0 评论 -
Java中的==运算符
==算数运算符是判断左边的值是否等于右边是的话会返回true不是的话返回false注意它的左右两边既可以是引用类型也可以是基本类型如果是基本类型的话,就是判断两侧的值是否相等如果是引用类型的话,是判断两侧的地址是否相同基本类型int float double boolean char short long byte除了这八种都是引用类型...原创 2022-06-27 22:33:11 · 904 阅读 · 0 评论 -
Java之equals关键字
equals不同于==只能判断引用类型这里是Object类里面的equals方法 判断this和你输入的对象地址是否相同(是不是同一个对象)常用的String里面的重写用法为如果字符串里的内容相同返回true,不同返回false 这里是源代码分析一下同样的int可以用Integer类来进行判断 题目......原创 2022-06-28 13:14:15 · 244 阅读 · 0 评论 -
Java零钱通项目
面向过程版本 OOP(面向对象)版本 功能类积累经验:1.当我们想杜宇某一个值进项判断从而约束时,可以想想他不正确的情况(比较好想)if(条件){报错提示 break;}if(另一个条件) {报错提示 break;}这样的代码可读性会大大增强2.OOP的特性的封装在这里体现出来了功能类写方法再通过功能类的主菜单调用各种方法最后应用,而不是在应用再写代码了而且修改比较方便,新增功能也比较方便...原创 2022-06-29 21:12:46 · 149 阅读 · 0 评论 -
main语法
main中可以直接 调用static方法和属性但是非static需要先创建对象,不管这个放在是否和这个main在同一个类可以看看我那片static方法里调用非static方法String args[]的动态传值1.在命令行里你传入的字符串可以存储到arg数组里2.IDEA中 这样进行传值...原创 2022-07-02 19:33:34 · 367 阅读 · 0 评论 -
Java之抽象类
我们定义一个父类比如说动物,细分到每一个动物我们知道他们爱吃什么但是动物的话,就有不确定性,你可能会写这是一个动物,不知道爱吃什么(明显是瞎写的,就等着继承改变这句话,来输出重写的方法,这个时候父类的方法体就显的不那么重要,甚至有点多余)这个方法不能确定怎么去实现,你又不想硬去实现这个时候就可以用到我们的抽象类(抽象方法)abstract简单来说就是没有实现的(方法体)方法抽象方法一定在抽象类中,所以也要把类改成抽象类定义方式是abstract 访问修饰符 返回类型 方法名();或者 访问修饰符 abstr原创 2022-07-03 18:55:10 · 96 阅读 · 0 评论 -
Java之代码块
修饰符可有可无写的话只能是static代码块的好处相当于构造器的补充机制观看代码可以发现构造器3个重载,每个重载都有同样的语句代码看起来冗余这时可以把相同的语句放入到一个代码块中即可如图当我们不管调用哪个构造器都会先执行代码块中的内容(代码块调用顺序优先于构造器)如图1.静态代码块加static修饰符的代码块,随着类的加载而执行,并且只会执行一次因为类只会加载一次呐具体的类在什么时候加载可以看我的《Java之类的加载时机(重点)》1.创建对象实例的时候(new)2.创建子类对象实类的时候,父类也会被加载3.原创 2022-07-02 21:39:12 · 236 阅读 · 0 评论 -
Java之断点调试(debug)
在断点调试的过程中是运行状态,所以对象是由运行状态执行的断点调试快捷键 跳入方法的解析当你在内的class调用方法时不会显示内部细节但是如果你想进入方法定义的代码观察的话就要按F7跳入方法内部,可以看方法内运行的细节shift+F8可以直接跳出方法(不显示下面的)返回主方法 、直接下一步的执行效果 步入的执行效果直接到对应的方法体中...原创 2022-06-29 11:24:16 · 177 阅读 · 0 评论 -
Java之final关键字
1.final修饰类可以使其不被继承(断子绝孙),一般是用于比较重要的类,防止其方法被重写 2.final修饰方法用来保护父类的某个方法不希望被子类重写3. 3.final修饰属性可以防止该属性被修改 修改final修饰的变量会报错4.final修饰局部变量类使用final修饰属性,不过是不能在方法体里修改其值,因为超出这个作用域它就销毁了.........原创 2022-07-03 18:25:46 · 200 阅读 · 0 评论 -
Java里static主方法引用自己类里的非static方法
先创建一个本类对象,然后再调用对象的方法原创 2022-06-27 22:22:34 · 213 阅读 · 0 评论 -
Java之类变量和类方法(static)
面向对象希望对象和属性绑定我们在主方法里定义了局部变量的count来记录加入的小孩数不太符合我们面向对象的编程思想所以我们既要使每个对象有count属性,还要使对象操作的是同一个count来计数怎么办呢这时就有static变量了我们可以这样的话该属性最大的特点就是,会被Child类的所有对象的实例共享这里我们来看类变量的的内存布局这里分两种情况如果你的jdk版本是在jdk7及之前认为是在方法区里的静态域 jdk7之后的话认为是在堆里的Class对象(随着类加载而出来的)的最后所有的child对象原创 2022-07-02 17:28:58 · 540 阅读 · 0 评论 -
Java之hashCode方法
hashCode返回对象的哈希码值hashCode()参数是对象测试图原创 2022-06-28 13:29:09 · 616 阅读 · 0 评论 -
Java之内部类
类的五大成员:属性,方法,构造器,代码块和内部类内部类字如其名就是在类的内部定义一个类这个类就叫做内部类内部类最大的特点是可以直接访问私有属性,并可以体现类与类之间的包含关系。从种类上说,内部类可以分为四类:首先是定义在外部类的成员位置上的普通内部类(没用static修饰)和静态内部类(使用static修饰)然后是定义在外部类的局部位置上(比如说方法体内)的匿名内部类(无类名)、局部内部类(有类名)我们来一个个看:在这种定义方式下,成员内部类对象依赖外部类对象而存在,即在创建一个普通内部类对象时首先需原创 2022-06-14 22:34:41 · 898 阅读 · 0 评论 -
Java之访问修饰符
1.访问修饰符java提供四种访问修饰符,用于控制方法和属性(成员变量)的访问权限四种分别是公开级别:public,对外公开受保护级别:protected,对子类和同一个包的类公开默认级别:无符号,向同一个包的类公开私有级别:private,只有类本身可以使用不对外公开2.修饰符注意事项当你定义一个类若在同包不同类下不同包只能用到对方的public方法和属性3.访问修饰符修饰类只有public和默认修饰符可以修饰类也遵循上面特点(提一下:一个java文件可以有多个类(不是内部类),但是只能有一个原创 2022-06-22 22:29:14 · 571 阅读 · 0 评论 -
算术运算符只左移和右移
1.右移左移的本质是/2int 1>>2; 1左移两位int类型四个字节,一个字节是8位00000000 00000000 00000000 00000001右移两位变为0;1/2/2=0;float类型转为int 类型直接舍弃小数位2.左移int 1原创 2022-06-17 08:46:24 · 347 阅读 · 0 评论 -
Java多态
多态方便public void show(Cat a,Fish b);public void show(Dog c,Bone d);代码复用性差让Cat和Dog为Animal子类让Fish和Bone为Food子类可以直接定义public void show(Animal a,Food b);//因为对象的多态性,可以符合1.方法的多态方法的重载和重写都体现了多态明明调用的相同方法名却可以进行不同的操作(就叫多态) 2.对象的多态编译看左边,运行看右边重点 (1)编译类型是Animal,运行类型是Do(原创 2022-06-25 00:17:25 · 126 阅读 · 0 评论 -
Java之一个java文件多个类
的确一个java文件可以定义多个类今天我们先讨论外部类不考虑内部类重点是public文件和java文件名必须相同原创 2022-06-19 17:55:26 · 1693 阅读 · 0 评论