Java SE
文章平均质量分 59
IT牛爷爷
不定时更新计算机专业相关知识
展开
-
【Java】一个关于装箱的某里面试题
因为c和b是200,不在这个范围内,所以返回的都是new的对象,等号两边都是引用类型,比较的不是c和d的值,而是类似于地址的东西,所以不相等。那也就是说,我们在进行自动装箱的时候,人家在底下会调用这个方法来帮我们进行装箱。因为a和b都是100,在这个范围之内,所以返回的都是相同的值,所以相等。第一个为true,第二个为false.求这个代码的输出结果。原创 2023-08-06 16:10:14 · 412 阅读 · 2 评论 -
【Java】String类常用方法总结
注意:只会去掉字符串中的左右空格,但保留中间空格,也会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等)这个方法的作用是比较两个字符串的大小关系。相同返回0,大于返回一个整数,小于返回一个负数。因为String这个类实现了Comparable接口,所以重写了compareTo方法。这个方法的作用是比较两个引用所指向的对象当中的内容是否一致。这个方法与compareTo方式相同,但是忽略大小写比较。此时我们认为str1和str2是相等的,输出0。原创 2023-07-25 22:26:06 · 390 阅读 · 2 评论 -
【Java】Clonable 接口
理论上来说,给克隆的对象改了值应该不会影响原对象的money值,我们这都是克隆出去的,但是当我们运行的时候却发现原来对象的money值也被修改了(这种拷贝方式叫做。首先一个前提,他是可克隆的,我们要实现一个Clonable 接口。我们解决方法是把Money也克隆出来就可以了,Money也必须支持克隆,也就是实现Clonable 接口。可以发现里面是空的,我们把这种空接口叫做标记接口,作用就是表示当前对象是可以被克隆的。所以如果要实现深拷贝,你当前对象里面的每一个对象都得克隆。这样就实现了简单的克隆。原创 2023-07-23 20:13:02 · 666 阅读 · 3 评论 -
【Java】通过Comparator比较器的方式给对象数组排序
这个方法可以传两个参数。)可是这种方法也有缺点,就是不太灵活,太固定了。如果我们学生类不实现。我们会发现现在是单独的一个类,不会对Student类进行修改。能不能做到非常灵活的实现排序呢?我们还有另一种方法:比较器。我们定义另一个类实现另一个接口,然后实现里面的抽象方法。这样就是实现了对成绩排序。原创 2023-07-21 21:44:34 · 398 阅读 · 2 评论 -
【Java】重写compareTo()方法给对象数组排序
这里定义了一个Student数组,数组大小为4,也就是说数组中有4个学生,然后分别实例化了4个学生,把他们的名字年龄和成绩都输入了进去,现在我们想以年龄或成绩进行排序,那应该怎么实现呢,还是用Arrays.sort()方法吗?我们进入这个第二行报的错,显示源码中第320行报错:源码中这几段代码的意思是取到数组中的某个值,把这个值转化为了一个Comparable类型(这个Comparable是一个接口),然后调用一个compareTo()方法。当我们把这个数组进行排序时,报错了,报了一个类型转换异常。原创 2023-07-20 20:44:58 · 1518 阅读 · 2 评论 -
【Java】一个简单的接口例子(帮助理解接口+多态)
一个接口+四个类(键盘类+鼠标类+电脑类+测试类)笔记本类:包含开机功能、关机功能、使用。接口:包含打开设备、关闭设备功能。(不需要具体实现,给出框架即可)请实现笔记本电脑使用USB。接口,并具备点击功能。接口,并具备输入功能。原创 2023-07-19 16:06:19 · 747 阅读 · 1 评论 -
【Java】数组中的拷贝方法与初步理解深浅拷贝
我们再来看看另外一种情况:还是有个数组arr1,但是里面存的是引用,可以理解为地址,数组中的元素都分别指向一个对象,那我们要拷贝arr1,第一步是要申请一个跟这个数组一样大的数组arr2,那么拷贝就是把原数组里的值拷下来,放到新数组里。但这里要注意,并不是拷贝引用类型就是浅拷贝,这要看代码具体实现的过程。假设我们现在有一个数组arr1,这个数组中放的是简单的基本数据类型,我们要拷贝这个数组,拷贝完后放到arr2中。我们进入到这个函数的源码中,可以看到这两个参数一个是原始数组,一个是拷贝后的新的长度。原创 2023-06-26 10:19:00 · 713 阅读 · 2 评论 -
【Java】以数组为例简单理解引用类型变量
的存储空间,主要用来存储程序运行时数据的,如果对内存中存储的数据不加区分的随意存储,那对内存管理起来将会非常麻烦,就像一个杂乱的房间,你如果想在这个房间里找一个东西的话,找起来就会非常麻烦。虚拟机栈(JVM Stack): 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含 有:局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息,保存的都是与方法执行时相关的一 些信息。而引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。(假设地址为0x11)原创 2023-06-24 09:42:58 · 613 阅读 · 1 评论 -
【Java】三人扑克牌随机发牌
要求:实现给三个人随机发牌,每人发五张牌,而且显示剩余的牌。代码:Card和CardDemo:Test:实现效果:每次运行的结果都不一样,实现了随机发牌。原创 2022-07-07 11:09:59 · 803 阅读 · 0 评论 -
【Java实现小游戏】飞翔的小鸟(源码)
游戏玩法:通过鼠标点击使小鸟上下移动穿过柱子并完成得分,小鸟碰到柱子或掉落到地面上都会结束游戏。(游戏内图片) 下面是实现这个游戏的代码(图片太多,都发太麻烦,需要图片的私信领取): Brid类: BridGame类:Column类:Ground类:......原创 2022-07-03 16:20:30 · 7551 阅读 · 5 评论 -
【Java】实现简易的图书管理系统(继承,封装,多态)
文章目录前言一、实现的功能二、具体的代码book包(书的信息和书架)operation包(实现具体的功能)user包(管理员 用户 main方法)总结前言本篇文章我们来学习一个综合案例——图书管理系统,是对继承,封装和多态的一个小练习,通过这个案例可以加深我们对语法的理解。一、实现的功能实现对图书的管理,我们登录时有两个身份,一个是图书管理员,一个是普通用户,这两个实现的功能各不一样。二、具体的代码有三个包和一个main函数。book包(书的信息和书架)book包:boo原创 2022-05-24 10:13:12 · 607 阅读 · 0 评论 -
【0基础学Java】数组的定义和使用
文章目录前言一、数组的概念和使用场景二、数组的定义方式三丶数组的使用四丶 一个例题加深对数组的理解总结前言本篇文章我们来学习一下Java中的数组一、数组的概念和使用场景数组:一组相同类型元素的集合。那么我们再什么时候要用数组呢?比如说:我们要储存一个班同学的学习成绩,如{100分,99分,85分,60分…},这时候我们发现,一个一个的定义他们的成绩太麻烦了,这时候就引入了数组的概念。我们可以把这些数据都放入一个容器中,这个容器就叫做数组。二、数组的定义方式我们其实有三种定义方式:这三种定原创 2022-05-02 10:07:29 · 160 阅读 · 0 评论 -
【0基础学Java】数据类型与运算符
文章目录前言一、Java是什么?二、Java中的基本数据类型三丶Java中的运算符总结前言接下来我们一起从0开始学习java一、Java是什么?Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。二、J原创 2022-04-22 15:09:27 · 454 阅读 · 1 评论