![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaSE
文章平均质量分 83
慢慢来就好
etcEriksen
What hurts more.The pain of hard work or the pain of regret?
展开
-
深度分析HashMap的put方法源码
它还会有一个哈希运算,就是为了避免哈希冲突。何为哈希冲突?不同的key值(也就是说是不同的对象),最终得到的hash值是相同的。造成锁定到同一个索引位置。这里key即是我们传进来的new A(i),通过运行时绑定,可知调用的hashCode方法就是我们重写的因为A这个类默认是继承Object这个类的。hashCode方法是属于Object这个java类的,但是当子类重写了这个方法之后,我们每当调用这个方法,编译的时候看父类是否有这个方法,来决定是否编译的时候会报...原创 2022-03-12 17:16:32 · 1545 阅读 · 0 评论 -
JavaSE学习笔记-16
反射【重点】引入反射反射最重要的思想特点:配置文件使用传统的方法进行访问hi方法使用反射进行访问hi方法就是通过配置文件中写了 method=hi,然后把这个method读取出来即可但是当我们想要调用cry方法的时候,对于传统方法而言,我们就要改变源代码了。就是把但是对于框架中的源代码我们是不允许直接在源代码上去修改的,,所以这里引入了反射我们只需要在配置文件上修改就足够了,如图:这样就避免了修改源码,在框架的学习中 反射机制真的很...原创 2022-01-22 12:05:05 · 450 阅读 · 2 评论 -
多用户通信系统项目思路总结【内含项目源码】Java实战项目
总结一下一点心得和体会,源码直接看下面即可一开始先写一级菜单,然后写左2,对应右2,2主要是验证是否能登录成功的类。‘只有当我们登录成功之后,我们才会有3的说法以及二级菜单的说法,也就是启动线程执行二级菜单涉及到的业务,多线程有利于维护程序的并发性以及稳定流畅性。。然后就写出左3和右3,即是线程类左3客户端主要是接收右3服务端封装好的message信息,右3服务端处理完成业务逻辑。左3进行简单的输出即可。并且做到一个线程对应一个socket端口然后就是左4和右4了,主要就是管理这些.原创 2022-01-21 11:47:54 · 818 阅读 · 0 评论 -
String类概述
这个String类是被final所修饰 因此它是不能被继承的所有的类都是默认继承于object类String类有两种形式str是一个变量注意:person是变量 是引用类型new Person();这个东西是在堆上一种是通过String类创建一个变量把这个变量赋值一个字符串new出来一个对象通过引用来打印一个字符串第三种两种形式是真是假这就要看String类在内存中的布局了String的构造方法可以查看哈...原创 2021-11-11 16:59:55 · 916 阅读 · 0 评论 -
ATM系统
ATM系统:系统准备:首页设计:开户功能:开户操作:登录功能:补充一个步骤来判断当前系统如果没有任何账号该怎么办补充第五条:用户操作页 查询以及操作功能 public static void login(ArrayList<Account> accounts,Scanner scanner){ //先判断系统中是否有账号 ...原创 2021-11-19 21:12:52 · 477 阅读 · 0 评论 -
JavaSE学习笔记-15
网络网络通信IP地址IP地址就是唯一标识主机的的地址。举个例子:假如说我们想要从主机A传信息给主机B,那么我们就要有主机B的网络地址信息起到标识作用,这个地址就称之为IP地址IPV4:意思就是用4个字节内存表示一个IP地址当我们进行网络通信的时候,我们首先要知道对方的IP地址,IP地址分为IPV4和IPV6,IPV4是由4个字节标识的IP地址...原创 2022-01-18 20:51:36 · 501 阅读 · 0 评论 -
JavaSE学习笔记-14
创建文件对象的三种方式文件常用方法IO流流的分类字节流分为字节输入流和字节输出流InputStream是一个抽象类IO流分为字节流和字符流。字节流分为字节输入流和字节输出流。字符流分为字符输入流【Reader】和字符输出流【Writer】并且这三个类都是抽象类,都不可以直接进行实例化,我们只可以实例化这个些抽象类的子类。。。。举个例子:字节输出流的子类都是字节输出流。。。流和文件的关系类比一下:...原创 2022-01-16 11:49:19 · 157 阅读 · 1 评论 -
坦克大战源码 Java实战项目
1.Drawcircle类/** * 定义出来一个窗口类 */class Drawcircle extends JFrame{ //先把面板定义出来 private Mypanel mp=null; public static void main(String[] args){ Drawcircle drawcircle = new Drawcircle(); } public Drawcircle(){ //初始化面板.原创 2022-01-14 19:58:28 · 1181 阅读 · 2 评论 -
JavaSE学习笔记-13
线程(基础)程序就是我们编写的代码,然而进程是我们把代码运行起来所形成的动态的一个过程每当我们执行一个程序的时候,我们就会开启一个进程。。。当我们关闭,即是结束程序的时候,进程就会消失,就会停止。。。一个进程可以拥有多个线程任务并行:相对于两个CPU而言,多个CPU实现并行并发:一个CPU实现多个任务执行,造成一种似乎多个任务同时执行的错觉,多个任务这样执行的情景被称之为并发八个处理器表示的意思就是八核,具有八个CPU进行处理。测量当前电脑有多少核..原创 2022-01-13 16:21:36 · 269 阅读 · 0 评论 -
JavaSE学习笔记-12
泛型为什么要引入泛型?正如上面图片所示,当我们想着遍历集合并且进行对Dog进行向下转型【因为我们遍历出来的Dog编译类型都是Object,我们不可以直接调用Dog类中包含的属性方法】即:Object o=集合中的对象;【编译类型都是Object】所以我们必须进行向下转型,把dog这个对象引用的编译类型和运行类型都改为 Dog才可以但是呢?假如说我们其中在集合中不小心添加了一个猫对象,那么之后强制向下转型就会在运行之后出现异常,编译的时候编译器是不会报错的【因为输出对象的编译类型都是.原创 2022-01-11 16:08:05 · 300 阅读 · 1 评论 -
JavaSE学习笔记-11
Map接口Map接口的特点1.Map接口用于保存具有映射关系的数据:K-VSet接口也是一样,但是Set接口中保存的K是变量,但是V是直接默认用一个常量PRESENT【如图所示】来代替的我们在前面的学习可知,HashMap底层是对于哈希值的判断以及equals方法进行添加元素的。所以Map接口的实现类HashMap 进行put方法 输入输出的元素对象也是无序的2.table数组的类型是HashMap$Node类型无论Map中Key和Value是什么样的引用类型,.原创 2022-01-10 13:12:57 · 426 阅读 · 0 评论 -
JavaSE学习笔记-10
集合数组灵活性不够,所以我们引出了集合。集合框架体系图(背下来)第一类集合实现继承图:第二类集合实现继承图:【蓝色实线表示继承类 绿色虚线表示实现接口】总结:双列集合就是存放着键值对的元素,即是 Key-Value这样的形式。。。。。对于单列和双列集合的举例:对于警告如何抑制?(一劳永逸法)Collection接口的实现类的特点接口作为对象引用的类型类似于多态我们知道接口和抽象类都是不可以被实例化的,但是我们可以new...原创 2022-01-08 10:44:04 · 409 阅读 · 0 评论 -
JavaSE学习笔记-09
Math类提供的API5.四舍五入表示约为多少Math.random()返回的是[0,1)之间的一个随机小数倘若我们想要获取 [a,b] 之间一个随机整数,如何获取?公式是什么?Math.random()返回的是[0,1)之间的一个随机小数,那么 Math.random()*(b-a)返回的是[0,b-a)的一个随机数。那么Math.random()*(b-a+1),返回的就是[0,b-a+1)的一个小数,我们之后再加a :Math.random()*(b-...原创 2022-01-06 19:32:23 · 410 阅读 · 1 评论 -
JavaSE学习笔记-08
包装类 Wrapper八大包装类继承体系图虚线表示实现接口,实线表示继承父类。。。。。包装类和基本数据类型的转换基本数据类型不是对象,然而包装类是对象。。。。。演示装箱和拆箱:jdk5以前必须是手动:jdk5之后可以自动装箱和拆箱:底层还是运用到的是valueof这个方法:底层对这个inValue方法进行包装,debug追进去之后可以发现。其他的包装类转换和这种类似,自己试一试包装类练习:经典面试题...原创 2022-01-04 15:43:53 · 289 阅读 · 0 评论 -
JavaSE学习笔记-07
自定义类实现枚举引出枚举类。把对象设置为静态的,因此可以直接用类名访问我们还可以加一个final做一下优化:enum关键字实现枚举JavaP反编译如果无参构造器没有被覆盖,那么可以省略()也可以写成如What()一样的形式。枚举类课堂练习我们知道这里的无参构造器并没有被覆盖,是存在的。由上面的第5点可知,当我们使用的是无参构造器的时候,创建常量对象,则可以省略(),直接写。所以是正确的。。。。打印boy 本质上就是...原创 2022-01-03 11:00:47 · 278 阅读 · 0 评论 -
JavaSE学习笔记-06
final1.对于类2.对于方法3.对于属性4.对于局部变量NUMfinal细节总结对于final修饰的变量我们可以知道,他就是一个常量。我们在创建一个这样的常量的时候,必须要赋于初值对于赋予初始值,我们有三种方式:如图所示:根据前面所学的知识可知:代码块实际上就是构造器的一种补充机制,其实二者相当于是一种3.如果是静态的:有以下规则,解释:我们知道,构造器只会在创建一个对象的时候才会被调用,但是对于一个静态的常量来说,我们要在类加...原创 2022-01-01 19:54:02 · 269 阅读 · 0 评论 -
JavaSE学习笔记-05
房屋出租系统:测试类:原创 2021-12-31 12:38:02 · 463 阅读 · 0 评论 -
JavaSE学习笔记-04
断点调试:步骤:首先确定断点然后右键debug细节展示:Resume:直接执行到下一个断点红色小方块:停止debug调试表示往下走,往下进行调试。————————————————————————————————————————进入源码的方法,每一次强制进入一层方法——————————————————————————————————————————当我们想要在源码方法中进行调试的时候,我们要下断点(一定不要忘记...原创 2021-12-29 21:06:04 · 328 阅读 · 0 评论 -
深入学习正则表达式
举个例子:当我们实现一段文本的语句,我们想要抽离出格式为连续的4个数字;此时如果编写一个程序的话 代价会很高,因此我们搞出正则表达式正则表达式的底层实现:底层源码分析:——————————————————————————————————————————查一条语法:Java遵循左闭右开的原则:虽然这里截取的是索引0到4 但是是左闭右开的区间 因此只打印abcd——————————————————————————————————————————OK当...原创 2021-12-17 21:30:24 · 982 阅读 · 1 评论 -
JavaSE学习笔记—01
类和对象:一个猫就是一个类型 和我们Java自身提供的一样但是这个猫类也是可以new出来许多个对象的也就是说一个类可以对应多个对象比如人类可以对应不同的人 不同的人就是不同的对象对象在内存中的存在形式:总结:1.如果是基本数据类型的时候 那么直接存储到对象当中2.如果是常量字符串那么在对象中只是存储这个常量字符串的地址常量字符串存储到堆空间中的字符串常量池中3.当我们new出来一个对象的时候 它会把类的信息加载到方法区...原创 2021-12-19 20:32:24 · 683 阅读 · 0 评论 -
JavaSE学习笔记-02
idea快捷键:1.删除行:锁定光标所在位置 Ctrl+D2.快速复制当前行:Ctrl+向下箭头3.补全提示的代码:当我们写了一会之后 光标移走了 之后发现提示语句消失了我们这时候可以进行补全操作 alt+/4.这个注释键的方便之处在于它的可适用性强,,,,我们把光标放置的地方 我们用 ctrl+/ 可以快速进行注释或者取消注释 可以不进行选中5.自动导入6.快速格式化当我们的代码行是对账不整齐的时候 我们通常想要快速...原创 2021-12-21 22:39:26 · 460 阅读 · 0 评论 -
JavaSE学习笔记-03
多态的体现:————————————————————————————————————————1.方法的多态重写与重载体现多态——:重载:重写:这里say方法是重写的方法 不同的对象引用调用的say方法是不一样的 这就是多态————————————————————————————————————————2.对象的多态编译类型在定义的时候就已经确定了,是不可以进行改变的,就是左边的类型。然而运行类型可以是多个类型,是看右边的类型 new什么测试类:..原创 2021-12-22 17:24:35 · 513 阅读 · 1 评论