Java学习
文章平均质量分 67
日常学习
Rick_rui
这个作者很懒,什么都没留下…
展开
-
Java-01
学习来源:日撸 Java 三百行(01-10天,基本语法)_闵帆的博客-CSDN博客1.环境搭建并输出Hello World1.1 完成 Eclipse 的安装. 第一天嘛,把环境弄对就行了.1.2 学习 package, import 和 println 语句. 其中, package 要与所建的包名(即文件夹名)一致.1.3 编写HelloWorld.java. 一定要注意变量的写法....转载 2022-04-09 22:44:58 · 81 阅读 · 0 评论 -
Java-02
学习来源:日撸 Java 三百行(01-10天,基本语法)_闵帆的博客-CSDN博客6.基本for 语句6.1 循环语句是程序的核心.6.2 算法的时间复杂度一般根据循环语句来计算.package basic;/*** This is the sixth code. Names and comments should follow my style strictly.* * @author Rui Chen 1369097405@qq.com. */public class ForSt转载 2022-04-10 16:40:27 · 61 阅读 · 0 评论 -
Java-05
学习来源:日撸 Java 三百行(11-20天,线性数据结构)_闵帆的博客-CSDN博客19.字符串匹配19.1 String 是 Java 常用的类, 这里重新实现下部分功能.19.2 转义符 , 有了它才能正常打印引号.19.3 简单的越界检查.package datastructure;/** * My string. String is a class provided by the language, so I use another name. * It is essentia转载 2022-04-13 20:01:09 · 74 阅读 · 0 评论 -
Java-04
学习来源:日撸 Java 三百行(11-20天,线性数据结构)_闵帆的博客-CSDN博客14.栈14.1 push 和 pop 均只能在栈顶操作.14.2 没有循环, 时间复杂度为 O ( 1 ) O(1)O(1).package datastructure.list;/*** Char stack. I do not use Stack because it is already defined in Java.* * @author Rui Chen 1369097405@qq.com转载 2022-04-12 18:24:16 · 62 阅读 · 0 评论 -
Java-03
学习来源:日撸 Java 三百行(11-20天,线性数据结构)11. 顺序表(一)在《数据结构》中, 使用“抽象数据类型”来描述不同的数据结构. 在《面向对象程序设计》中, 用对象来存储数据及其上的操作. 我认为, 它们的本质都是相同的.11.1 对象: 数据及其上操作的总和. 例如, 我是一个对象, 具有身高、体重、年龄、跑步速度等数据; 同时,我具有吃饭、睡觉、送快递等功能. 从计算机的发展来看, 第一阶段以操作 (函数) 为中心, 一个计算导弹轨迹的函数, 根据不同输入获得不同输出. 第二阶段以转载 2022-04-11 20:03:42 · 52 阅读 · 0 评论 -
Java-08
学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客25.二叉树深度遍历的栈实现 (中序)今天先来做中序. 分成两个子任务.25.1 具有通用性的对象栈改写栈程序, 里面存放对象.该程序应该放在 datastructure.stack 包内.还是依靠强制类型转换, 支持不同的数据类型.增加了 isEmpty() 方法.package datastructure.stack;/** * Circle int queue. * * @author R转载 2022-04-19 21:18:45 · 70 阅读 · 0 评论 -
Java-06
学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客21.二叉树的深度遍历的递归实现21.1 二叉树的遍历比存储、建立要简单. 所以先“手动”建立一个二叉树来玩.21.2 递归算法写起来就是舒服. 前、中、后序的代码差别只有输出语句的位置.21.3 不需要额外的节点类, 每棵二叉树 (树) 都可以从自己的根结点找到其它所有节点. 这个需要自悟.21.4 获取二叉树的层次、总节点数, 也需要递归. 以后可能要用, 这里就一并写了.package datastruc转载 2022-04-15 19:28:28 · 68 阅读 · 0 评论 -
Java-09
学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客28. Huffman 编码 (节点定义与文件读取)1.定义了一个内嵌类. 如果是实际项目, 我就为其单独写一个文件了, 这里仅仅是为了方便.2.每个节点的内容包括: 字符 (仅对叶节点有效)、权重 (用的整数, 该字符的个数)、指向子节点父节点的引用. 这里指向父节点的引用是必须的.3.NUM_CHARS 是指 ASCII 字符集的字符个数. 为方便起见, 仅支持 ASCII.4.inputText 的引入只是转载 2022-04-21 16:45:31 · 65 阅读 · 0 评论 -
Java-07
学习来源:日撸 Java 三百行(21-30天,树与二叉树)_闵帆的博客-CSDN博客23.使用具有通用性的队列昨天使用的队列有两种: 存储二叉树节点的队列; 存储整数的队列. 这样的话, 难道我们要为每种类型单独写一个队列? 这样显然没有充分利用代码的复用性. 实际上, 我们只需要一个存储对象的队列就够啦!Java 里面, 所有的类均为 Object 类的 (直接或间接) 子类. 如果不写就默认为直接子类. 例如public class CircleObjectQueue;等价于public转载 2022-04-17 19:51:10 · 58 阅读 · 0 评论 -
Java-10
学习来源:日撸 Java 三百行(31-40天,图))_闵帆的博客-CSDN博客32. 图的连通性检测1.适用于有向图. 反正无向图是有向图的特殊形式.2.0 次方的时候是单位矩阵.3.为每一个方法写一个独立的测试方法. 测试代码有时比正常使用的代码更多.4.第一个测试用例是无向图, 第二个是有向图. 可以看到, 后者从节点 1 不能到达节点 0.5.Matrix 基础代码准备好之后, 其它的算法真的很方便. 后面会进一步体会到其威力.package datastructure.graph;转载 2022-04-23 22:23:33 · 79 阅读 · 0 评论 -
Java-11
学习来源:日撸 Java 三百行(31-40天,图))_闵帆的博客-CSDN博客36.邻连表1.相当于图的压缩存储. 每一行数据用一个单链表存储.2.重写了广度优先遍历. 可以发现, 使用队列的机制不变. 仅仅是把其中的 for 循环换成了 while, 避免检查不存在的边. 如果图很稀疏的话, 可以降低时间复杂度.package datastructure.graph;import datastructure.queue.CircleObjectQueue;/** * Adjacency转载 2022-04-25 21:55:48 · 66 阅读 · 0 评论 -
Java-12
学习来源:日撸 Java 三百行(41-50天,查找与排序))_闵帆的博客-CSDN博客41.顺序查找与折半查找1.顺序查找使用岗哨可以节约一半的时间. 为此, 第 0 个位置不可以放有意义的数据, 即有效数据只有 length - 1 个.2.顺序查找时间复杂度为 O ( n ) O(n)O(n).3.折半查找时间复杂度为 O ( log n ) O(\log n)O(logn).4.书上为简化起见, 只关注键. 这里使用键值对来表示一条完整的数据. 实际应用中可以把 content 改成任转载 2022-04-27 21:05:16 · 71 阅读 · 0 评论 -
Java-13
学习来源:日撸 Java 三百行(41-50天,查找与排序))_闵帆的博客-CSDN博客46.快速排序1.平均时间复杂度为O(nlogn), 但最坏情况还是 O(n^2)2.Pivot 应该选 (该子序列的) 最后一个元素.3.递归算法, 每次只能确定 pivot 的位置.4.判断条件 && (tempLeft < tempRight) 不能少.5.(data[tempRight].key >= tempPivot) 不能写成 >, 否则出现两个相同 key 时转载 2022-04-29 17:54:04 · 52 阅读 · 0 评论 -
Java学习笔记(二十一)
缓存穿透: 一般的缓存系统,都是按照 key 去缓存查询,如果不存在对应的 value,就会去DB查找。一些恶意的请求会故意查询不存在的 key,请求量很大,就会对后端系统造成很大的压力。这就叫做缓存穿透。...原创 2022-08-17 21:41:37 · 448 阅读 · 0 评论 -
Java学习笔记(二十)
MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。原创 2022-08-10 20:59:23 · 367 阅读 · 0 评论 -
Java学习笔记(十八)
假如有开发、测试、生产三个不同的环境,需要定义三个不同环境下的配置。需要指定环境时,在applcation.properties文件中指定当前的环境spring.profiles.active=dev,用dev环境spring:springboot实现热部署的原理。...原创 2022-08-05 12:30:00 · 101 阅读 · 0 评论 -
Java学习笔记(十七)
SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。原创 2022-08-03 18:15:35 · 124 阅读 · 0 评论 -
Java学习笔记(十五)
Stringfinal修饰,是不可变的,所以线程安全,String类的方法都是返回newString。即对String对象的任何改变都不影响到原对象,对字符串的修改操作都会生成新的对象。2、若String允许被继承,由于它的高度被使用率,可能会降低程序的性能,所以String被定义成final。StringBuffer线程安全的,对字符串的操作的方法都加了synchronized,保证线程安全。1、由于String类不能被继承,所以就不会没修改,这就避免了因为继承引起的安全隐患。...原创 2022-07-29 19:40:20 · 149 阅读 · 0 评论 -
Java学习笔记(十二)
一个事物里面包含另外一个事物,那么这就是一类内部包含另外一个类如:教室类里面包含了电脑类 汽车类 ->座椅分类1.成员内部类2.局部内部类3.匿名内部类4.静态内部类(1)成员内部类格式位置代码 测试类main方法中(2)调用内部类直接调用:间接调用:先在外部类方法中调用内部类的方法,再调用外部类方法(例子在上面)(3)局部内部类在外部类方法内位置代码:注意:局部内部类中不能使用public、protected、private修饰符局部内部类只能在方法原创 2022-07-17 11:30:00 · 78 阅读 · 0 评论 -
Java学习笔记(十一)
在继承的基础上 , 没有继承就没有多态狗既有狗的形态,又有动物的形态,被称为狗的多态一个对象有多种形态,成为对象的多态//用代码体现多态:父类的引用指向子类对象(1)格式:父类名 对象名 = new 子类名();或接口名 对象名 = new 实现类名();例:(2)调用成员方法多态调用成员方法时:访问规则:看new的是谁,如果没有就向上找口诀:编译看左边,运行看右边多态对象调用成员方法时:访问规则:直接方法时,看等号左边是谁,优先用谁,没有就向上找口诀:编译看左边,运行看左边(3)多态的好原创 2022-07-15 13:00:00 · 62 阅读 · 0 评论 -
Java学习笔记(十)
选择合理访问修饰符:尽可能选择范围较小的访问修饰符接口其实就是一套规范接口同时是一种引用类型数据,最重要的内容就是里面的抽象方法(1)格式: 注意:普通类编译:.java -> .class接口编译后:.java -> .class内容:jdk7,接口中主要存放 常量、抽象方法jdk8,接口添加了 默认方法、静态方法jdk9,接口添加了 私有方法(2)常量(接口中)常量:变量名称必须全大写,声明后马上赋值接口中只能放常量,所以定义后的变量会自动转化为常量(3)抽象方法(接口中)接口中只能原创 2022-07-13 22:42:50 · 107 阅读 · 0 评论 -
Java学习笔记(九)
代表最终,不可改变的(1)四种常用方法修饰一个类格式:使用final修饰的类不能有子类,该类所有方法不能被重写修饰一个方法格式修饰词 final 返回值 方法名(参数列表){}注意:final修饰的额方法不能被重写abstract修饰的方法必须要重写两者互相矛盾,不能同时出现修饰局部变量一经赋值不能改变修饰成员变量必须要赋值两种方式赋值:(二选一)1、直接赋值2、通过构造方法赋值 使用final修饰:引用类型数据使用final修饰后内存地址不能改变(2)常量:...原创 2022-07-11 21:34:12 · 104 阅读 · 0 评论 -
Java学习笔记(八)
静态可以使用Static关键字解决数据共享问题,被static修饰的内容它就不属于某个对象,而是属于类所有(1)修饰一旦使用了static 关键字修饰成员变量,那么这个变量变为类所有static可以修饰1、成员变量 被称为静态变量2、成员方法使用static修饰的方法,该方法为类所有,该方法成为静态方法(2)调用:成员变量:类名.变量名成员方法:类名.方法名()同类中调用方法,不需要类名(3)注意事项:1、静态只能访问静态的2、静态方法当中不能使用this关键字(4)静态代码块:stat原创 2022-07-08 21:11:10 · 124 阅读 · 0 评论 -
Java学习笔记(七)
它是多态的前提,如果没有继承就没有多态父类:也叫基类或超类子类: 也叫派生类使用关键字extends子类可以继承相应父类中中的属性(1)格式父类(普通类)子类(2)特点1、子类拥有父类的内容2、子类拥有自己专有的内容(父类只能用自己的东西,不能使用子类的)(3)访问成员变量直接通过子类访问成员变量:等号左边是谁优先用谁的,没有就向上找间接通过成员方法访问成员变量:该方法属于谁,就先使用谁的,没有就向上找如果想要使用本类的成员变量:使用this.成员变量如果想要使用父类的成员变量原创 2022-07-04 20:34:22 · 117 阅读 · 0 评论 -
Java学习笔记(六)
封装、继承、多态封装在java中的体现1、方法就是一种封装2、使用关键字private进行封装封装就是将一些细节性的信息隐藏起来,对外界不可见(1)private私有的可以使用private修饰词对现有的对象属性数据加以限制和保护一旦加了private修饰后,那么本类是可以任意修改的,但是超出了本类的范围,就不能直接访问。想要访问该属性需要通过间接的方式,也就是定义一对get/set方法(2)set/get快捷键:Alt+insert → Getter and Setter 注解原创 2022-07-02 21:38:51 · 141 阅读 · 0 评论 -
Java学习笔记(五)
1.类是一类事物的一个描述,是抽象的2.对象是一类事物的实例,是具体的类是对象的模板,对象是类的实物3.对应代码格式学生类:定义一个类需要两部分组成 对应代码属性(是什么) → 成员变量学号 → String stuId;身高 → double height;行为(动作) → 成员方法学习 → public void study(){}逃课 → public void running(){}4.调用通常情况下,一个类是不能直接使用的,需要根据这个类来创建一个对象,才能使用* 创建原创 2022-06-30 21:43:14 · 129 阅读 · 0 评论 -
Java学习笔记(四)
(4)访问访问数组元素需要通过数组下标访问的得到,下标从0开始格式:数组元素的赋值ch[0]=5;ch[1]=456;数组元素的访问:需要通过数组下标进行访问,数组下标从0开始(5)初始值数组中元素初始值(6)数组长度通过length来确定数值长度(7)遍历数组将数组中的元素逐个单独列出(8)二维数组格式...原创 2022-06-26 20:51:01 · 83 阅读 · 0 评论 -
Java学习笔记(三)
5.用户输入6.随机数 存放数据根据长度固定的容器,存储的多个数据类型必须一致数组特点:1、只能存放同种类型额数据2、数组是一种引用类型数据3、数组的长度在运行期长度是不可改变的(1)格式声明数组:(2)工具类(3)初始化在内存中为数组开辟一块内存,并给数组赋一个初始值数组的初始化的方法:1、动态初始化(指定长度)在创建数组的时候,指定数组中元素的个数2、静态初始化在创建数组的时候,不指定长度,而是直接将具体的数据添加到数组当中简写:注意:1原创 2022-06-24 19:59:29 · 128 阅读 · 0 评论 -
Java学习笔记(一)
1.常量指在java中不可变的量整数常量:1 2 3 0 -1小数常量:0.1 0.25字符常量:‘a’ ‘0’ ‘你’字符串常量:“a” “0” “你”布尔常量:true flase空常量:null2.变量在程序中可以变化的量 java中的变量定义时规定每次定义只能保存一个数据,必须明确保存数据的类型2.1:数据类型java中的数据类型:基本类型: 整数 小数 字符 布尔引用类型: 类 字符串 数组 集合 接口 注解 枚举 String(字符串常量)是引用类型 2.2:注意原创 2022-06-20 20:51:05 · 75 阅读 · 0 评论