Java基础
文章平均质量分 75
此专栏专注写JavaSE基础,快和我一起学习起来吧!
轻松玩编程
你好,我是梦阳辰,一位渴望学习更多知识的在校小白。平时喜欢写写博客分享生活和编程相关知识,期待与你相遇!
展开
-
HashMap底层原理
01.什么是哈希?核心理论: Hash也称散列、哈希,对应的英文都是Hash。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。Hash的特点:1.从hash值不可以反向推导出原始的数据⒉输入数据的微小变化会得到完全不同的hash值,相同的数据会得到相同的值3.哈希算法的执行效率要高效,长的文本也能快速地计算出哈希值4.hash算法的冲突概率要小由于hash的原理是将输入空间的值映射成hash空间内,而原创 2021-04-27 16:33:45 · 305 阅读 · 0 评论 -
Java基础函数与简单算法练习题
文章目录函数E201_06_02_输出1000的完数E201_06_03_正弦函数E201_06_04_计算常量eE201_06_05_身份证验证E201_06_06_计算组合E201_06_07_分糖果E201_06_08_验证四位卡布列克数E201_06_09_计算定积分7 常见算法E201_07_01_计算累加和E201_07_02_求算数平方根E201_07_03_计算最小公倍数E201_07_04_刘徽割圆术计算圆周率E201_07_05_富二代存钱问题E201_07_06_奇怪的三位数E201_原创 2020-11-24 08:37:55 · 1569 阅读 · 0 评论 -
Java实现贪吃蛇小游戏项目分析和源代码(多线程,双向链表)
“现实会告诉你,不努力就会被生活给踩死。无需找什么借口,一无所有,就是拼的理由。”01.游戏设计游戏应具有的对象:1.蛇2.食物3.游戏控制蛇类设计:1.属性:蛇身:用双向链表表示蛇身每一个节点的逻辑坐标,和对应节点的颜色。节点的数量也就代表了蛇的长度。方向:蛇头的方向。2.方法: 方法 方法名和参数 实现方法 .原创 2020-10-19 08:41:02 · 1745 阅读 · 2 评论 -
一文搞定Java的Lambda表达式
写在前面的话:“在成功的道路上,活力是需要的,志向是可贵的,但更重要的是那毫无情趣的近乎平常的坚守的毅力和勇气。”你好,我是梦阳辰,未来我和你一起成长。什么是Lambda表达式?Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。Lambda允许把函数作为一个方法的参数(函数作为参数传递到方法中)。为什么要使用Lambda表达式?可以写出更简洁的,更灵活的代码。作为一种更紧凑的代码风格,是java的语言表达能力得到了提升。对比:i.原创 2020-10-16 10:11:48 · 360 阅读 · 2 评论 -
常用的类和集合
“真正没有资格谈明天的人,是那个不懂得珍惜今日的人。”01.String类1.String的注意点:例如:String s7 = "abcdef";s7.replace("abc","ggg");System.out.println(s7);输出结果:abcdef总结:字符串为常量,不可更改。2.new 字符串在方法区常量池,和堆内存中各创建了一个对象。一共两个对象。...原创 2020-10-09 17:20:26 · 372 阅读 · 1 评论 -
Java实现五子棋小游戏(对新手极为友好的版本)
写在前面的话:“ 你现在的状态,是过去的你用努力换来的,而你未来的状态,是现在的你用努力决定的。”九月你好,还未还得及感受,你就要离去。以前总是担心着未来的未发生的事情,前几天听完bilibi架构师学长对我问题的回答后。有所感触。我想,现在的我,规划好以后要做的事情,把目前手里的事情做好,不好高骛远,脚踏实地,充实自己,机会是留给有准备的人的。我是梦阳辰,快和我一起加油吧!效果预览:文章目录系统设计:01.设计棋局类属性方法程序代码:02.棋盘类属性方法程序代码:03.物理地址类属性程序代码:0.原创 2020-09-26 17:08:00 · 712 阅读 · 5 评论 -
轻松搞定Java基础知识(数组,函数,递归,对象,匿名内部类,接口,泛型)
”虽然我走得很慢,但我从不后退!“你好我是梦阳辰,快和我一起打卡学吧!01.数组1.为什么要数组?如果没有数组,当保存很多数据时需要设置很多变量来存储,造成变量名过多,使得变成变得复杂。如果有了数组,可以让相同类型的数据有序的保存起来,使编程变得简单起来。...原创 2020-09-22 11:15:09 · 544 阅读 · 0 评论 -
Java基础(循环,数组,程序调试)练习题
如果有一天,你偶然看到了这些文字,我希望这几分钟是真正属于你自己的,在这里你给自己加油,打气,继续去完成你曾经的梦想,勇敢的去挑战自己,历练自己!文章目录01.程序调试题E201_03 _01评委评分E201_03 _02判断水仙花数02.循环题E201_04_01存钱翻倍E201_04_02统计法计算圆周率E201_04_03_计算数列之和E201_04_04_输出所有水仙花数E201_04_05验证角谷定理E201_04_06 输出100以内的素数E201_04_07九九乘法表E201_04_08.原创 2020-09-18 11:17:12 · 756 阅读 · 0 评论 -
Java选择结构基础练习题
”你得有本事,才有资格任性“,我是梦阳辰,快和我一起学习起来吧!选择结构E201_02_01的士计价器题目要求:嘉兴市出租车,起步价(2公里以内)为7元,超过2公里的按照每公里3元计算。要求根据路程计算费用。解题思路:(1) 输入路程(2) 根据条件计算费用(3) 输出费用。程序代码:package HomeWork.Part2;import java.util.Scanner;public class HomeWork_Part2_01_DiShi { public .原创 2020-09-08 08:06:01 · 3522 阅读 · 1 评论 -
轻松搞定Java基础知识
1.IEDA快捷键复制单行:Ctrl+D删除行:Ctrl+X替换文本:Ctrl+ R查找:Ctrl +F重命名:Shift + F6原创 2020-09-07 16:50:45 · 275 阅读 · 0 评论 -
Java基础知识练习题
你自以为的极限,只是别人的起点1 基础知识E201_01_01温度转换题目要求:输入华氏温度值,转换为摄氏温度输出,华氏温度转换为摄氏温度 C=(5(F-32))/9。解题思路:输入华氏温度值将华氏温度转换成摄氏温度。(2.1)将华氏温度根据转化公式计算摄氏温度。(3)输出摄氏温度。程序代码:package HomeWork.Part1;import java.util.Scanner;public class HomeWork_Part01_01_WenDuZhuanHua.原创 2020-09-03 09:33:13 · 724 阅读 · 0 评论 -
Java词法分析器的设计与实现
“生活充满了选择,而生活的态度就是一切。”词法分析器的设计与实现二级 学院:信息科学与技术学院专 业:计算机科学与技术班 级: xxxx姓 名: 梦阳辰学 号: xx指导 老师: xx成 绩:词法分析器的设计与实现目 录摘 要---------------------------------------------------3前 言-------------------------------------------.原创 2020-07-14 18:01:54 · 5143 阅读 · 0 评论 -
Java实现L2-004 这是二叉搜索树吗? (25分)
“ 不要让将来的你,讨厌现在的自己”1.问题描述L2-004 这是二叉搜索树吗? (25分)一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值;其右子树中所有结点的键值大于等于该结点的键值;其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍历的结果。输入格式:输入的第一行给出正整数 N(≤1000).原创 2020-07-09 00:31:23 · 515 阅读 · 0 评论 -
一文带你搞定JDBC
1.JDBC是什么?Java DataBase connectivity(java语言连接数据库)2.JDBC的本质是什么?JDBC是sun公司制定的一套接口(interface)java.sql包下。为什么java要制定一套JDBC接口?因为每一个数据库的底层实现原理都不一样。oracle数据库都有自己的原理。MySQL数据库也有自己的原理。MS Sqlserver数据库也...原创 2020-04-28 20:04:36 · 977 阅读 · 0 评论 -
复制目录以及目录下的文件和子目录到另一目录下(任何文件都可以拷贝)
使用递归思想,如果是文件就拷贝,一边读,一边写。如果是目录,就递归调用自己,详细请看代码。使用了FileInputStream,FileOutStream流。如果想了解更多,请看这篇文章:一文搞定Java的输入输出流等常见流public class CopyContent1 { public static void main(String[] args) {// 拷贝...原创 2020-04-16 22:48:41 · 1578 阅读 · 0 评论 -
Java序列化及反序列化将多个对象追加到文件并读取多个对象(ObjectOutputStream,ObjectInputStream)
【问题描述】在采用序列化,将多个对象追加到文件中;然后反序列化将文件中的所有对象取出时,出现java.io.StreamCorruptedException: invalid type code: AC多次修改都出现类似异常:比如java.io.StreamCorruptedException: invalid type code:00异常。练习背景:梦阳辰在这里忙活了一下午,先是用集合存储对象...原创 2020-04-16 22:30:36 · 4255 阅读 · 1 评论 -
学生信息管理系统(序列化与反序列化实现)
问题描述:由于序列化的对象,不能修改属性,序列化一旦保存到文件中就不可修改,并且也不能删除文件中序列化的对象。(**这里可以将对象填入到集合或数组中,反序列化到内存,通过对集合的删除操作后,并将其写回文件,可以实现对象的删除)**但依然无法真正意义上的删除。因此梦阳辰此次系统的书写,对于删除功能,和修改功能其实是没有实现的,只实现了,增加,查找,和遍历。注意这里没有采用new File的形式,需要...原创 2020-04-16 22:29:24 · 2390 阅读 · 1 评论 -
java的反射机制,看完这篇轻松应对高级框架(超详细总结)
ff原创 2020-04-14 16:06:17 · 530 阅读 · 2 评论 -
java多线程编程从入门到卓越(超详细总结)
文章目录1.多线程1.多线程什么是进程?什么是线程?首先我们应该了解进程,在操作系统中进程是程序的一次执行。(也可理解为对静态层序的一次动态实例化的过程),(在引入线程的操作系统中)线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个...原创 2020-04-11 13:49:27 · 1565 阅读 · 1 评论 -
一文搞定Java的输入输出流等常见流
f原创 2020-04-07 22:32:25 · 2219 阅读 · 0 评论 -
一文搞定Java集合类,你还在为Java集合类而烦恼吗?
常用集合类原创 2020-11-24 14:32:28 · 1047 阅读 · 5 评论 -
一文让你秒懂Java的异常处理
什么时异常,异常机制有什么用?程序发生不正常情况,即异常,java把异常信息打印到控制台,供程序员参考,程序员可以对程序进行修改,让程序更加健壮。package ExceptionPcakage;public class ExceptionTest1 { public static void main(String[] args) { // TODO Auto-generate...原创 2020-04-02 21:12:13 · 586 阅读 · 2 评论 -
一文解决Java的日期类,数字格式化类等
获取系统当前时间包:java.util.Date;直接调用无参数构造方法Date nowtime = new Date();日期的格式化这时SimpleDateFormat类上场了。yyyy 年MM 月dd 日HH 时mm 分ss 秒SSS 毫秒例如:Date nowtime = new Date();SimpleDateFormat times = new...原创 2020-03-30 22:54:19 · 289 阅读 · 0 评论 -
一文让你掌握Java的包装类
包装类Java为8中基本数据类型有对应准备了8种包装类型。8种4包装类属于引用数据类型。为什么要再提供8种包装类呢?当一个方法的参数类型是引用类型,而又需要使用一个基本类型的数据这时候包装类粉墨登场了。(因为8种基本类型不够用)sun公司将这8中包装类都给包装好了,所以直接用。八种基本数据类型对应的包装类型:基本数据类型-------包装类型byte ------------...原创 2020-03-29 23:07:40 · 194 阅读 · 2 评论 -
Java的Arrays工具类,String类StringBuffer和StringBuilder(Day17)
文章目录1.数组工具类1.数组工具类java.util.ArraysArrays是一个工具类。其中有一个sort()方法,可以排序,静态方法(为了方便使用,工具类的方法一般都是静态,所以采用类名调用即可)。Arrays.sort();需要使用Arrays方法时查找API帮助文档,切记死记硬背,多用几次就记住了。(在IDEA中按两次Shift键,查找类,即可查找类中的方法)二分查找方...原创 2020-03-28 22:37:26 · 230 阅读 · 0 评论 -
Java实现酒店管理系统(类似学生管理系统Day16)
二维数组二维数组时特殊的一维数组,特殊在这个一位数组的每一个元素都是一个一维数组.二维数组静态初始化int[][] a={{100,200,300},{1,5,6,8},{0}};a[0].length为二维数组中第一个一维数组的长度。可以采用sum(new int[][] {{1,2,3},{1,6}};关于二维数组的读取和更改取上述维数组的第一个一维数组。int[] b = ...原创 2020-03-27 23:21:50 · 1915 阅读 · 3 评论 -
Java_Day15(一维数组,main中形参的奥秘,数组的拷贝)
一维数组Java的数组是一个引用数据类型。数组是一个数据的集合。数组可以存储基本数据类型的数据,也可以存储引用数据类型。数组对象堆内存中。一旦创建数组不能变。...原创 2020-03-25 22:02:35 · 299 阅读 · 0 评论 -
Java_Day14(内部类)
匿名内部类1.什么是内部类?在类的内部有定义了一个新的类,被称为内部类。2.内部类的分类:静态内部类:类似于静态变量实例内部类:类似于实例变量局部内部类:类似于局部变量public class Test6 { public static void main(String[] args) { }// 静态内部类 static class Inner1{ }// ...原创 2020-03-24 21:31:27 · 134 阅读 · 0 评论 -
Java_Day13(import,Object,equals,finalize)
importlang包下的类不需要导入(java.lang),自动导入,如String类,System,java.util.Scanner完整类名,Scanner简称类名。但是Scanner类,需要导入。java.util.;""表示导入util包中全部的类。IEDA在使用其它包中的类时会提示导包。类和接口只能用public和缺省修饰。什么是API?应用程序编程接口。(APPlic...原创 2020-03-24 20:44:58 · 260 阅读 · 0 评论 -
Java_Day1(计算机基本操作)
常见DOS命令exit 退出DOS窗口cls 清屏dir 当前目录下所有的子目录cd 命令(cd 目录的路径)cd … 回到上一级目录cd \ 回到根目录d: 切换到d盘...原创 2020-03-10 17:34:25 · 156 阅读 · 0 评论 -
Java_Day12(接口)
接口接口的基础语法:1.接口也是一种引用数据类型。2.接口是完全抽象的。或者说接口是特殊的抽象类。3.定义:[修饰符列表] interface 接口名{}4.接口支持多继承,一个接口可以继承多个接口。interface C extends A,B{}5.接口只包含常量(final,static)和抽象方法.6.接口中的成员变量都隐含public,static,final属性...原创 2020-03-21 23:20:54 · 227 阅读 · 0 评论 -
Java_Day11(InterlliJ IDEA,抽象类)
IntelliJ IDEA使用Module相当于eclipse的project.IDEA:project->module.eclispse组织方式:workspace->project.快捷键:快速生成主方法:psvm输出:soutIDEA自动保存。删除一行:Ctrl+y左侧目录:左键关闭,右键打开。上下移动。新建/新增/添加:Alt+ Insert直接敲键盘搜...原创 2020-03-20 22:45:07 · 385 阅读 · 0 评论 -
Java_Day10(final,访问权限,包,import,super)
1.final关键字怎么根据class文件链接源码?final代表最终的意思,被修饰的类,方法,不能被继承,重写,重载。修饰的成员变量,变为常量,不能修改其值。实例变量有默认值+final修饰后不能重新赋值,因此必须在定义时手动赋值,或在构造方法中赋值(构造方法执行在创造对象的时候)。final修饰引用的情况:一旦引用指向一个对象后,同以上一样,不能将其更改指向其它对象,即地址不能再...原创 2020-03-19 21:29:02 · 221 阅读 · 0 评论 -
Java_Day9(方法的覆盖,多态)
方法的覆盖回忆:方法的重载。当在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程。使用的情况:1.在同一个类中。2.方法名相同3.参数列表不同:类型,顺序,个数。方法的覆盖:方法的覆盖又被称为方法的重写(overwrite,override)什么时候使用方法的覆盖(重写)?当父类中的方法已经无法满足字类的需求。子类有必要将父类中继承过来的方法进行重...原创 2020-03-18 23:00:01 · 348 阅读 · 0 评论 -
Java_Day8(构造方法,this,static,继承)
构造方法构造方法又被称为构造函数/构造器构造方法语法结构:【修饰符列表】 构造方法名(形式参数列表){}== 对于构造方法来说:返回值不需要指定,并且不能写void,如果写了为普通方法。并且构造方法得方法名必须和类名保持一致。每个构造方法调用后有返回值,但不需要写返回类型。其返回类型就是它本身。==构造方法得作用:主要用于在创建(构造)对象时初始化对象得数据成员。调用方式:与普...原创 2020-03-17 22:04:17 · 327 阅读 · 2 评论 -
Java_Day7(myclispe的使用,封装)
myeclipse的使用myeclipse相对于eclipse多了一些插件。.metadata存储了myeclipse的工作状态。删除重新开始,删除丢失myeclipse项目,但计算机中未丢。集成开发环境自带了jre,所以不用安装jre也可以运行,但是也可以选择用自己安装的jre.双击最大化,或者还原。工作区workspace中最基本的单元时:project。通用快捷键Home行首,en...原创 2020-03-16 22:34:35 · 226 阅读 · 0 评论 -
Java_Day6(变量的类型)
1.变量分类局部变量:方法体中声明。成员变量:方法体外声明。实例变量:【前面没有修饰符static】静态变量:【前面有修饰符static】静态变量存储在方法区内存中。三块内存中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对堆内存。垃圾回收器什么时候会考虑将某个java对象的内存回收呢?当其成为垃圾数据时,即没有引用指向它的时候。这个对象无法被访问,因为访问对象...原创 2020-03-15 23:42:18 · 213 阅读 · 0 评论 -
Java_Day5(面向对象,类的定义,对象的创建和使用)
面向对象优点:耦合性低,扩展性强,组件复用性强。缺点:前期投入成本较高,需要进行独立体的抽取,大量的系统设计。面向过程:优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本低。缺点:很难解决非常复杂的业务逻辑,耦合性高,造成扩展性差,没有独立提的概念,无法达到组件复用。面向对象的三大特征:封装,继承,多态。采用面向对象的方式开发一个软件,生命周期当中,基于面向对象分为...原创 2020-03-14 22:29:59 · 295 阅读 · 0 评论 -
Java_Day4(方法重载,递归算法)
方法代码片段存在哪里?方法执行的时候执行过程的内存在哪里分配?方法代码片段属于.class字节码文件的一部分,字节码文件在类加载的时候,将其放到了方法区当中,所以JVM中的三块主要的内存空间中方法区内存最先有数据,存放了代码片段,调用时,会在栈内存给其分配空间,发生压栈动作,方法结束后会将内存空间全部释放,弹栈。方法重载解决方法功能相同,但数据类型不同的情况。方法名相同,形参个数或形...原创 2020-03-13 22:30:37 · 158 阅读 · 0 评论 -
Java_Day3(数据类型,编码,转义字符,运算符,输入,方法)
1.数据类型基本数字类型:数值型,字符型,布尔型(boolean)。整数类型:type,short,int,long浮点类型:float,doublebyte最大值2^7-1最小值-128.一个中文字符由两个字节组成,所以Java的char类型变量可以存储一个中文字符。long x= 100L;引用数据类型:String。2.字符编码常用:字符编码(ASCII码)‘a’...原创 2020-03-12 23:21:29 · 200 阅读 · 0 评论