自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (2)
  • 收藏
  • 关注

原创 arm mysql安装

解压压缩包,用编辑器打开installMysql.sh脚本文件,修改74行mysqladmin -u root -p${DEFAULTPASSWORD} password "Aa123456!@#$%^" 里面的password为自己的数据库密码修改83行sql="create database casic_manage_systemSL;use casic_manage_systemSL;source $basepath/mydb1.sql;等等 。将后面的mydb1.sql和mydb2.sq..

2021-02-18 14:50:27 306

原创 java 8 map的merge方法

default V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) { Objects.requireNonNull(remappingFunction); Objects.requireNonNull(value); V oldValue = get(key); V newValu.

2020-10-30 17:19:09 278

原创 HsahMap源码分析(jdk8)

一、HashMap的解释(jdk)基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 co...

2020-03-04 23:51:07 162

原创 Arraylist源码分析

一、arraylist扩容问题(jdk8中arraylist源码)API中对List得解释:List 接口的大小可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。(此类大致上等同于 Vector 类,除了此类是不同步的。)private static final int MAX_...

2020-03-01 21:42:07 130

转载 springboot中文件上传下载用MultipartFile

代码package com.springbootshiro.sprshiro.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.b...

2020-01-20 16:31:28 1384

原创 spring boot _20191220_汇总

一、构建springboot项目并输出helloword1、创建maven项目2、导入springboot依赖3、编写一个主程序用于启动springboot应用4、编写一个主程序启动springboot/**@SpringBootApplication注解用来表明这是一个springboot应用**/@SpringBootApplicationpublicclassStart...

2019-12-20 14:39:15 84

原创 java8中好用的时间api

在jdk8之前我们会如何获取一个“2019-08-08”这样的时间形式。通常我们会这样实现private SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd");String = format.format(new Date()); 但是在java8中我们可以通过LocalDate来为我们实现...

2019-09-11 10:22:38 169

原创 俩map求差值和相同数据的集合

好轮子谷歌造,以下代码是模仿轮子帝国谷歌maps而诞生的另个一粗糙的轮子。当然这个方法是即兴而来的,并不如谷歌的maps好。 我们对源码进行了简化,只获取俩map的左差值、右差值和相同数据,并用返回静态内部类的方式返回多个集合。public class DifferenceMap { public <K,V> MapDifferen...

2019-08-07 17:57:49 1013 1

原创 内部类

内部类:在一个类的定义另一个类。为什么需要内部类? 在可以满足需求的情况下,我们尽量不要用到内部类。内部类和外围类实现接口有什么区别呢!外围类不是总能享用接口带来的方便,有时需要用到接口的实现。所以内部类最大的好处是每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。模拟多继承。内部类的几个特性:1、内部...

2019-08-01 16:40:16 124

原创 泛型边界

泛型的擦除是擦除到它的边界处,因此无边界泛型参数调用方法只是那些可以用Object调用的方法。但是如果将这个参数限制为某个类型子集,那么你就可用这些类型子集来调用方法。为了执行这种限制,java泛型重用了extends关键字,用于表示泛型上界。下来看一段代码:public class GenericsAndCovariance { public static vo...

2019-07-15 15:48:39 390

原创 泛型方法里面创建类型实例

我们知道泛型代码在运行时是没有类型信息,擦除丢失了类型信息使得泛型代码执行过程中缺少执行某些操作的能力(任何在运行时需要知道确切类型信息的操作都无法执行,补偿只是在边界也就是传出去的时候才进行类型转换)。既然无法知道类型信息就无法创建类的实例,那我们应该怎么办。 我所知道的有三种方式,而我则将给大家用代码展示其中的一种情况: 1、创建实例工厂为其返回类...

2019-06-21 16:23:46 889

转载 Serializable

Serializable是一个空接口但是为什么要实现这个接口才可以持久化呢!很幸运我从一篇文章看到了一个比较好的讲解,特意分享。 实现Serializable接口的类可以被ObjectOutputStream转换为字节流,同时可以通过ObjectInputStream再将其解析为对象,我们可以通过类型信息和字节在内存中重新创建对象。也就是序列化和反序列化。对象到字节文件再...

2019-06-10 20:08:08 1185

原创 泛型的擦除

擦除:将会在代码运行期间擦除其类型参数;List<String> 在运行期间将会被擦除为List。 既然泛型将类型参数擦出了,那么它怎么在运行期间知道参数类型,并根据这个类型去调用相应的方法呢? 泛型类型参数将擦除到它的第一个边界,编译器实际会把类型参数替换为它的擦除。<T extends Hasf>这个在运行期间就像是 < Hasf&g...

2019-06-10 19:11:32 617

原创 java泛型学习记录

百度百科对java泛型的定义:Java 泛型的参数只可以代表类,不能代表个别对象。由于 Java 泛型的类型参数之实际类型在编译时会被消除,所以无法在运行时得知其类型参数的类型。 在se5中,java加入泛型,它实现了参数化类型的概念(将类型由原来的具体的类型参数化,也就是说在泛型使用过程中,操作的数据类型被指定为一个参数),基本类型无法作为类型参数。 泛型类:在类的定...

2019-05-08 11:51:12 111

原创 设计模式总结

看了这么多设计模式,我想应该稍微总结下他们各自的作用了,先写个大致:1、创建类: a简单工厂: b抽象工厂: c方法工厂: d原型模式: e单例模式: f建造者模式:2、结构模式 a适配器模式 b桥接模式 c组合模式 d装饰器...

2019-04-15 17:06:11 80

原创 开放封闭原则与抽象类、接口的一些事

迪米特法则: 如果两个类不必彼此直接通信,那么这两个类就不应当直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 里氏代换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。 根据里氏代换原则为了提高系统的扩展性尽量使用基类去定义对象,在运行时用子类替换。同样迪米特法则也阐述的这个性质问题。...

2019-04-11 21:08:59 145

原创 设计模式之享元模式

享元模式:运用共享技术有效的支持大量细粒度的对象。 享元模式可以避免大量非常相似的开销。在程序中如果发现某些实例除了几个参数不同以外基本相同,那我们就不需要一直new对象,可以用享元模式减少实例化,期间把参数转移到外部在方法调用时将其传递进来就行。享元模式使用的场景: 如果一个应用程序使用了大量的对象,而这些大量的对象造成很大的存储开销就应该考虑,...

2019-03-22 11:20:19 104

原创 设计模式之职责链模式

职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。 当我写一个请假审批的时候,它首先到部门经理,再到总监,再到总经理,根据需求不同。 它和普通的判断的最大区别就是普通判断你将会把所有引用都放到一个方法,这样这个方法就回很庞大,耦合度很高,当我们分开...

2019-03-21 11:43:30 108

原创 设计模式之单例模式

单例模式:保证一个类只有一个实例,并提供一个全局访问它的全局访问点。(可以让类没有其他实例,没法被其它类实例化,构造方法设置为为私有的)public class Singleton { private static Singleton singletont = null; private Singleton(){} public static Si...

2019-03-20 15:01:33 57

原创 设计模式之组合模式

组合模式:将对象组合成树形结构以表示部分整体的层次结构(将叶子节点组合进枝干,枝干上也可以再生枝干,叶子上不可以生叶子,所以在写逻辑之前确定好那些是叶子哪些是枝干)。组合模式使得用户对单个对象的使用具有一致性。 什么时候使用组合模式呢? 当你发现需求中是体现部分与层次结构的时候及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象,就...

2019-03-19 19:48:14 76

原创 设计模式之备忘录模式

备忘录:在不破坏封装性的前提下,捕获一个对象的内部状态。这样以后就可以将该对象恢复到先前的状态。 当角色状态改变的时候,这种状态或许可以通过某种方式将其恢复到以前状态,就可以用备忘录模式。如游戏进度保存,浏览器的返回等。 下面是一个模仿浏览器的demo//发起人public class Originator { private S...

2019-03-18 15:32:44 73

原创 设计模式之适配器模式

适配器模式:将一个接口转换为客户希望的另外一个接口。可以使接口不兼容的类在一起工作,达到复用的目的。 当系统的数据和行为都正确,但接口不符合的时候,我们可以复用一些现存的类。 我认为适配器可以做到类似的业务在调用不同的实现时达到接口的一致性,这样也减少代码的冗余,但是在不同的业务则尽量分开不要把不同的业务用相同的接口做。 来自大话设计模式的一张UML图...

2019-03-15 15:53:08 80

原创 设计模式之状态模式

状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。(当为红灯时停止通行绿灯时通行,状态改变行为发生改变)。 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。(类似于把if的每个分支写成类进行判断,消除庞大的分支条件,通过把状态转移到子类之间判断,减少依赖...

2019-03-15 11:37:19 50

原创 设计模式之建造者模式(生成器模式)

建造者模式:将一个复杂对象的创建和他的表示相互分离,使得同样的创建过程可以创建不同的表示。(个人理解:两个对象内方法一样的但是实现不同细节不同)。 建造者模式的作用:用于创建一些复杂的对象,这些对象内部构建顺序通常是稳定的,但是内部的构建通常面临着复杂的变化。 下面代码会有自行车的抽象类,继承抽象类实现类(并组合具体的产品),指挥者,测试客户端...

2019-03-06 19:40:25 141

原创 设计模式之模板方法模式

模板模式就是定义操作中的算法骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤。模板方法模式使得我们将一些不变的行为搬到超类中,去除子类重复的代码。这是一个很好的代码复用的平台。 下面是一个例子,Paper为试卷,Student为学生对试卷里问题的回答,test测试类//试卷模板public abstract class...

2019-03-06 10:38:08 52

原创 设计模式之工厂方法模式

工厂就是自动为你创建你想要的类,前面的简单工厂模式我们是针对类创建工厂,因此我们需要一个运算类的工厂,根据需求让运算工厂帮我们创建各种运算类。方法工厂则是根据运算类里面的方法建立工厂,也就是要建立+-*/四个工厂。这样我们要让客户端知道更多东西,简单工厂模式里面客户端需要减法操作,只需要传入一个-就行。但是在方法工厂不行,客户端必须告诉后台你需要那个方法的工厂这样我们才能给你创建。然...

2019-03-05 11:04:35 161

原创 设计模式之代理模式

代理模式:个人感觉代理模式就是在访问一个对象时添加一种间接性。俩对象实现相同的接口,在代理实例中组合进实际类,并用实际类去实现代理类的接口,在不污染实际类的情况下做很多事情。(这个模式我自己是没用过也是看书的,所以有问题欢迎评论留言我改正。) 装饰器模式是获取一个引用并通过引用赋予其扩展功能。代理就是获取这个类的引用,并具有和这个类完全一样的方法(也就是实现相同的方法)然后你对类...

2019-03-04 20:22:22 49

原创 设计模式之装饰器模式

装饰器模式个人感觉就是一种高级的组合。高级就在于它是一种解耦合的组合。(现在有一个a、架构师;b、java;c、建筑。我现在要组建一个Java架构师但他同样会设计建筑的架构你会建立一个d、里面包含abc;但是装饰器是这样组合的c中包含ab;b中包含a;大概就是这样,虽然例子很low但也能理解其中含义吧!后面有代码解释) 装饰器模式:顾名思义它的的用途就是装饰用的;...

2019-03-04 19:42:51 102

原创 设计模式之策略模式

我们将会创建5个类,Context策略类,CashSuper抽象策略,Zhengchang正常收费类,Dazhe打折收费类。 Context和CashSuper为聚合关系;CashSuper派生出Zhengchang和Dazhe俩类 概念性的描述:策略模式是一种定义一系列算法的方法,这些算法都是做相同的事情,只是实现不同(正常出售和打折出售),它做的就是以相同的方...

2019-02-27 22:03:49 80

原创 设计模式之简单的工厂模式

    从今天开始就要学习设计模式了,这里只是一个很简单的刚刚起步的工厂模式。    我们今天要实现一个具有+-*/的计算器。首先我们需要前台我们需要创建一个具有三个int类型的类(a类);当我们输入数字的时候我们需要去运算。无论是加或者减它们都有一个公共的方法Operation();因此我们可以将其设计为右面这种,而创建+-*/的类我们将交给工厂。下面是一个接收字符返回运算类的工厂。p...

2019-02-27 16:11:27 72

转载 UML

2019-02-27 15:21:24 125 2

原创 抽象类

         抽象类就是一种抽象的概念,它提供一个继承的出发点,当设计师设计一个抽象类时,一定是用来继承的。                                                                                                                                              ...

2019-02-26 17:44:15 86

原创 再次讨论散列,hashCode()

上个文章讲了我们通过hashCode()生成的结果作为桶的下表。从map我们大概看出一点端倪那就是在设计hashCode()时相同的值将产生相同的值。还有就是我们最常用的String具有不变性应该也是通过这种算法实现的(猜的)。如果我们给map中添加值时产生一个hashCode()值,取的时候产生的不同,那不乱套了。但是这个值一但变化就会产生不同的散列码。此外hashCode依赖于具有唯一性的...

2018-12-06 22:27:48 156

原创 java容器深入理解---map及散列与散列码

对于通过collection衍生来的java容器我的博客不会分享了,因为很类似,更新的话却很繁琐,所有看我博客的,有错的地方希望大家评论指出,共同进步。今天和大家分享下map,我们之前应该有所了解,也就是映射表(关联数组)的思想,通过关联数组来维护键值对。下面是一个案例(不是目前java.util里面map的实现)。public class AssociativeArray&lt;K,V&g...

2018-12-05 20:55:04 217

原创 java容器的深入理解----填充

容器的填充,数组填充我前面提到了Arrays,那么容器呢,相应的也有Collections的一些方法,其中也有fill()。下面我们看个示例:class StringAddress { private String s; public StringAddress(String s){this.s = s;} /*public String toString() { ...

2018-12-03 16:02:58 220

原创 java虚拟机之内存区域与内存溢出异常

 下面是java虚拟机运行时数据区的图(从别的地方复制的,不过很准确) 程序计数器:字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。因此可以看作是看作是当前线程所执行的字节码的行号指示器。java虚机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,因此在一个确定的时刻,一个...

2018-11-29 21:39:36 83

原创 按位运算符

     今天看数组的时候,跟到rand.nextInt(int i)这个方法中,其源码是这样解释这个方法 public int nextInt(int bound) { if (bound &lt;= 0) throw new IllegalArgumentException(BadBound); int r = next(31)...

2018-11-28 14:58:32 161

原创 数组 ----随笔

      数组与其他种类的容器之间的区别有三个方面:效率、类型和保存基本类型的能力。       数组和容器都可以保证你不能滥用它们。无论你是使用数组还是容器,如果越界,都会得到一个表示程序员错误的Runtime Exception。       数组可以持有基本类型,而泛型之前的容器则不能。但有了泛型,容器就可以指定并检查它们持有对象的类型,并有了自动包装机制,容器看起来还能够持有基本...

2018-11-28 11:11:39 95

原创 java通配符 随笔

public class TongPeiFu { static void rawArgs(Holder holder,Object arg){} static void unboundedArg(Holder &lt;?&gt; holder ,Object arg){} static &lt;T&gt; T exact1(Holder&lt;T&gt; holder){...

2018-11-19 17:12:06 106

原创 可变参数 随笔

       在java se5之前我们想要实现与c类似的可变参数列表(c通常把他简称为vararge)一样的效果。这可应用于参数个数或类型未知的场合。由于所有的类都直接或间接继承于Objevt类,所以创建以Object数组为参数的方法。       类似与static void p(Object[ ] args)       而在用的时候我们只需要想这样传参就行p("1","2","3"...

2018-11-12 16:29:59 92

神通数据库驱动oscar.rar

oscarJDBC1.0,oscarJDBC2.0

2021-11-17

arm mysql5.7安装

已在银河麒麟测试成功,

2021-02-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除