- 博客(15)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 反射与工厂模式:早餐店的发展之路
实际开发中,接口的主要作用是为了不用层提供有一个操作的标准,如果直接实例化了类的操作【用new关键字来实例化】,则一定存在耦合问题,可以用工厂模式解决此问题。接下来用一个店主开早餐店的经历来阐述反射与工厂模式。店主的经历如下:简单的早餐店 --> 增加西式早餐 --> 多种早餐需求 --> 拓展业务简单的早餐店店主起初想开个简单的早餐店,就经营简单的早餐业务。BreakfastServicepackage javabase.service;public interface B
2020-05-20 22:13:24
457
原创 Ubuntu安裝jdk8
安装jdk81.下载jdk8 Linux版本的一般文件名的后缀为 .tar.gz2.上将压缩包传至/usr/local 文件夹,并解压在/usr/local一般需要管理员权限,所以以下操作全是sudo的如果上传的并不是/usr/local文件夹,可以用mv命令来进行迁移sudo mv jdk-8u261-linux-x64.tar.gz /usr/local #注意自己的对应的文件名 --用tab可以自动补全解压对应的压缩包sudo tar -zxvf jdk-8u261-linu
2020-10-24 22:14:27
186
原创 基于反射的推理:利用类名调用类的方法
反射:调用普通方法【Method】反射通过类名称就能找到该类的方法并调用。好,这次我们再折腾AppleApplepackage javabase.entity;public class Apple { public void fall(){ System.out.println("=====Oh!我正在下坠!====>"); } public void inTheTree(String treeName){ Sy
2020-05-28 21:55:22
342
原创 基于反射的推理:利用类名称就能实例化对象
反射:调用构造方法【Constructor】一个类的实例化还是需要调用它的构造函数的,这次我们利用反射来推理出类的构造方法以及利用构造函数来实例化对象创造一个类:AppleApplepackage javabase.entity;import javabase.service.Grow;import javabase.service.SunBathe;public class Apple extends Fruit implements Grow,SunBathe { private
2020-05-28 21:45:05
288
原创 反射实例化对象:Class最基本的实例化对象
类中的非static方法我们需要使用实例化对象才能使用,那么反射又如何进行实例化对象呢?使用反射实例化对象:使用Class 里的 newInstance()方法 @CallerSensitive public T newInstance() throws InstantiationException, IllegalAccessExceptionFoodpackage javabase.entity;public class Food { public Food(){
2020-05-23 16:08:56
269
原创 基于反射的推理:通过类名就能获取类的祖宗十八代?
反射:获取类结构信息【Class、Package】听说通过Class类反射,只要一个完全的类名就能够推理出类的所有信息?这不像极了电视里的推理剧?那这次我就来通过类的名字来查到该类的父类【也就是它爸爸,其实连它祖宗都能找到】,该类的包名【也就是它的家】,以及该类实现的接口【也就是它能做的事】。先创建以下类:苹果是一种能生长的水果苹果是种水果苹果能生长所以苹果为水果的子类,实现生长的接口Fruitpackage javabase.entity;public class Fruit {
2020-05-22 22:19:23
208
原创 反射与单例模式:懒汉式的逆袭?
如果程序中仅仅只是需要实例化某个对象一次,但是有需要在不同的地方上使用该实例化的对象,这时就可以用单例模式。可以避免在不同的类中多次使用new来创建该对象,从而造成多个对象堆积在内存中。单例模式分为懒汉式和饿汉式。饿汉和懒汉的对比1.饿汉是在进程调用前已经创建好了实例化对象,而懒汉式是什么时候调用就什么时候创建2.饿汉是线程安全,而懒汉式是线程不安全的,如果让懒汉式线程安全的话就需要加上同步锁【本次重点】3.效率方面,由于饿汉式并不会加上同步锁,所以执行效率上饿汉式会更胜一筹4.内存方面,由于饿汉
2020-05-21 22:39:33
245
原创 反射:Class的实例化
反射是Java中的一种特性,能够从class中获取该实例化对象的信息包括方法以及属性。通俗点来讲:我们使用类的时候通常是这个顺序:import 该类 —> 实例化该类【使用 new 关键字】–>使用其方法而反射是获取实例化对象 —> 使用其方法或者获取其信息就是可以通过已实例化的对象获取该对象对应的类的属性、方法、包等信息用个示例来讲就是:顺着来是需要找到你的家package,然后再在你的家找到你,然后反过来就是,我知道了你的名字【包.类】就能把你的所有信息都搞到【这样
2020-05-20 22:59:03
502
原创 那些写Vue.js +Element +Axios 遇到的坑(1)
学会总结写项目中遇到的难点,才能写出更多好的项目this的使用?在axios中,尽量使用一个函数变量that来代替this,而不是在axios中定义,即var that = this然后再对this的相关值进行赋值否则会出现,数据对不上号,或者this.xxx is not a function的错误<img/>标签可以代替<el-image>标签的情况...
2020-04-04 16:54:35
245
原创 算法 (5) : 最长公共子序列(动态规划)
5、最长公共子序列(1)问题描述输入两个序列,求这两个序列最长的子序列(不连续的)例如:序列Z{B,C,D,B},是序列X={A,B,C,B,D,A,B}的一个子序列(2)使用算法动态规划(3)思考子序列X{x1 , x2, x3 ,x4…xm } 和 Y{y1, y2, y3, y4, …, yn}的最长子序列可以按照以下递归来进行,当xm = yn 时, 找出Xm-1 和 Y...
2019-09-07 23:06:41
286
原创 算法 (4) :略谈动态规划
4、略谈动态规划(1)基本思想为了避免重复计算相同的子问题可以用一张表来记录已经计算过的子问题的答案,不管子问题是否会被用到都会记录在表中。(2)动态规划步骤a. 找出最优解的性质,并刻画其结构特征b. 递归地定义最优值c. 以自底向上的方式计算出最优值d. 根据计算最优值时得到的信息,构造最优解(3)两个基本要素a.最优子结构 设计动态规划算法的第一步通常都是刻画最...
2019-09-07 23:00:07
181
原创 算法 (3) : 二分查找
3、二分查找(折半查找)(1)基本思想在一个有序的数组中找出对应的值,利用好有序的这个条件进行二分查找,即在将一个数组切成一半再在其中一半查找。(2)时间复杂度最坏:T(n) = O(logn)平均:T(n) = O(logn)(3)算法步骤a. 先找到对应的中点,中点的值和目标的值相比较,若目标值较大则在右半区找,否则在左半区查找b. 重新定位最小坐标或最大坐标c. 重复a动作...
2019-09-07 21:27:32
133
原创 算法 (2) :快速排序(随机选择哨兵)
2、快速排序(1)基本思想对于输入的子数组a[p:r],按以下三个步骤进行排序。a.分解(Divide) :以a[p]为基准元素将a[p:r]划分成3段a[p:q-1] , a[q] , a[q+1: r],使a[p:q-1] 的任何一个元素小于等于a[q], 而a[q+1:r] 的任何一个元素都大于等于a[q]。下标q在划分过程中确定b. 递归求解:通过递归调用快速排序算法分别对a[p:...
2019-09-07 21:17:22
1047
原创 算法(1) : 合并排序(归并排序)
1、合并排序(归并排序)(1)、基本思想代排序元素分成大小大致相同的两个自己和,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。(2)、时间复杂度T(nlogn)(3)、 算法步骤a.将数组一分为二,分到剩下一个元素为止(递归处理)b.将分好的数据按大小一个个排好序合并到原来的数组c.递归结束(4)、代码import java.util.*;publ...
2019-09-05 20:16:33
526
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人