随笔分类 -  Java

摘要:系统准备 本次编译目标的是 JDK8 fastdebug版本 编译 JDK 耗费的时间会比较多,如果想编译的快一点,最好还是给他足够的内存和CPU,不推荐使用Windows编译,配置环境相当麻烦,推荐使用Linux 和 Mac OS ,我使用的是VMware安装Ubuntu 18.0403 LTS( 阅读全文
posted @ 2020-07-31 11:30 UtilMan 阅读(244) 评论(0) 推荐(0)
摘要:代码 看下面代码示例。思考程序的输出内容 程序的运行结果是: 思考:为什么两次调用 overrideMe() 方法只有第二次成功输出了instant对象 分析 首先我们分析一下代码,代码中有两个类,Super 类和 Student 类,Super 类中有一个 overrideMe()方法,方法体为空 阅读全文
posted @ 2020-05-13 11:34 UtilMan 阅读(417) 评论(0) 推荐(0)
摘要:建造者模式 使用Java的我们,每天都是在写出一个类,然后去new出一个对象。我们使用最多的便是通过类的构造器来创建出一个新的对象,但是在某些情境下,可能单纯的使用构造器并非最好的选择。 情景 我们有一个学生类,有必填属性:学号,姓名。选填属性:性别,年龄,语文成绩,数学成绩,英语成绩。要求我们构造 阅读全文
posted @ 2020-04-30 12:43 UtilMan 阅读(181) 评论(0) 推荐(0)
摘要:实现单例模式的3种简单方式 我们知道,在面向对象里面,类和对象一般是一对多的关系。一个类可以被实例化为多个对象,但是在我们开发过程中,有些地方要求我们必须使用使用同一个对象,也就是我们多次实例化一个类,得到的是同一个对象,这便是设计模式中的单例模式。 前两种实现思路比较简单,就是将构造器私有化,暴露 阅读全文
posted @ 2020-04-29 21:32 UtilMan 阅读(231) 评论(0) 推荐(0)
摘要:前言 看到题目是不是有点疑问:你确定你没搞错?!数组求和???遍历一遍累加起来不就可以了吗??? 是的,你说的都对,都听你的,但是我说的就是数组求和,并且我也确实是刚刚学会。╮(╯▽╰)╭ 继续看下去吧,或许你的疑问会解开↓ 注:记录于学习完《Java 8 实战》数据并行处理与性能,如果有错误,欢迎 阅读全文
posted @ 2020-04-12 16:55 UtilMan 阅读(12044) 评论(5) 推荐(5)
摘要:目标明确 排序对象类 public class Student{ private String name; private Integer age; public Student(String name, Integer age) { this.name = name; this.age = age 阅读全文
posted @ 2020-04-07 22:26 UtilMan 阅读(11441) 评论(2) 推荐(5)
摘要:设定有三个柱A,B,C,目标是将A上面的盘子全部移动到C上面(合法移动) 递归算法 这是一道递归方法的经典题目,乍一想还挺难理清头绪的,我们不妨先从简单的入手。 假设 n = 1 ,只有一个盘子,很简单,直接把它从 A 中拿出来,移到 C 上; 如果 n = 2 呢?这时候我们就要借助 B 了,因为 阅读全文
posted @ 2020-03-01 17:26 UtilMan 阅读(809) 评论(0) 推荐(1)
摘要:原理简述 冒泡排序是最简单的排序算法之一,主要是通过不断交换相邻元素,实现排序。 简单例子 对[4,2,6,3,2,1]进行升序排序 第一遍(排出最大值) 第二遍(排出次大值) 第三遍 第四遍 第五遍 每次循环都通过比较相邻的元素,逆序就进行交换,每次都将本次循环内的最大元素交换到最后,通过多次循环 阅读全文
posted @ 2020-02-29 13:05 UtilMan 阅读(310) 评论(0) 推荐(0)
摘要:基本原理 选择排序的简单原理:选择排序算法通过从未排序部分重复查找最小元素(考虑升序)并将其放在开头来对数组进行排序。 将数组两个子数组: 已排序子数组 未排序子数组 选择排序中每次循环都会从未排序子数组中选取最小元素放入已排序子数组 小例子 排序数组:[2,3,6,2,7,5,1,4] 第一次循环 阅读全文
posted @ 2020-02-28 14:14 UtilMan 阅读(232) 评论(0) 推荐(0)