java自学历程
以博客的形式记录自己java的学习历程,强化记忆知识点
M.j.fast
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java自学随笔 - 快速排序详解
快速排序 快速排序是一种高效率的排序,通过对一组无序数组,任意的抽出一个数作为基准值,使得所有比它小的在他的左边/右边,比他大的数在它的右边/左边。在学习java数组的相关知识的时候,一定会接触的到的重要算法。记得最开始的时候,学习冒泡的时候很难,但是理解之后感觉冒泡排序和后面学到的选择排序相对来说是比较"老实"的算法,每次交换没有快排的跳跃度大,所以也是查找了不少资料和相关视频来弄懂这个算法,接下来会以最详细的方式来解读快速排序算法。 基本思路 在一组无序的数组内,我们可以任意抽出一个元素,将他记录为基准原创 2020-05-17 15:52:48 · 402 阅读 · 0 评论 -
Java自学随笔 - 冒泡排序详解
1.冒泡排序 冒泡排序是一种尤为经典的且稳定的排序算法,从首位元素为起点,与后面的元素进行交换,符合预设条件的则记性位置交换,不符合的则不会交换,只要通过第一轮的比较,就一定末尾元素在后面的比较中不会再参与比较。 冒泡排序: 通过画图来理解冒泡的排序的原理和过程如图: 可以发现当,前一个数<后面一个数时,则会进行交换 也就是Array[i]<Array[i+1], 两个数的值在数组位置中进行互换 当第一次比较完毕之后,第二次比较时,会去比较后面一个数和更后面的 的数,也就是比较的位置整体往后移原创 2020-05-17 13:44:38 · 329 阅读 · 0 评论 -
Java自学随笔 - Object类 - toString()和equals()
什么是Object类? 这个类是java中所有类的父类,任何一个类都会去默认继承object中的方法,就算没有直接继承,最终也会间接继承。 常用Object类中的方法,如何寻找? 方式一:去源码中查找。 方式二:去查阅java的类库的帮助文档。 记录几个常用的方法: ...原创 2020-04-19 23:26:41 · 354 阅读 · 0 评论 -
Java自学随笔 - 抽象类
抽象类 1.什么是抽象类? 类和类之间具有共同特征,并将这些特征提取出来,形成的就是抽象类。类本身是抽象概念不是具象概念,所以不存在,所以抽象类无法创建对象,也就无法实例化对象。 2.抽象类是属于什么样的数据类型? 抽象类也是引用数据类型。 3.抽象类如何定义? 语法: [修饰符列表] abstract class 类名{ 类体; } 4.由于抽象类是无法进行实例化的,所以抽象类是用来被继承的 5...原创 2020-04-10 22:43:18 · 130 阅读 · 0 评论 -
Java自学随笔 - fianl修饰符
什么是final 1.final是java语言中的一个关键字 2.final表示最终的,不可变的 3.final可以修饰变量,方法,类 被final修饰的类不可被继承 被fianl修饰的方法无法被覆盖,被重写 被fianl修饰的局部变量,一旦被赋值了,则再不能赋值。 4.如果变量是一个"引用"被fianl修饰了,那么会如何呢? 那么这个引用中保存的变量则再也不能更改,如果再次新创建一个对象并将...原创 2020-04-10 22:41:41 · 174 阅读 · 0 评论 -
Java自学随笔 - 从一个小需求来看看多态的实际应用
多态在需求中的实际应用 需求:主人喂养宠物,使用java程序来实现这个场景。 分析: 主人可以抽象成一个类,而喂食这一动作也是在这个场景中主人拥有的。 同时也需要知道,去喂养哪种宠物。 宠物也可以抽象成一个类,而吃这一动作也是在这个场景宠物才拥有的。 那么我们就可以根据需求开始编写的代码: 分别写了一个Master类,Cat类,测试类。 最后得出的结果就是小猫在吃鱼,整体结果没有问题,但是整个...原创 2020-04-06 23:47:23 · 267 阅读 · 0 评论 -
Java自学随笔 - 多态
什么是多态? 概念: 因编译期间状态和运行期间状态不一致,父类型的引用可以指向子类型的对象,让程序产生了多种形态的概念。对于多态还有以下相关知识点: (1) 向上转型:也就是由子类型向父类型转换,也可以理解成自动类型转换,名称为upcasting (2) 向下转型:也就是由父类型向子类型转换,也可以理解成为强制类型转换,需要加强制类型转换运算符。 上述两种类型转换必须要有父子继承关系,才能完成向上...原创 2020-04-06 23:05:20 · 170 阅读 · 0 评论 -
Java自学随笔 - static关键字
关于java中的static关键字: 1.static修饰的方法是静态方法。 2.static修饰的变量是静态变量。 3.所有static修饰的元素都会成为静态,都可以使用"类名.变量名"的方法来访问。 4.静态变量是属于类级别的特征,可以成为这个类的通用属性(特征),也就意味着访问该变量再不能 ...原创 2020-03-31 22:40:26 · 142 阅读 · 0 评论 -
Java自学随笔 - 创建对象使用时的内存分析随笔1
对象通过类中自带的构造方法类创建(此处不详细展开) 那么在创建对象的过程中,对象去访问成员变量,jvm又发生了哪些变化呢? 此处通过代码和画图的形式来详解 code图: 实际完整code: class husband{ String name; wife w; } class wife{ String name; husband h; } public class...原创 2020-03-15 16:00:20 · 232 阅读 · 0 评论 -
Java自学随笔 - 构造方法
构造方法: 关于java类中的构造方法: 1.构造方法又被成为构造器或者构造函数 2.构造方法语法结构: [权限修饰符] 构造方法名(形参){方法体} 3.回顾一下普通方法的语法结构: [权限修饰符] 返回值类型 方法名(形参){方法体} 4.对于构造方法来说,"返回值类型"不需要指定,并且也不能写void,例如你不能写返回类型是int,String之类的。如果写上了void,那么这个方法就成为了...原创 2020-03-08 22:47:45 · 289 阅读 · 0 评论 -
Java自学随笔 - this关键字
关键字的作用: 1.this可以访问类本身中的属性。 2.this可以调用类本身中的方法。 3.this可以调用本类中其他的构造方法。 上一段代码可以使得概念更为清楚: 输出结果: 可以发现,我们在用对象的引用P去调用Person类中的Sayhello方法,并且传参为"456",然后后面的name输出的值,是由P.name = “123”;早就定义好的,这个没什么问题。但是在很多实际开发过程中...原创 2020-03-07 20:45:48 · 249 阅读 · 0 评论 -
Java自学随笔 - 类的封装
目的 提高数据安全性,通过封装,可以实现对属性的访问权限的控,同时增加了程序的可维护性。 将属性私有化,使用private关键字完成私有化,这种属性只有本类可以直接访问 我们一般对每一个私有属性提供public的set和get这一对方法,供外界来访问我们的私有属性。 代码如下 class Girl{ private String name; private int age; ...原创 2020-03-06 22:03:02 · 154 阅读 · 0 评论 -
Java自学随笔 - 局部变量和成员变量
局部变量 局部变量是定义在方法中或语句块中。 作用范围:只限于所定义的大括号。 存储的位置:存储在栈内存中。 默认值:无,局部变量必须赋值。 生命周期:所属的大括号结束就消失。 成员变量 成员变量是定义在类中,也可以叫类的属性。 出了成员变量其余的都是局部变量。 成员变量的特点: 作用域:根据权限修饰符来定 存储位置:堆内存或者数据共享区 默认值:有 生命周期:又jvm通过垃圾回收机制来自动回收。...原创 2020-03-06 20:44:25 · 180 阅读 · 0 评论 -
Java自学随笔 - 类,对象,方法
Part 1 类是事物的抽象结果,对象是抽象结果的具象化实例。 类的语法: class Demo{ //属性 //方法名 } //类名命名规则,首字母大写,驼峰式,见名知意. //创建类时,类名和文件名无关系,前提无权限修饰符public 如果出现类名前面有public,则注意该类名对应的.class文件 名必须一致。单个.class文件中只能有一个主类,只能有一个public权限修饰符 /...原创 2020-03-05 15:46:03 · 158 阅读 · 0 评论 -
Java自学随笔 - 关于数组概念理解
Part - 1 1.基本数据类型的变量都储存在占中,栈的特点是存储空间小,但是存取速度快, 遵循先进后出。 2.引用数据类型所占的空间比较大,存储在堆中,堆的特点是存储空间小,但是存取速度相对于栈较慢。 3.arr是数组类型变量(如果是引用数据类型,则一般叫做引用),new int[8]真正 的数据是储存在堆中,新创建的数据的每一个位置的值都为数组类型的默认值。 数组的索引是从0开始。 数组的...原创 2020-03-04 21:11:59 · 260 阅读 · 0 评论 -
Java自学随笔 - 关于方法(函数)的相关知识点泛记
概述:方法(函数)是一能够完成独立功能的代码块,我们只需要写一次方法就可以被多次使用,从而提高了代码的复用性。 1.方法如何被调用? 方法名(参数值1,参数值2); 例: /*方法名写的意义明确,即可见名知意 如下面这个方法就能基本知道,这是一个 数字比较的方法,同时传入a,b两个参数 */ NumCompare(a,b); 2.调用一个方法需要注意什么? 当调用某一个方法时,需要查看方法是否有v...原创 2020-03-02 22:52:34 · 193 阅读 · 0 评论
分享